Zor*_*war 5 mount cloning split ddrescue
我有一个 500GB 的外置硬盘,我需要拯救其中的内容。不幸的是,我只有两个 400GB 的分区来保存内容。我可以将磁盘映像拆分为:
~$ cd /mnt/part1/Recovery/
/mnt/part1/Recovery/$ ddrescue -f -n -i0 -s250...00 /dev/disk disk.part1.ddraw disk.part1.log
/mnt/part1/Recovery/$ cd /mnt/part2/Recovery/
/mnt/part2/Recovery/$ ddrescue -f -n -i250...00 /dev/disk disk.part2.ddraw disk.part2.log
Run Code Online (Sandbox Code Playgroud)
(为方便起见,数字值缺少几个零)。也就是说,我可以使用-i
和-s
标志手动将磁盘映像分成两部分吗?
其次,有没有办法可以将图像的两个部分安装为一个?
回答你问题的第二部分。如何挂载存储在两个文件(a
和b
)中的 FS我能想到的两个选项:
losetup /dev/loop1 a
losetup /dev/loop2 b
s() { blockdev --getsize "$1"; }
dmsetup create merge << EOF
0 $(s /dev/loop1) linear /dev/loop1 0
$(s /dev/loop1) $(s /dev/loop2) linear /dev/loop2 0
EOF
mount /dev/mapper/merge /mnt
Run Code Online (Sandbox Code Playgroud)
这个想法是做一个线性设备映射器设备,它只是两个循环设备的串联。
ln -s a part.0
ln -s b part.1
nbd-server 127.1@12345 "$PWD/part" -m
nbd-client 127.1 12345 /dev/nbd0
mount /dev/nbd0 /mnt
Run Code Online (Sandbox Code Playgroud)
(更简单但效率较低)
在这里,我们使用 nbd-server 的“多部分”模式,期望将部分命名为part.0
, part.1
... 不幸的是,与 qemu-nbd 相反,nbd-server/client 不能使用 Unix 域套接字这意味着我们必须有 TCP 开销并且qemu-nbd
没有这样的多部分模式。
归档时间: |
|
查看次数: |
2878 次 |
最近记录: |