如何在 Ubuntu 中将 MBR 驱动器(加密 LVM 或未加密 LVM)转换为 GPT?

如何在 Ubuntu 中将 MBR 驱动器(加密 LVM 或未加密 LVM)转换为 GPT?

当未检测到 UEFI BIOS 时(例如当硬件不支持 EFI/太旧时),Ubuntu 安装程序默认使用 MBR 驱动器设置。它仍然使用 LVM 作为自动分区方案。

在 Fedora 中有一种方法可以强制安装程序使用启动标志(inst.gpt)创建带有 LVM 的 GPT 驱动器。

目前在 Ubuntu 上还没有办法做到这一点,那么如何使用 LVM 方案将 MBR 驱动器转换为 GPT,安装后? 目前我找到的唯一文档(http://www.rodsbooks.com/gdisk/mbr2gpt.html) 不包括 LVM 设置(无论是否加密)。

我尝试安装的是 Dell Latitude E6400(2009 年制造,没有 EFI)上的 Ubuntu 16.04.6,但这适用于用户想要使用 GPT 而不是 MBR 的任何非 EFI 系统。目前,当我运行安装程序并选择 LVM(加密)时,安装程​​序会使用 MBR 创建方案。

虽然这里的答案可能有些适用https://askubuntu.com/a/85857/39237它不包括 LVM(无论是否加密)。

请注意,我正在寻找的答案不一定需要涵盖加密的 LVM 设置(这甚至可能是不可能的,但我还不能 100% 确定这一点)。涵盖加密的答案联合国加密的 LVM 设置就可以了。

答案1

您所要做的就是删除旧表(这不会破坏文件系统,但会破坏引导加载程序),然后创建一个新表,所有包含数据的分区(lvm、文件系统等)的起始扇区都相同。

您可能可以在正在运行的系统中执行此操作,但您会收到警告和错误(在 redhat 发行版中,gparted 已修补/配置为傻瓜式并阻止您,但 sgdisk 和 gdisk 可能有效)。您应该在 LIVE 或救援启动中执行此操作。

  • 新分区必须从完全相同的部门和旧的一样
  • 新分区必须完全以相同的方式结束部门或旧版本之后
  • 忘记扩展分区...相关扇区号是主扇区号和逻辑扇区号;扩展分区使用的其余空间将是空闲的
  • 理想情况下,您希望它们按相同的顺序排列,并且任何与启动相关的内容都按从 1 开始到 2TiB 之前的顺序按数字创建(避免可能由硬件、固件、引导加载程序引起的一些问题)
  • 您要么需要在传统模式下启动并创建一个 >= 1MiB bios_grub 分区,并将bios_grub标志打开(parted /dev/sdX set 1 bios_grub on),要么在 UEFI 模式下启动并创建一个 ESP 分区(格式化mkfs.vfat -F 32 ...并打开 esp 标志:parted /dev/sdX set 1 esp on)。或者您可以创建两者并随时启动其中之一。(我会将 bios_grub 放在 ESP 之前,还没有测试过反过来)。这不是您的/boot分区...它是附加的。
  • 由于上一项,先决条件是,您已有的分区之前有足够的空间可以添加此分区。在 Windows 上,只需缩小恢复卷,或在 Linux 上,缩小并移动启动或交换分区。如果失败,您可以将其克隆到另一个位置,在克隆时或克隆回来时调整大小。
  • 您将需要重新安装引导加载程序grub-install ...(如果发行版没有自动确定其余部分,这里是完整的grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu --recheck --no-floppy /dev/sdX),或者使用其他 EFI 东西,而不是 grub。
  • 我建议生成一个新的 initramfs...它会找出您需要哪些模块,哪些模块可能已经改变...我不知道。
  • 然后对于特殊设置,只需重复使其工作所需的一切,例如加密……这可能与安装程序的方式不同。这只是关于引导加载程序,而不是工具和 rootfs。

答案2

使用gparted或 Live CD 中的其他分区工具格式化驱动器并创建 GPT 分区表,然后安装 Ubuntu。它将保留现有的分区表。

相关内容