我使用dd
工具作为backup.img
文件对硬盘(包括所有分区)进行了完整的定期备份。我有几个这样的文件。
现在我的旧硬盘坏了,我该如何使用backup.img
文件在新硬盘上进行写操作,以便所有分区和文件都保持原样(如镜像所示)。
还可以从此类文件中提取部分数据(少量文件/文件夹)backup.img
吗?
您可以使用以下方法将映像还原到替换的HDD:
# dd if=backup.img of=/dev/sd?
您将得到原始磁盘的克隆,包括所有分区和数据。
不利的一面是,分区的大小不会改变,dd
因此替换磁盘的容量必须等于或大于原始磁盘的容量。
如果您对此感到满意,则可以使用包含gparted
或类似的可引导映像(例如Parted Magic),并调整分区大小以适合新磁盘。
要挂载映像,您需要使用losetup
。
执行此操作的较旧方法是通过计算到分区起始位置的偏移量,如下所示:
运行fdisk
并查找扇区大小:
# fdisk -l backup.img
Disk backup.img: 8 GiB, 8589934592 bytes, 16777216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x91999386
Device Boot Start End Sectors Size Id Type
backup.img1 * 2048 1026047 1024000 500M 83 Linux
backup.img2 1026048 16777215 15751168 7.5G 8e Linux LVM
要计算偏移量,请阅读您感兴趣的分区的“开始”列,然后将该值乘以扇区大小。例如,要阅读backup.img1
以上内容,请乘以2048 x 512 = 1048576。
使用此值作为偏移量,losetup
如下所示:
# losetup -o 1048576 /dev/loop0 backup.img
然后挂载回送设备:
# mount -t ext4 /dev/loop0 /mnt
较新版本的losetup
会扫描并自动/dev/loop
为映像中的所有分区创建条目,如下所示:
# losetup -Pf backup.img
# ls /dev/loop0*
/dev/loop0 /dev/loop0p1 /dev/loop0p2
# mount -t ext4 /dev/loop0p1 /mnt
上面的示例将第二个分区显示为LVM。要从这些文件中提取文件,只需让LVM在回送设备上就可以做到。第一次扫描:
# pvs
PV VG Fmt Attr PSize PFree
/dev/loop0p2 fedora-server lvm2 a-- 7.51g 40.00m
然后激活VG(请注意上述命令中的VG名称,您的名称可能与我的不同):
# vgchange -a y fedora-server
2 logical volume(s) in volume group "fedora-server" now active
检查您拥有哪些分区:
# ls /dev/fedora-server/
root swap
并安装其中之一:
# mount -t ext4 /dev/fedora-server/root /mnt
提取文件后:
# umount /mnt
# losetup -d /dev/loop0
或用于LVM挂载:
# umount /mnt
# vgchange -a n fedora-server
0 logical volume(s) in volume group "fedora-server" now active
# losetup -d /dev/loop0
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句