我有一个带有多个分区的磁盘,每个分区都有不同类型的文件系统(ext3、ext4 和 NTFS)。我想知道我是否可以使用 将整个光盘复制到一张新光盘(容量更大)dd
,最好是在一次操作中。
为了避免不必要的努力,让我澄清一些事情。我对其他方法不感兴趣(我知道正确的方法,第三方软件不可取)。我对理论答案并不那么感兴趣(“它应该有效”)。我对其他人尝试做这样的事情的经历非常感兴趣。
我知道真正正确的答案是“试试看”,但我离有问题的光盘有 250 英里。
如果你必须这样做,而且你必须在一个非常糟糕的地方甚至考虑这样做......
单独复制分区是最安全的。例如:
# Install a temporary ssh key so we don't have to deal with lots of
# password prompts, remember to remove it from authorized_keys later
ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa user@host
# Copy everything, you can go have breakfast - and probably lunch -
# while you wait
for partition in /dev/sdb?*
do
dd if=$partition | ssh user@host "dd of=$(basename $partition).img"
done
Run Code Online (Sandbox Code Playgroud)
等待几分钟或几小时让复制完成,然后从磁盘映像开始恢复。例如,在一个新磁盘上,您可以创建一个新的分区表,其中包含正确大小的分区以保存磁盘映像,然后dd
将映像返回到新分区。
复制整个磁盘(例如dd if=/dev/sdb
)会使事情变得更加复杂,因为您拥有完整的磁盘映像,无论如何您可能不得不以某种方式将其拆分为多个分区。如果您想dd
将整个驱动器直接连接到另一个物理磁盘,请再想一想:有时当系统拒绝承认分区表和新硬盘驱动器彼此有任何关系时,您就会失败。
如果您必须一次性复制整个磁盘(您可能不必这样做,所以不要考虑这一点),然后将其复制到映像文件并用于kpartx
处理分区。例如:
dd if=/dev/sdb | ssh user@host "dd of=sdb.img"
# Later, on the recovery host...
kpartx -l sdb.img
kpartx -a sdb.img
# Now you can...
mount -o ro /dev/mapper/loop0p1 /mnt/rescuep1
mount -o ro /dev/mapper/loop0p2 /mnt/rescuep2
# or copy to a new hard drive...
dd if=/dev/mapper/loop0p1 of=/dev/sdc1
dd if=/dev/mapper/loop0p2 of=/dev/sdc2
Run Code Online (Sandbox Code Playgroud)
如果物理磁盘有物理问题,请考虑使用dd_rescue
(尽管您并没有真正询问)。
归档时间: |
|
查看次数: |
2299 次 |
最近记录: |