Mac 上的 Ubuntu:執行“grub-install /dev/nvme0n1”失敗
我知道這是一個非常普遍的問題,但如果我在這裡,這意味著我已經搜尋並嘗試了許多道路:不成功。我正在嘗試在 MacBookPro 13" 2019 上安裝 Ubuntu,執行 MacOS BigSur,在一個分區(既不是 VM 也不是 bootcamp)中。
我是如何準備 Ubuntu live USB 的
- 我此時已經下載了最新的 Ubuntu 穩定版本:Ubuntu 20.04.2.0 LTS。
- 然後我插入一個 4GB USB 並使用磁碟工具將其格式化為 MS-DOS (FAT)。
- 最後安裝Etcher並將 ISO 映像刻錄到我的 USB 中。
- 重新啟動我的 Mac 並按住選項鍵並啟動到我的 USB(EFI 啟動)。
我如何安裝 Ubuntu
- 從第一個菜單中,我選擇了“試用 Ubuntu”
- 一旦進入桌面,觸摸板和鍵盤都無法正常工作,因此我插入了外接滑鼠並啟用了螢幕鍵盤以完成安裝
- 打開活動概覽並開始輸入設置。
- 點擊設置。
- 點擊邊欄中的輔助功能以打開面板。
- 在打字部分打開螢幕鍵盤。
- 我點擊了桌面上的 Ubuntu 安裝程序圖示
- 選擇的語言
- 選擇正常安裝並選中“安裝第三方軟體”
- 當詢問安裝 Ubuntu 的分區時,選擇其他選項/else
- 然後我從自由空間創建了 2 個分區
- 512MB之一,“ EFI ”(來自下拉菜單)
- 30GB,ext4 (來自下拉菜單)之一,安裝到**/**(來自其他下拉菜單)
- 然後我確保將安裝引導載入程序的磁碟設置為磁碟而不是我創建的特定 EFI分區(即 /dev/nvme0n1 而不是 /dev/nvme0n1p3)
- 點擊立即安裝
- 在 grub2 步驟安裝失敗
筆記
- 我已經嘗試取消選中“安裝第三方軟體”
- 我已經嘗試選擇“最小安裝”而不是正常
- WiFi 也無法使用,所以我後來嘗試了乙太網電纜,現在網路連接可以使用
- 我完全擦除了我的磁碟並重新安裝了 MacOS(我當然有我的文件的備份)
安裝過程影片
最後一條錯誤消息的螢幕截圖
我在使用 macOS Big Sur 版本 11.1 的 2 GHz 四核 Intel Core i5 處理器的 2020 MacBook Pro 上安裝 Ubuntu 20.04.2.0 LTS 時遇到了完全相同的問題。在花了兩天時間試圖讓它工作後,我終於找到了解決方案。請注意,這是一個漫長的過程。
根據我的研究,我發現問題是由於 Mac 引導程序期望 EFI 分區被格式化為 HFS+,而 Ubuntu 安裝程序將其格式化為 VFAT(如 Rohith Madhavan 所述)。
為了解決這個問題,我找到了三種可能的解決方案:
- 使用 Rohith Madhavan 的方法。
- 將引導載入程序從 GRUB 切換到rEFInd。
- 使用 Floris van Breugel 的方法在外部 SSD 上安裝 Ubuntu 。
選項一是七年前發布的,需要在我的 Ubuntu 安裝中添加一個未簽名的儲存庫(出於安全原因,我不願意這樣做)。我不了解從 GRUB 交換到 rEFInd 的全部含義,所以我不習慣使用選項二,最後,我不希望通過使用外部 SSD 來降低記憶體訪問速度,所以我不想選擇選項三.
我的最終解決方案是使用選項 1 和 3 的一部分來製作我自己的 GRUB 配置文件,格式為 HFS+,這樣我就可以從內部 SSD 上的分區啟動 Ubuntu。
備份
雖然該過程不會給您帶來任何問題,但如果發生錯誤,它可能會擦除您的驅動器。因此,在繼續之前備份所有內容總是最安全的。
安裝 Ubuntu
- 在 Mac 上打開磁碟工具。
- 選擇您的
Apple SSD
驅動器(確保選擇父驅動器而不是容器)。- 選擇“分區”。
- 點擊加號按鈕並創建一個名為
Ubuntu Boot Loader
格式Mac OS Extended (Journaled)
和大小 128MB 的新分區。這將作為您稍後的 Ubuntu 引導載入程序的位置。- 再次點擊加號按鈕並創建另一個名為
Ubuntu
format的新分區,MS-DOS (FAT)
並為其分配您希望 Ubuntu 安裝具有的記憶體大小(我建議不小於 50GB)。- 從這裡下載 Ubuntu 。
- 插入 USB 並轉到磁碟工具。從這裡找到USB,點擊
Erase
,選擇格式MS-DOS (FAT)
並選擇方案,GUID Partition Map
然後點擊Erase
。- 使用Etcher將此 ISO 文件快閃記憶體到 USB 上。請注意,這將擦除整個 USB(有關詳細資訊,請參閱此內容)。
- 重新啟動電腦,
Cmd+R
然後重新啟動。這將使您進入恢復模式。- 登錄您的帳戶,進入菜單位置
Utilities
,選擇下拉菜單中的第一件事,然後將設置更改為No Security
和Allow booting from external drive
。- 關掉你的電腦。
- 插入可啟動的 USB 驅動器並在按住
Option
鍵的同時打開電腦。- 選擇 EFI 引導驅動器(應為黃色)。它可能會顯示一個警告說
Update Required
。點擊Update
選項。這將重新啟動您的電腦。Option
確保在它重新打開時您正在握住它。然後再次點擊 EFI 啟動。- 從這裡開始執行步驟一到五。
- 在
Installation Type
頁面上選擇Something Else
.- 找到
MS-DOS (FAT)
您創建的分區並點擊減號。- 選擇
Free Space
並點擊加號。- 通過選擇您想要的 GB 數來創建您的 Linux 記憶體空間,選擇
Ext4 Journaling File System
,檢查Format the partition
並將掛載點設置為/
.- 選擇
Free Space
並點擊加號。- 創建您的 Linux 交換空間,使用剩餘記憶體並選擇
swap
格式。- 在
Device for boot loader installation
選擇ext4
格式化記憶體所在的分區下。- 打
Install Now
。- 繼續安裝過程。您將再次看到
grub-install /dev/nvme****
失敗的警告,但不要擔心。只需點擊重新啟動。您將被要求移除 USB,然後點擊Enter
。您現在將在您的電腦上安裝 Ubuntu,但是如果沒有一些幫助,您的 GRUB 引導載入程序將無法打開它。
進入 Ubuntu
- 重新啟動電腦並
Option
在啟動時按該鍵。- 選擇 EFI 引導驅動器(這是您的 Ubuntu 安裝)。
- 您應該會看到一個 GRUB 終端。
- 按照Rohith Madhavan概述的這些步驟進行操作:
在 grub 控制台中,輸入 ls
grub> ls (memdisk) (hd0) (hd0,msdos) (hd1) (hd2) (hd2,gpt3) (hd2,gpt2) (hd2,gpt1)
您可能不會得到與此完全相同的結果,但您會有一些類似的選項。
現在,找到包含使用者主目錄的分區。
grub> ls (hd2,gpt2)/home rohith/
繼續嘗試,直到找到為止。
最後一步的結果有兩部分:(hdX,gptY)。您需要保留 hdX 部分,但通過所有 gptY 選項查找 /boot/grub 目錄。
grub> ls (hd2,gpt2)/boot/grub unicode.pf2 [...] grub.cfg
現在您想將其設置為您的根以執行更多命令。
grub> set root=(hd2,gpt2)
正確啟動的唯一方法是使用驅動器的 UUID。為拿到它,為實現它 -
grub> ls -l (hd2,gpt2)
記下 UUID。您必須在下一步中手動輸入。
grub> linux /boot/vmlinuz .efi.signed root=UUID=〈the UUID from above〉
GRUB 控制台可以完成製表符,因此如果您只需輸入 vmlinuz 部分並點擊製表符,然後點擊 . 並再次製表符,您不必輸入整個文件名。確保 efi.signed 部分存在。
現在,設置初始 RAM 磁碟
grub> initrd /boot/initrd〈...tab here!...〉
您應該能夠使用命令啟動
grub> boot
您現在將在您的 Ubuntu 安裝中,就好像一切都已正確安裝一樣。但是每次重新啟動時,您都必須重複此過程。要解決此問題,您可以執行以下操作。
永久修復 GRUB 問題
在這裡,您需要將 Ubuntu 安裝預設生成的 VFAT 引導載入程序重新格式化為 HFS+。這可以通過使用 GRUB 製作自己的引導載入程序配置來完成。我使用的方法與 Floris van Breugel 所做的相同(但在我的內部 SSD 而不是外部 SSD 上)。
- 按照說明從這個標題開始一直
Making Ubuntu bootable part 1
到結束。唯一的變化是您應該引用的磁碟是您的內部分區(您不需要帶有此分區的外部驅動器。Turn SIP back on (for security)``Ubuntu Boot Loader
- 在啟動過程中按住該
Option
鍵重新啟動電腦。您現在將擁有兩個 EFI 引導驅動器。進入最左邊的那個。它應該說您需要安裝更新才能使其正常工作。點擊Update
。- 在重新啟動期間再次按住該
Option
鍵,然後選擇中間的 EFI 啟動驅動器。這將帶您再次進入 GRUB 螢幕。等待一兩分鐘,然後它會帶您進入 Ubuntu 載入螢幕。你已經完成了。您現在應該可以啟動 Ubuntu 和 MacOS。
希望這對你有用。