我读过一些问题和答案,大多数答案都是用来dd
将磁盘复制到新磁盘的,新磁盘总是更大。我正尝试将 1TB 磁盘上的单个分区移动到 250GB SSD。
我当前的设置:
sda SSD, GRUB INSTALLED HERE
--sda1 Windows 10 recovery
--sda2 Windows 10 OS ~240 GB
sdb Mechanical HDD, 1TB
--sdb1 Ubuntu 16.04 ~110 GB
--sdb2 NTFS Storage ~650 GB
--sdb3 EXT4 ~16GB (used for testing and backups)
--sdb4 Ubuntu Gnome 14.04 ~120GB
--sdb5 SWAP
我的新 SSD 也是 240GB,我有一个外壳来传输操作系统。我打算将 1TB 换成更小的 SSD,但我只想移动 sdb4。它将看起来像这样:
sdb NEW SSD
--sdb1 Ubuntu Gnome 14.04 ~120GB
--sdb2 Swap ~8GB
--sdb3 NTFS Storage ~112GB
新的 sdb3 NTFS 将是一个空的新分区,我不想从 1TB 中复制它。
为了进行传输,我将从笔记本电脑中取出 1TB,将 SSD 放入原位,然后将 1TB 放入外部 USB 盒中以便访问。我将从 LiveUSB 启动,然后呢?
据我所知,我不能直接dd
将 1TB 复制到 SSD,因为它比较小,而且我不想复制整个磁盘,我只想复制 sdb4。它会将其作为 sdb1 还是 sdb4 复制到新磁盘?
在我弄清楚如何做到这一点之后,我应该能够安装新的 SSD 并将 chroot 放入其中运行,update-grub
对吗?
由于分区使用 UUID,新 SSD 复制的 Linux 分区是否会有新的 UUID?如果它有新的 UUID,这会导致启动/运行出现问题吗?另一方面,如果 UUID 也被复制过来,当我插入 USB 时,出现 2 个相同的 UUID 会导致问题吗?我不想从 1TB 中删除 sdb4,而是将其保留为备份。我还将继续通过 USB 使用 1TB 进行存储。
最后,显然我必须编辑我的/etc/fstab
。
抱歉问了这么多问题,但我读到的所有东西,从使用 dd,到 gparted 和其他软件,都不太清楚,而且操作方式也不同。而且不清楚当操作系统的分区标识符发生变化时(sdb1/4 或新的 UUID),操作系统是否会出现问题。
答案1
既然没人回答,我就决定尝试一下,最后成功了。以下是我所做的;
我通过 USB 插入了新的 SSD。打开 gparted 并转到我的 1TB,右键单击我想要复制的 Ubuntu 安装,然后单击“复制”。转到新的 SSD,右键单击空驱动器并“粘贴”。这花了一段时间,但它复制了整个分区并保留了 UUID。我对交换分区做了同样的事情,这样新的分区就会有相同的 UUID,而且我甚至不必对我的分区进行任何更改,/etc/fstab
因为它使用 UUID。然后我创建了一个空白的 NTFS 分区,可以在 Ubuntu 和 Windows 之间共享。
完成后,我物理交换了新的 SSD 和 1TB 驱动器。启动时,我收到设备不存在的错误。
我启动了 LiveUSB 并选择“尝试 Ubuntu”。
然后我打开终端并输入以下内容:
sudo mount /dev/sdb1 /mnt
sudo grub-install --root-directory=/mnt /dev/sda
sudo umount /dev/sdb1
这sdb1
是我从旧的 1TB 复制过来的新分区,也是sda
我的 Windows 驱动器,其上始终安装着 grub。
运行grub-install
上述命令检测到了 SSD 上 Ubuntu 的新家,还检测到了 Windows 10。我甚至不需要执行任何update-grub
命令。
我重新启动了笔记本电脑,grub 出现了两个选项:Ubuntu Gnome 或 Windows 10,并且这两个选项都运行良好!
我的 1TB 现在放在我最初用于 SSD 的 USB 盒中,只是为了复制分区。现在它将用于长期存储。我更喜欢速度而不是大小。
附注:在 SSD 上运行 Ubuntu Gnome 14.04 速度极快,大约 5 秒即可启动到桌面。可以说我非常满意!