FET*_*FET 5 ubuntu grub2 macos
我知道这是一个非常常见的问题,但如果我在这里,这意味着我已经搜索并尝试了很多道路:但没有成功。我正在尝试在 MacBookPro 13" 2019 上安装 Ubuntu,运行 MacOS BigSur,分区(也不是 VM 也不是 bootcamp)。
我此时已经下载了 Ubuntu 的最新稳定版本:Ubuntu 20.04.2.0 LTS。
然后我插入一个 4GB USB 并使用磁盘工具将其格式化为 MS-DOS (FAT)。
最后安装了Etcher并将 ISO 映像刻录到我的 USB 中。
按住选项键重新启动我的 Mac 并启动到我的 USB(EFI 启动)。
打开活动概述并开始输入设置。
单击“设置”。
单击侧栏中的辅助功能以打开面板。
在“打字”部分打开屏幕键盘。
我点击桌面上的 Ubuntu 安装程序图标
所选语言
选择正常安装并勾选“安装第三方软件”
当询问要安装 Ubuntu 的分区时,选择了其他选项/else
然后我从可用空间创建了 2 个分区
然后,我确保安装引导加载程序的磁盘设置为磁盘而不是我创建的特定 EFI分区(即 /dev/nvme0n1 而不是 /dev/nvme0n1p3)
点击立即安装
在grub2步骤安装失败
我在使用 macOS Big Sur 版本 11.1、配备 2 GHz 四核 Intel Core i5 处理器的 2020 MacBook Pro 上安装 Ubuntu 20.04.2.0 LTS 时遇到了完全相同的问题。经过两天的努力,我终于找到了解决方案。请注意,这是一个漫长的过程。
\n根据我的研究,我发现问题是由于 Mac 引导加载程序期望 EFI 分区格式化为 HFS+,而 Ubuntu 安装程序将其格式化为 VFAT(如 Rohith Madhavan此处所述)。
\n为了解决这个问题,我找到了三种可能的解决方案:
\n选项一是七年前发布的,需要在我的 Ubuntu 安装中添加一个未签名的存储库(出于安全原因我不愿意这样做)。我不明白从 GRUB 交换到 rEFInd 的全部含义,所以我不习惯使用选项二,最后,我不希望使用外部 SSD 来降低内存访问速度,所以我不想选择选项三。
\n我的最终解决方案是使用选项一和选项三的部分内容来将我自己的 GRUB 配置文件格式化为 HFS+,以便我可以从内部 SSD 上的分区启动 Ubuntu。
\n虽然该过程不会给您带来任何问题,但如果发生错误,可能会擦除您的驱动器。因此,在继续操作之前备份所有内容始终是最安全的。
\nApple SSD
驱动器(确保选择父驱动器而不是容器)。Ubuntu Boot Loader
格式Mac OS Extended (Journaled)
和大小为 128MB 的新分区。稍后这将作为 Ubuntu 引导加载程序的位置。Ubuntu
with format 的新分区MS-DOS (FAT)
,并为其分配您希望 Ubuntu 安装具有的内存大小(我建议不小于 50GB)。Erase
,选择格式MS-DOS (FAT)
并选择方案,GUID Partition Map
然后点击Erase
。Cmd+R
重新启动。这将使您进入恢复模式。Utilities
,选择下拉菜单中的第一项,然后将设置更改为No Security
和Allow booting from external drive
。Option
。Update Required
。点击Update
选项。这将重新启动您的计算机。确保在Option
它重新打开时按住。然后再次点击EFI启动。Installation Type
选择Something Else
。MS-DOS (FAT)
您创建的分区并点击减号。Free Space
并点击加号。Ext4 Journaling File System
、检查Format the partition
并将安装点设置为/
。Free Space
并点击加号。swap
格式。Device for boot loader installation
选择您所在的分区ext4
。Install Now
。grub-install /dev/nvme****
失败的警告,但不用担心。只需点击重新启动即可。系统会要求您移除 USB,然后点击Enter
。现在,您的计算机上已经安装了 Ubuntu,但如果没有帮助,您的 GRUB 引导加载程序将无法打开它。
\nOption
在启动时按该键。在 grub 控制台中输入 ls
\ngrub> ls\n\n(memdisk) (hd0) (hd0,msdos) (hd1) (hd2) (hd2,gpt3) (hd2,gpt2) (hd2,gpt1)\n
Run Code Online (Sandbox Code Playgroud)\n您可能不会得到与此完全相同的结果,但您\xe2\x80\x99将有一些类似的选项。
\n现在,找到包含您的用户主目录的分区。
\ngrub> ls (hd2,gpt2)/home\n\nrohith/\n
Run Code Online (Sandbox Code Playgroud)\n继续尝试,直到找到为止。
\n最后一步的结果有两部分:(hdX,gptY)。您需要保留 hdX 部分,但浏览所有 gptY 选项以查找 /boot/grub 目录。
\ngrub> ls (hd2,gpt2)/boot/grub\n\nunicode.pf2 [...] grub.cfg\n
Run Code Online (Sandbox Code Playgroud)\n现在您想将其设置为您的根目录以执行进一步的命令。
\ngrub> set root=(hd2,gpt2)\n
Run Code Online (Sandbox Code Playgroud)\n正确启动的唯一方法是使用驱动器的 UUID。为拿到它,为实现它 -
\ngrub> ls -l (hd2,gpt2)\n
Run Code Online (Sandbox Code Playgroud)\n记下 UUID。您必须在下一步中手动输入它。
\ngrub> linux /boot/vmlinuz .efi.signed root=UUID=\xe2\x8c\xa9the UUID from above\xe2\x8c\xaa\n
Run Code Online (Sandbox Code Playgroud)\nGRUB 控制台可以完成制表符补全,因此如果您只需键入 vmlinuz 部分并按 Tab,然后按 。并再次按 Tab 键,您将不必键入整个文件名。确保 efi.signed 部分存在。
\n现在,设置初始 RAM 磁盘
\ngrub> initrd /boot/initrd\xe2\x8c\xa9...tab here!...\xe2\x8c\xaa\n
Run Code Online (Sandbox Code Playgroud)\n您应该能够使用命令启动
\ngrub> boot\n
Run Code Online (Sandbox Code Playgroud)\n您现在将进入 Ubuntu 安装状态,就好像一切都已正确安装一样。但每次重新启动时都必须重复此过程。要解决此问题,您可以执行以下操作。
\n如果您遇到问题:
\n确认您之前收到的 UUID 位于发行版的 grub.cfg 中 /boot/efi/EFI/ 下(例如 /boot/efi/EFI/ubuntu/grub.cfg)中的行search.fs_uuid SYSTEM-PARTITION-UUID-HERE root
。如果没有,请复制粘贴当前值的行并在前面添加注释行 (#),然后在新行上将 替换SYSTEM-PARTITION-UUID-HERE
为 ubuntu 分区的 UUID。
在这里,您需要将 Ubuntu 安装默认创建的 VFAT 引导加载程序重新格式化为 HFS+。这可以通过使用 GRUB 创建您自己的引导加载程序配置来完成。我使用的方法与 Floris van Breugel 所做的相同(但在我的内部 SSD 而不是外部 SSD 上)。
\nMaking Ubuntu bootable part 1
按照从标题开始一直到结束的说明进行操作Turn SIP back on (for security)
。唯一的变化是您应该引用的磁盘是您的内部Ubuntu Boot Loader
分区(您不需要带有此分区的外部驱动器。Option
在启动过程中按住 键重新启动计算机。您现在将拥有两个 EFI 启动驱动器。进入最左边的那个。它应该说你需要安装更新才能工作。点击Update
。Option
键,然后选择中间的 EFI 启动驱动器。这将再次带您进入 GRUB 屏幕。等待一两分钟,然后它应该会带您进入 Ubuntu 加载屏幕。你们都完成了。您现在应该能够启动 Ubuntu 和 MacOS。
\n希望这对你有用。
\n 归档时间: |
|
查看次数: |
15032 次 |
最近记录: |