我有一台带有 350 GB HDD 的双启动计算机(Windows + ubuntu)。我只想将 ubuntu 克隆到 120GB SDD。我怎样才能做到这一点。
PS:我已使用“dd”将Linux分区(sda5)复制到SDD,我需要做什么来保留磁盘的几何形状以便它可以启动。
Disk /dev/sda: 298.1 GiB, 320072933376 bytes, 625142448 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: 0x000f3d7c
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 718847 716800 350M 7 HPFS/NTFS/exFAT
/dev/sda2 718848 200712992 199994145 95.4G 7 HPFS/NTFS/exFAT
/dev/sda3 369358848 625139711 255780864 122G 6 FAT16
/dev/sda4 200714238 369358847 168644610 80.4G 5 Extended
/dev/sda5 200714240 353449983 152735744 72.9G 83 Linux
/dev/sda6 353452032 369358847 15906816 7.6G 82 Linux swap / Solaris
答案1
重来。在开始之前至少通读整个答案一次,并确保您理解它。如有必要,将其复制到编辑器并修复对/dev/sdaX
和 的假定引用/dev/sdbX
。真的。您希望将这些做好,因为您有一个非常容易的机会来完全彻底地破坏现有的安装。真的。
对 SSD 进行分区。
- 您可能需要 UEFI 启动分区。
/dev/sda5
您需要一个至少与Linux 分区大小相同的分区。- 您可能需要一个交换分区。
复制您要保留的 Linux 分区
- 从救援磁盘启动
- 假设目标是
/dev/sdb2
,运行cat /dev/sda5 >/dev/sdb2
- 别费心了
dd
。使用cat
并不慢而且通常快得多
调整目标文件系统的大小以适合分区
- 假设目标是
/dev/sdb2
和您的文件系统类型是ext3
或ext4
,运行resize2fs /dev/sdb2
- 假设目标是
仍在使用救援盘
- 假设目标是
/dev/sdb2
,运行chroot /dev/sdb2 /bin/bash
运行以下命令,但请注意,您的命令可能会因发行版而异
grub-install /dev/sdb # Second disk update-grub
- 假设目标是
重新启动并确保新系统可以启动
如果有交换分区,请修复交换分区
- 假设你的新交换是
/dev/sdb3
,运行mkswap /dev/sdb3
- 编辑
/etc/fstab
以更新(或注释掉)交换 UUID 定义
- 假设你的新交换是
删除旧磁盘并重新启动
- 您可能需要暂时将 grub 引导参数更改为引用
hd0()
而不是hd1()
.如果是这样... 再次运行以下命令或等效命令
grub-install /dev/sda # First disk, this time update-grub
- 您可能需要暂时将 grub 引导参数更改为引用
再次重启
- 到这个阶段,应该可以顺利启动了
答案2
感谢上面的回答。我有双操作系统设置。
- 使用 gparted 在外部硬盘驱动器上创建 ubuntu 分区的副本。这是通过 live ubuntu USB 完成的
- 删除源磁盘上的ubuntu分区
- 克隆将 Windows 复制到新的 SSD(目标磁盘)。完成后,快速检查登录 Windows 是否成功。
- 将 ubuntu 分区从外部硬盘复制到新的 SSD。这也是通过 live USB 完成的
- 在实时 USB 上运行启动修复工具来修复 grub
重新启动后,能够登录两个操作系统。