Boot

使用 syslinux 引導無分區磁碟

  • July 21, 2014

可以將文件系統配置為跨越整個磁碟,省略任何分區表。請注意,執行此操作的命令不會使用/dev/sda1原始的、未分區的設備來代替。

mkfs.btrfs /dev/sda

Arch Linux Wiki 關於 btrfs 的文章中提到了這個想法。我在使用 btrfs 文件系統作為唯一儲存的虛擬機中進行了嘗試。它甚至可以按照 wiki 中的說明使用 grub 啟動。ext3、ext4 和 jfs 也可以這樣工作。我只測試了這些,但大多數文件系統將第一個塊放置一個偏移量,從而為引導記錄留出足夠的空間。

現在我想用 syslinux 代替 grub。前面提到的 wiki已經表明這會專門放置必要的ldlinux.sys東西,但不包括解決這個問題的說明。我高度懷疑通常的mbr.bin文件也不合適,因為它通常負責讀取分區表並找到活動的可引導分區。現在,找不到分區。

有人有使用 syslinux 和無分區磁碟的經驗嗎?可以使用 syslinux 引導無分區磁碟嗎?

MBR / BIOS

將 syslinux 安裝到分區磁碟的命令通常有兩個。

extlinux --install /boot/syslinux

第一行安裝一個卷引導記錄,固定在分區的開頭。它負責從文件系統載入引導載入程序的文件。他們通常居住在/boot/syslinux.

dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/bios/mbr.bin of=/dev/sda

第二行安裝主引導記錄,固定在磁碟的開頭。它的任務是讀取分區表並在標記為活動的分區中找到上述卷引導記錄。

在目前的情況下,分區和磁碟是相等的,所以dd覆蓋了 extlinux 創建的數據。但是一開始不需要主引導記錄。沒有要讀取的分區表。因此,神奇的解決方案就是完全省去這dd條線。

因此,使用沒有分區表的文件系統不僅可以節省空間,而且還可以在引導過程中進行一個步驟。


GPT / EFI

使用 EFI,這只能用於傳統引導,它將讀取 MBR/VBR 並相應地引導。這樣做會失去 EFI 的大部分好處。

通過 GPT 使用 EFI 引導,始終需要 FAT32 EFI 系統分區來讀取執行檔,該分區可以是 EFI shell 或要引導的核心。因此,在現代設置中,分區是不可避免的和固有的。由於 EFI 本身就像一個引導載入程序,所以也沒有像 MBR 那樣保存步驟。

引用自:https://unix.stackexchange.com/questions/103501