原因是我想要增加我的 Ubuntu 分区大小,但由于“不能有重叠分区”之类的错误而无法这样做,所以现在我想复制整个分区的内容并将其粘贴到另一个 ext4 分区中。
我只是想知道如何指示 grub 从该特定分区启动(如果需要)?
以下是屏幕截图:
答案1
我已经多次这样做了,但有一些棘手的手动步骤。如果您是 Linux 新手,这种方法可能会令人望而生畏(抱歉):
我假设您之前删除了 sda1 分区,这就是为什么在磁盘开头有未分配的空间,高级过程是:
- 重新创建 sda1 分区
- 将新的 sda1 分区格式化为 ext4
- 我建议您将新分区标记为:
- e2标签 /dev/sda1 ssdroot1
- 挂载新的 sda1 分区
- 将当前系统复制到新的 sda1
- 为此,我使用了一个技巧来复制正在运行的系统:
假设你的新 sda1 安装在 /mnt/sda1/:
mkdir /bind
mount -o bind / /bind
cd /bind
cp -a . /mnt/sda1/
cd
umount /bind
- 最后,您需要编辑 /mnt/sda1/etc/fstab 以使新的 sda1 成为 /(根)分区。
- 将新的 UUID 替换 sda5 UUID
您可以通过执行以下操作来查看 UUID 和标签:
blkid | grep sda
重新启动之前,请记下 sda1 标签或 UUID。
首次启动到 sda1 时,您需要通过编辑启动参数在 grub 提示符下手动覆盖根目录。这些编辑只影响本次启动,不会保存到磁盘。
Press 'e' to edit
find the linux line with root=UUID=....
change it to the new UUID, or remove the root=UUID=... and put in root=LABEL=ssdroot1
(assuming you labeled your new sda1 partition)
按 F10 继续启动,如果幸运的话,您将启动到 sda1 的 Linux 副本。
检查你是否确实处于新的 Linux 中:
df
cat /proc/mounts
进入新的 Linux 副本后,我建议您运行:
update-grub
请注意,主引导记录仍将引用您的旧 sda5 Linux。
如果要使这些更改永久生效,以便可以删除 sda5,则必须通过从 sda1 Linux 运行以下命令来更新 MBR 以引用 sda1 Linux:
grub-install /dev/sda
祝你好运!- 格雷格
答案2
我想提供另一种选择。我知道您在标题中说您想复制当前的 Linux 分区并从中启动,我在另一个答案中提到了这一点,但是,如果您真正想做的只是更好地利用 SSD 驱动器,您还有其他选择。
您仍然需要重新创建和格式化 sda1 分区,但是,您可以将新的 sda1 分区挂载为 /data(例如),然后访问额外的存储。
这比我的第一个答案要简单得多,也不太复杂,但是你的 Linux 系统不会被复制。它将保留为 sda5
- 格雷格