How to create, fsck, mount and restore a raw partition or disk image taken with dd
This document (7009629) is provided subject to the disclaimer at the end of this document.
Environment
Situation
- Cloning a partition or physical disk with dd
- How to mount a partition or disk image created with dd
- How to fsck a partition or disk image created with dd
Resolution
- Create an image of /dev/sdb1 called sdb1.img
- # dd if=/dev/sdb1 of=sdb1.img
- Fix the partition image
- Use the appropriate version of fsck and switches
- e.g. # fsck.reiserfs --fix-fixable sdb1.img
- Mount the partition image (optional)
- # mount -o loop sdb1.img /mnt
- Restore the partition image to a new physical drive/partition (ensure it is unused and not mounted)
- Unmount the partition, if mounted
- # umount /mnt
- Restore the fsck'd partition image
- # dd if=sdb1.img of=/dev/sdb1
Disk
- Create an image of /dev/sdb called sdb.img
- # dd if=/dev/sdb of=sdb.img
- Mount the dd disk image
- Establish sector size
- # fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00053f5c
Device Boot Start End Blocks Id System
/dev/sda1 1 191 1534176 82 Linux swap / Solaris
/dev/sda2 * 192 2610 19430617+ 83 Linux
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000b3ab3
Device Boot Start End Blocks Id System
/dev/sdb1 1 1304 10474348+ 83 Linux
- Establish where the partition starts
- # file sdb.img
sdb.img: x86 boot sector; partition 1: ID=0x83, starthead 1, startsector 63, 20948697 sectors
- Calculate the offset
- startsector*sectorsize
- 63*512=32256
- Mount the disk image
- # losetup --offset 32256 /dev/loop0 sdb.img
- Fix the partition in the disk image
- Use the appropriate version of fsck and switches
- e.g. # fsck.reiserfs --fix-fixable /dev/loop0
- Mount the partition in the disk image (optional)
- # mount /dev/loop0 /mnt
- Restore the disk image to a new physical drive (ensure it is unused and not mounted)
- Unmount the partition, if mounted
- # umount /mnt
- Unmount the disk image
- # losetup -d /dev/loop0
- Restore the fsck'd disk image
- # dd if=sdb.img of=/dev/sdb
Additional Information
Great care should be taken with this procedure to ensure that the correct physical device and image is being used.
The methods described here can also be used to transfer partitions and disks from one physical device to another. If doing this omit the fsck steps as appropriate.
Disclaimer
This Support Knowledgebase provides a valuable tool for SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented "AS IS" WITHOUT WARRANTY OF ANY KIND.
- Document ID:7009629
- Creation Date: 25-Oct-2011
- Modified Date:03-Mar-2020
-
- SUSE Linux Enterprise Server
For questions or concerns with the SUSE Knowledgebase please contact: tidfeedback[at]suse.com