我正在嘗試在 Surface Pro 上雙啟動 Windows 8 和 Ubuntu 12.10,並希望使用酶標儀對於我的啟動管理器。
我不想安裝 GRUB,包括在安裝 Ubuntu 期間,因為我過去嘗試在該設備上執行此操作的經驗導致 Windows 引導程式損壞,這可能會有效地堵塞設備,因為它似乎需要這些來從 USB 啟動。我知道的成功雙啟動 Surface Pro 和 Ubuntu?,但想完全遠離GRUB。
到目前為止,我已經嘗試過以下方法:
- 安裝並測試 rEFInd 僅適用於 Windows 8,沒有任何問題
- 從“ubiquity -b”安裝 Ubuntu 12.10 以防止安裝 GRUB
- 驗證我仍然可以正確啟動 Windows 8
不幸的是,這似乎沒有為 Ubuntu 產生任何 .efi 存根,所以我不確定此時該怎麼做。在不安裝 GRUB 或任何其他引導程式的情況下,我可以做什麼來產生這些檔案?請記住,在這個階段我實際上無法直接啟動到 Ubuntu,只能進行即時安裝,除非在實際安裝過程中我應該做其他事情。
重申一下,我想做的是:在沒有 GRUB 的情況下安裝 Ubuntu,為 Ubuntu 產生 efi 存根,永遠不要碰 efi 韌體或 Windows 啟動目錄,然後在啟動過程中依靠 rEFInd 找到這些存根。
答案1
首先,我假設「.efi 存根」指的是.efi
EFI 系統分割區 (ESP) 上具有副檔名的檔案。這些是 EFI 程式檔案——最常見的是引導程序,但有時也包括程式和實用程式。
如果你想透過 rEFInd 啟動 Windows 和 Ubuntu沒有使用 GRUB,那麼您在 ESP 上唯一需要的 EFI 程式是 Windows 開機載入程式(由 Windows 安裝)、rEFInd ( refind_x64.efi
) 以及用於 Ubuntu 的任何檔案系統的 EFI 檔案系統驅動程式(可能位於或子目錄ext4_x64.efi
中)。 ext4fs 驅動程式將使 EFI 以及 rEFInd 能夠讀取主 Linux 分割區上的 Linux 核心。自 3.3.0 版本以來,Linux 核心已包含 EFI 存根載入程序,這是將 Linux 核心轉變為自己的引導程式的方法。因此,透過 rEFInd 和 ESP 上的 ext4fs 驅動程序,rEFInd 可以直接從 Linux 分割區啟動 Linux 核心。不過,您還需要另一件事:儲存 Linux 選項的檔案。一個最小的例子如下:drivers
drivers_x64
refind_x64.efi
/boot/refind_linux.conf
"Boot with normal options" "ro root=/dev/sda8"
"Boot into single-user mode" "ro root=/dev/sda8 single"
此範例在 上啟動安裝/dev/sda8
。您可以新增更多選項以使其呈現圖形啟動顯示或出於其他原因,但上述內容(root=
很可能具有修改後的值)適用於大多數系統。
這種方法的變體是將內核複製到 ESP(可能在 ESP 的EFI/ubuntu
目錄中)並不是安裝 Linux 檔案系統驅動程式。這在某些系統上有一些優點,但每次打包系統更新時都需要複製核心。如果您這樣做,則需要將其放入refind_linux.conf
ESP 上儲存核心的目錄中。