在 GPT/UEFI 卷上移动 `/boot` 和 `/`(根)分区

在 GPT/UEFI 卷上移动 `/boot` 和 `/`(根)分区

我在 Linux 下工作,使用 500GB GPT 内部存储设备,分区为/boot/(根)/var和,/home位于不同的ext4卷中。由于历史原因(它曾经是一个双 Linux-Linux 安装系统),该设备现在在当前使用的安装卷之间有大量散布的空间。该空间是(从之前)分配的,并且仍然包含/boot属于第二个(现已废弃的) Lx OS 的分区。双启动菜单仍然显示两个系统之间的选择,但其中一个系统除了其分区外基本上已经消失了/boot。我认为这些空间被浪费了,想回收它。

在Linux上使用disks,当前分区如下:这里(已安装的内容用黑色三角形显示。)除了上面已经提到的卷之外,在图像的左侧disks,您还可以看到 EFI FAT 分区(最左边,正如您所期望的那样)、交换空间和大量已分配但从未安装的空间。

一切启动并正常工作,并且我备份了我的数据和完整的分区布局,后者是通过获得的# sfdisk -d /dev/nveme0n1 > partition-layout.dump

我想将已挂载的/boot/(根)都移到交换空间的左侧,并将从未挂载的空间重新分配给var.../home我并不打算触碰设备的 GPT 标头或 EFI FAT 卷。

我以前在具有传统 BIOS 启动的 MBR 卷上使用过 GParted,但从未在 EFI/GPT 环境中使用过。移动会/boot损害引导加载程序并使我的卷无法启动吗?如果是这样,我应该准备做什么,重建引导加载程序,重新索引分区,...更多,..以上都不是?

特别是如果我使用 GParted,它会跟踪新位置并更新分区索引以便引导加载程序在重新分区后不会阻塞吗?

我已经做好了准备,但在采取行动之前,我想确保自己不会做出愚蠢的事情。如果您能给我一些建议,我会非常感激。如果我忘记了背景的重要方面,我很乐意提供更多细节。

干杯。

答案1

[TLDR](简短版本)
OP 中显示的分区的特定配置使得在移动分区的头端后不必重建/恢复引导加载程序/boot

[完整故事]
我做了什么:

  • 在 UEFI 模式下使用可启动 USB 驱动器在 live-Linux 上启动。(我选择使用 Ubuntu 18.04)。
    请注意,Ubuntu 和现代 NVIDIA 独立显卡根本无法兼容。如果您有最新的 NVIDIA 显卡(最新的……比如说 2017 年左右),那么如果您实际使用 UEFI 启动没有 GUI 的实时操作系统,您将节省时间。这意味着在 CLI 上执行重新分区,并且可能随后恢复引导加载程序。

  • 使用 GPartEd 回收分区 2 和移动分区 3(交换)向左移动,因此它与分区 1 相邻。简单地“移动”它不会改变分区的 UUID。如果您将其删除并在其他地方重新创建它(完全由您决定),则稍后您必须进入 vi/etc/fstab来修改相应交换条目的新 UUID。

  • /boot(分区 5) 移动到所需的最左边。移动该分区的头端(即 OP 图形表示的左边界)需要您稍后恢复引导加载程序(在我的情况下是 GRUB2)。否则您将无法启动。如果与当前情况不同,/boot并且/(root) 位于同一分区上,则移动 (root) 的头端/还需要恢复 GRUB 引导加载程序(因为这意味着重新索引位于根分区中的 /boot/efi 信息的开头)。
  • 移动/(根),/var随心所欲/home

以上就是对我最初问题的完整回答。


恢复 booloader 超出了本文的范围,但有很好的文档记录,现在甚至适用于 UEFI。查找以获得详细帮助。您的里程可能会因您拥有的发行版而异,但我的建议是:尽可能多地使用通用的 cli 指令。它们最好有文档记录,例如在chroot的情况下,而包装器(再次如chroot的包装器)可能没有。同样,您自己决定。

HTH,是否有人与我有类似的疑问。

相关内容