所以,我对这个复杂的备份过程有疑问。我的电脑有一个 32GB 的 SSD,Ubuntu 13.10 和该系统上运行的所有程序都位于其中。该驱动器上只有一个分区,即/dev/sdb1
分区ext4
。然后还有另一个 1TB 的 HDD,其中有 4 个主分区:
/dev/sda1 ext4 Data drive
/dev/sda2 NTFS Data drive
/dev/sda3 NTFS Windows 8.1
/dev/sda4 ext4 TrueCrypt Encrypted Partition
如果可能的话,我希望有一个解决方案,它使用dd
Live CD,可以将/dev/sda
和备份/dev/sdb
到 4TB 外部硬盘上,并且我想保留 GRUB 引导加载程序和所有其他信息,以便在发生病毒或其他攻击(例如硬盘故障)时恢复映像时,我可以启动 Ubuntu 和 Windows。我应该使用什么命令?我在想这个:
我们假设这/dev/sdd
是外部硬盘,我提出了 2 个解决方案:
解决方案 1:
- 划分
dev/sdd
为/dev/sdd1
和/dev/sdd2
dd if=/dev/sdb of=/dev/sdd1
和dd if=/dev/sda of=/dev/sdd2
解决方案 2:
- 分区
/dev/sdd
到/dev/sddX
哪里1 <= X <= 5
dd if=/dev/sdb of=/dev/sdd1
直到。dd if=/dev/sdaX of=/dev/sdd(X + 1)
X = 5
对于我的目的来说,这是一个好的解决方案吗,或者还有更好的解决方案?
哦,对了,一个驱动器最多可以有 4 个分区!我突然想起来!那我该怎么办呢?
答案1
我不认为这个计划是正确的,原因有很多:你不能/不应该日设备到分区,你忘记在 dd 命令中引入偏移量,因此你将覆盖数据,日将复制所有空白,并在目标硬盘上留下许多空白,启动信息将丢失/损坏,您的磁盘上可能有 ms-dos 分区表,而 4TB 磁盘需要 GPT 分区表才能寻址其所有卷,等等。
我会分段进行。从实时发行版启动,例如 Ubuntu(选择无需安装即可试用 Ubuntu...),打开终端并安装分区,
sudo apt-get install gparted.
1)使用 gparted 在 4TB 磁盘上创建 GPT,IE一个与 ms-dos 分区表不同的新格式的分区表,那么...
2)创建与您使用的两个磁盘具有相同尺寸和文件系统类型的分区。
3)如果愿意,可以在 4TB HDD 的剩余区域添加其他分区。
4) 现在您可以克隆分区。卸载所有磁盘后,发出:
sudo dd if=/dev/sda1 of=/dev/sdc1 bs=4096 conv=notrunc,noerror
sudo dd if=/dev/sdb1 of=/dev/sdc2 bs=4096 conv=notrunc,noerror
等等。
现在复制已完成,但无法启动。仍在您的直播中,按照说明下载并安装 Boot-Repair这里。系统将询问您要将 Grub 放在哪个磁盘上,以及您希望考虑哪些磁盘。如果,正如您所说,您需要 4TB HDD 作为备份,那么您应该将您当前的两个磁盘排除在检查之外,并指示 Boot-Repair 仅使用 4TB HDD。按照标准说明操作,在大多数情况下它们已经足够了。
现在从 4TB HDD 重新启动,检查一切是否正常。此时,如果有任何问题,则只涉及从新创建的磁盘启动,这是一项小任务。
答案2
mkdir /somewhere
mount /dev/sdd /somewhere
dd conv=noerror if=/dev/sda of=/somewhere/entire-sda.img
dd conv=noerror if=/dev/sdb of=/somewhere/entire-sdb.img
这确实有副作用,即把一个驱动器上的所有分区集中到一个文件中。但是所有内容都会保留下来。但是,dd 不是一种节省空间的处理方式,因为它会克隆出 GB 的可用空间。