AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 559007
Accepted
LiveWireBT
LiveWireBT
Asked: 2014-12-11 15:09:16 +0800 CST2014-12-11 15:09:16 +0800 CST 2014-12-11 15:09:16 +0800 CST

是否仍然可以使用 UEFI 将 Ubuntu 安装到外部硬盘驱动器?

  • 772

看起来使用 UEFI 无法将 Ubuntu 安装到外部硬盘驱动器,而与 MBR 一样,外部和内部之间没有太大区别。这是真的还是仍然可能?

甚至可以结合两种引导方法吗?

grub2
  • 1 1 个回答
  • 16977 Views

1 个回答

  • Voted
  1. Best Answer
    LiveWireBT
    2014-12-11T15:09:16+08:002014-12-11T15:09:16+08:00

    其实是可以的。

    在我继续之前,这些说明适用于空白 EFI 系统分区 (ESP),并且可能会覆盖现有文件,或者无法按预期工作。至少做好备份!

    为不同平台添加所需的分区

    平台:Legacy PC、基于 UEFI 的 Windows 计算机、Apple 计算机

    使用 MBR 将 ESP 添加到现有安装

    您需要按照来自其他安装或实时媒体的这些说明进行操作。

    1. 安装grub-efi-amd64-bin软件包。这只会安装所需的资源。它不会将您现有的 MBR 样式安装切换到 UEFI 并将事情颠倒过来。

    2. 在GParted中缩小 Ubuntu 分区以为 ESP 腾出空间。ESP 的建议大小范围为 100 MB 到 500 MB,但按照此处的这些说明创建的文件不需要超过 2 到 5 兆字节。

      注意:你的 ESP 在磁盘上的位置无关紧要,将你的 Ubuntu 分区从末尾缩小几兆字节应该是快速和安全的。一开始收缩是不安全的。但需要注意的是,您的 ESP 应该是主分区,而不是扩展分区或逻辑卷的一部分,分区号从 1 到 4 都可以,上面的数字表示 MBR 分区表上的扩展分区。

      选择 FAT32 作为文件系统并设置引导标志。

    3. 挂载您刚刚创建的 ESP 和您缩小的根文件系统:

      mkdir -p /mnt/esp
      mount $esp_device /mnt/esp
      mkdir -p /mnt/rootfs
      mount $root_device /mnt/rootfs
      

      注意:将$esp_deviceand替换$root_device为适当的设备,例如/dev/sdb2and /dev/sdb1。挂载点 /mnt/esp和/mnt/rootfs只是选择用于此答案其余部分的示例。

      使用以下命令安装 GRUB 的 EFI 映像和最小配置文件:

      grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
      

      请注意,这$device是整个设备/dev/sdb,而不是分区。

    4. 就是这样,我们已经完成了,但让我尝试解释一些事情。

      该参数--target x86_64-efi将确保 UEFI 映像和模块将安装到给定路径。--removable将 UEFI 映像安装到\EFI\BOOT\BOOT{arch}.EFI可移动媒体的硬编码路径,而不是特定于分发的路径。您grub.cfg的 in/boot/grub/应该适用于两种引导方法,并且一个名为 的新文件夹x86_64-efi现在应该存在于 旁边i386-pc。

      为了完整起见,这是不可移动媒体的命令,它写入并依赖于平台中的 NVRAM 条目:

      grub-install --efi-directory /mnt/esp --boot-directory /mnt/rootfs/boot --target x86_64-efi --bootloader-id "Ubuntu" $device
      

      正确的 UEFI 安装包括类似于下面的行/etc/fstab,但设置在没有的情况下也能正常工作,并且 UEFI 映像(类似于 MBR 引导加载程序)通常仅在操作系统安装期间写入/更新。

      UUID=1234-567F /boot/efi vfat defaults 0 1
      

    使用 GPT 将 ESP 或 GRUB-BBP 添加到安装中

    将ESP添加到 GPT 分区驱动器上的旧安装与上述非常相似:

    1. 安装grub-efi-amd64-bin软件包。
    2. boot通过调整根分区的大小并设置标志,使用类似于上述说明的 FAT32 文件系统创建一个分区。
    3. 挂载分区并grub-install从上面运行包含--removable参数的命令。

    如果您只想在另一台计算机上启动现有的 UEFI 安装,这也适用。

    为 GRUB创建BIOS 可引导分区(BBP) 有点不同:

    1. 安装grub-pc-bin软件包。

    2. bios_grub通过调整根分区的大小并设置标志来创建类似于上述说明的分区。选择无文件系统并保持未格式化。

    3. 使用管理权限编辑配置文件/etc/default/grub并添加GRUB_DEVICE=/dev/sdb6到最后。替换/dev/sdb6为 BBP 的实际设备名称。您可以使用命令行编辑器nano使事情变得简单。

      使用以下命令将 GRUB MBR 映像安装到 BBP:

      grub-install --boot-directory /mnt/test/boot/ --target i386-pc $device
      

      您可能希望删除或注释掉 in 中的行/etc/default/grub并将其添加到实际安装中。

    奖励:在使用 GPT 的安装中为 Mac 添加一个分区

    我发现我正在测试的非常新的 Mac (Mac Mini A1347 EMC 2840) 可以从标准 FAT32 ESP 启动,甚至可以从 MBR 启动!不管怎样,我们开始吧:

    1. 安装grub-efi-amd64-bin、hfsprogs和mactel-boot(mactel-boot-logo可选)包。您需要启用Universe存储库(如何从命令行启用“Universe”存储库?)并添加当前的Mactel 支持 PPA(有关更多详细信息,请参阅Mactel 支持社区团队)以安装所有这些存储库。

    2. 通过调整根分区的大小,使用类似于上述说明的 HFS+ 文件系统创建一个分区。这次我们需要多几兆字节的空间,所以如果您之前只有 5 兆字节或更少,则将 ESP 的大小加倍。不需要标志。

    3. 挂载分区:

      mkdir -p /mnt/esp-mac
      mount $esp-mac_device /mnt/esp-mac
      mkdir -p /mnt/rootfs
      mount $root_device /mnt/rootfs
      

      注意:我选择了$esp-mac_deviceand/mnt/esp-mac来避免冲突。

      运行grub-install包含--removable参数的命令:

      grub-install --efi-directory /mnt/esp-mac --boot-directory /mnt/rootfs/boot --target x86_64-efi --removable $device
      

      最后按照 Mac 期望的方式设置分区:

      sudo hfs-bless /mnt/esp-mac/EFI/BOOT/bootx64.efi
      sudo cp -v /mnt/esp-mac/EFI/BOOT/bootx64.efi /mnt/esp-mac/System/Library/CoreServices/boot.efi
      sudo cp -v /mnt/esp-mac/EFI/BOOT/grub.cfg /mnt/esp-mac/System/Library/CoreServices/grub.cfg
      sudo cp -v /usr/share/mactel-boot/SystemVersion.plist /mnt/esp-mac/System/Library/CoreServices/SystemVersion.plist
      sudo cp -v /usr/share/mactel-boot-logo/ubuntu.icns /mnt/esp-mac/.VolumeIcon.icns
      echo "Dummy kernel for booting" | sudo tee /mnt/esp-mac/mach_kernel
      

      要在 Mac 上从外部媒体启动 Ubuntu,您现在只需按选项键 ⌥或Alt在 Windows 键盘上选择正确的磁盘。

      显示卷和 Ubuntu 徽标的 Mac 启动管理器

    关于分区标志、类型代码和 GUID

    为了尽可能准确,引导标志对 GRUB 并不重要,默认情况下 GRUB 搜索 UUID 以找到正确的文件系统来引导。在 GParted 中设置引导标志或 bios_grub 标志通常会为分区设置类型 (MBR) 或 GUID (GPT)。

    设置正确类型或 GUID 的好处,除了具有正常工作的设置外,还在于这些分区将隐藏在文件管理器中。检查和更改类型和 GUID 的最简单方法是通过磁盘( gnome-disks)。

    屏幕截图显示了 gnome-disks 中的驱动器和分区

    屏幕截图显示了 gnome-disks 中的编辑分区对话框

    或者,您可以使用 parted 或 gdisk:

    • 0xef 是 MBR 中 ESP 的类型代码,用于 fdisk
    • ef00 是 GPT 中 ESP 的缩写类型代码,用于 gdisk
    • ef02 是 GPT 中 BBP 的缩写类型代码,用于 gdisk

    维基百科有一个很大的GPT GUID列表。

    parted根据手册,命令行等价物是parted $device set partition esp on和parted $device set partition bios_grub on。

    • 14

相关问题

  • 有没有办法从 GUI/桌面管理我的 Grub 菜单选项?

  • grub 菜单中的“恢复”选项是什么?

  • 与 Grub 相比,使用 Grub2 有什么好处?

  • 如果旧版 grub 安装在引导分区扇区而不是 MBR 中,如何将 grub 更新为 grub2?

  • 如何在 Ubuntu 启动时显示或隐藏启动消息?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve