当未检测到 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。它将保留现有的分区表。