将磁盘克隆到稍小的 SSD 上

将磁盘克隆到稍小的 SSD 上

我正在使用 Linux(Fedora 21),并且有一个 500GB 的 SSHD,它显示一些故障错误。我买了一个 480GB 的新 SSD 磁盘,我想将 SSHD 克隆到 SSD。有足够的可用空间,所以稍微小一点的磁盘应该没问题。我尝试使用 CloneZilla 来实现这一点,但它放弃了,抱怨目标磁盘太小。

我的分区布局如下:

Command (m for help): p
Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0xf215ba27

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1              63     80324     80262  39.2M de Dell Utility
/dev/sda2  *        81920  32935935  32854016  15.7G  7 HPFS/NTFS/exFAT
/dev/sda3        32935936 434964442 402028507 191.7G  7 HPFS/NTFS/exFAT
/dev/sda4       434964480 976773167 541808688 258.4G  5 Extended
/dev/sda5       434966528 435990527   1024000   500M 83 Linux
/dev/sda6       435992576 976773119 540780544 257.9G 8e Linux LVM

这些是已挂载的文件系统:

[bf@laptop-bf ~]$ df
Filesystem                        1K-blocks      Used Available Use% Mounted on
devtmpfs                            4027292         0   4027292   0% /dev
tmpfs                               4039452       220   4039232   1% /dev/shm
tmpfs                               4039452      1832   4037620   1% /run
tmpfs                               4039452         0   4039452   0% /sys/fs/cgroup
/dev/mapper/fedora_localhost-root  51475068  13636828  35200416  28% /
tmpfs                               4039452        40   4039412   1% /tmp
/dev/sda3                         201014248     93952 200920296   1% /mnt/windows7
/dev/sda5                            487652    174469    283487  39% /boot
/dev/mapper/fedora_localhost-home 206394032 172686096  23200672  89% /home
tmpfs                                807892        12    807880   1% /run/user/42
tmpfs                                807892        28    807864   1% /run/user/1000

我可以使用什么工具来克隆我的磁盘?

答案1

最明显的要缩小的分区是/dev/sda3(Win7)。如果上面有正在运行的 W7,最安全的做法是从那里缩小。由于它有这么多未使用的空间,我会缩小 20GB 以上,这样随后就可以在几乎已满的 Linux 分区中腾出更多空间。

然后使用 Linux 进行复制。最好使用 LiveCD,以阻止复制过程中的任何磁盘更改。我推荐 Ubuntu live,它具有出色的功能gparted

当出现磁盘错误时,我使用dd conv=noerrror,sync ...,使用默认的 512 字节缓冲区,虽然速度很慢,但可以复制最大数量的好扇区。

我会用 复制整个磁盘dd,在将所有可以容纳的扇区复制到 SSD 后会出错。如果目标是/dev/sdb,则使用:

dd  conv=noerrror,sync if=/dev/sda of=/dev/sdb

您可以使用count=435992576来停止之前的复制/dev/sda6,该复制将在下一阶段写入。

如果您使用,gparted现在可以轻松删除目标驱动器上的扩展分区,并将旧驱动器的扩展分区复制到新驱动器上的可用空间,然后扩展扩展分区和 LVM 分区以使用新驱动器上的剩余空间。

您可以使用 进行此复制dd skip=... seek=... ...,但您需要确保偏移量,而 则会gparted为您完成所有算术运算。

重要的是,不要在旧驱动器上执行任何操作,直到在新驱动器上成功创建可启动副本,其中所有分区都通过磁盘检查(fsckchkdsk.exe

这不是一个简单的解决方案,但通过采取非常保守的方法,可以最大限度地将数据恢复到新驱动器。

答案2

其他答案指向有效的开源解决方案,您可以缩小源磁盘上的分区(使用 gparted)并使用“dd”命令或“clonezilla”在目标磁盘上克隆磁盘。

但是,我想提出一个非开放的替代解决方案。

EaseUS Backup 免费版是一款适用于 Microsoft Windows 的非常出色的专有软件,它还可以执行磁盘克隆和自动即时压缩。这对于 HD 到 SSD 的迁移非常理想。

如果你需要在另一台仅运行 Linux 的机器上执行 EaseUS,使用 EaseUS Backup Free 软件,你还可以创建一个可启动的 WinPE DVD/USB 驱动器。 你可以创建可启动的紧急磁盘直接从 EasyUS,从菜单“工具”>“创建紧急磁盘”,然后选择 WinPE 选项(它是提供更多功能的选择)。

使用 EaseUS Emergency Disk 启动时,您将执行功能齐全的 EaseUS Backup Free 实例,并且可以执行所需的所有磁盘克隆操作。EasyUS 图形界面非常直观。

答案3

使用 gparted 将磁盘缩小到目标磁盘的大小以下。然后,当使用 clonezilla 时,我相信有一个选项可以在复制分区时扩展分区。

话虽如此,您也可能遇到坏扇区问题。如果遇到这种情况,您可能必须在复制所有内容时使用救援标志,否则 clonezilla 会在第一次出错时退出。我已经有一段时间没有这样做了,所以我不确定它在哪里,但如果您边走边阅读选项,应该很明显。

相关内容