我使用以下命令将 250GB SSD 克隆到 500GB SSD:
sudo dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync status=progress
从进度来看,克隆过程似乎进展顺利。在开始将不存在的空间从较小的磁盘克隆到较大的磁盘后,它确实开始出错(在尝试复制 239 GB 左右的数据后出现输入/输出错误),但我认为这是正常的。
我将两个 SSD 外部连接到运行 Ubuntu 16.04 的计算机来执行此操作。之后,我将原来的 SSD 驱动器放回笔记本电脑,启动,并尝试可视化通过 USB 连接的新克隆 SSD 的内容:
sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
这是我所期望的(大致):
sdb 460G
├─sda4 ntfs 1000M WinRE_DRV
├─sda2 16M
├─sda5 ext4 28G /
├─sda3 ntfs 139,6G Windows
├─sda1 vfat 260M /boot/efi SYSTEM
└─sda6 ext4 69,7G /home
[sd7 with extra space?]
sda 238,5G
├─sda4 ntfs 1000M WinRE_DRV
├─sda2 16M
├─sda5 ext4 28G /
├─sda3 ntfs 139,6G Windows
├─sda1 vfat 260M /boot/efi SYSTEM
└─sda6 ext4 69,7G /home
...但这就是我得到的:
sdb 1023,8M
sda 238,5G
├─sda4 ntfs 1000M WinRE_DRV
├─sda2 16M
├─sda5 ext4 28G /
├─sda3 ntfs 139,6G Windows
├─sda1 vfat 260M /boot/efi SYSTEM
└─sda6 ext4 69,7G /home
上面sda
是我的主 250GB 驱动器,也是sdb
新驱动器。克隆之前,sdb
它关联了大约 460G 的空间,没有分区。
为什么sdb
显示没有任何分区?为什么它与 1023,8M 而不是 ~500G 相关联?
编辑:重新启动后,第二个 SSD 通过 USB 连接,我得到:
NAME FSTYPE SIZE MOUNTPOINT LABEL
sdb 465,8G
├─sdb4 1000M
├─sdb2 16M
├─sdb5 28G
├─sdb3 139,6G
├─sdb1 vfat 260M SYSTEM
└─sdb6 69,7G
sda 238,5G
├─sda4 ntfs 1000M WinRE_DRV
├─sda2 16M
├─sda5 ext4 28G /
├─sda3 ntfs 139,6G Windows
├─sda1 vfat 260M /boot/efi SYSTEM
└─sda6 ext4 69,7G /home
这要好得多,但仍然不是我想要看到的。为什么 ntfs 和 ext4 文件系统类型不可见?为什么剩余的 ~220G 没有显示在任何地方?
编辑#2:这是输出sudo fdisk -l
:
Disk /dev/sda: 238,5 GiB, 256060514304 bytes, 500118192 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: gpt
Disk identifier: 214236EA-A3F6-48D6-876E-E94A1F829226
Device Start End Sectors Size Type
/dev/sda1 2048 534527 532480 260M EFI System
/dev/sda2 534528 567295 32768 16M Microsoft reserved
/dev/sda3 567296 293269503 292702208 139,6G Microsoft basic data
/dev/sda4 498069504 500117503 2048000 1000M Windows recovery environment
/dev/sda5 293269504 351862783 58593280 28G Linux filesystem
/dev/sda6 351862784 498069503 146206720 69,7G Linux filesystem
Partition table entries are not in disk order.
GPT PMBR size mismatch (500118191 != 976773166) will be corrected by w(rite).
Disk /dev/sdb: 465,8 GiB, 500107861504 bytes, 976773167 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: gpt
Disk identifier: 214236EA-A3F6-48D6-876E-E94A1F829226
Device Start End Sectors Size Type
/dev/sdb1 2048 534527 532480 260M EFI System
/dev/sdb2 534528 567295 32768 16M Microsoft reserved
/dev/sdb3 567296 293269503 292702208 139,6G Microsoft basic data
/dev/sdb4 498069504 500117503 2048000 1000M Windows recovery environment
/dev/sdb5 293269504 351862783 58593280 28G Linux filesystem
/dev/sdb6 351862784 498069503 146206720 69,7G Linux filesystem
我注意到有两点不太对劲。首先,这个警告/错误以红色显示:GPT PMBR size mismatch (500118191 != 976773166) will be corrected by w(rite).
。其次,两个 SSD 具有相同的磁盘标识符号。
答案1
我觉得有些地方不对劲,至少克隆的副本是这样的。也许在 [原始驱动器和克隆副本] 都连接的情况下,从其中一个驱动器启动时损坏了某些东西。
请仔细检查,当原始驱动器单独安装在计算机中时,它是否仍能正常工作。
如果是,我认为最好再次克隆。请从第三个驱动器启动(例如带有实时 Ubuntu 系统的 USB 闪存盘或 Clonezilla 实时驱动器)。您可以下载 Clonezilla iso 文件并创建启动驱动器,然后使用 Clonezilla 进行克隆,
它比 更安全、更快捷
dd
。克隆操作完成后关闭计算机。
将原始驱动器和克隆副本分开放置。切勿在其中一个驱动器处于连接状态时从另一个驱动器启动。
启动实时系统并运行
gdisk
以修复克隆副本末尾的备份分区表。之后检查gdisk
驱动器是否满意,即不会抱怨分区表。gpt-fix
根据此链接,您可能会发现该脚本很方便,help.ubuntu.com/community/Installation/UEFI-and-BIOS/stable-alternative#gpt-fix
现在您可以从克隆副本启动计算机(应移除原始驱动器)。它应该与原始系统完全一样工作。
完成此测试后,您可以编辑分区表以开始使用仍未分配的驱动器空间(通过增加某些现有分区的大小或创建新分区)。请注意,如果您移动分区的头端
/boot
(根分区或单独的启动分区),您还必须修复/重新安装 grub。