了解 syslinux 和分區

了解 syslinux 和分區

我正在嘗試學習,特別是了解分割區和引導程式是如何運作的。問題是我腦子裡把這一切都扭曲了。到最後我什麼都看不懂了。

我知道如何使用fdisk, parted,來對硬碟進行分區gdisk。我嘗試使用 syslinux 鍊式載入 iso 檔案(例如 ubuntu.iso、arch.iso)。

為了說明我的困惑,這是我所做的:建立一個 linux 分割區:

$ gdisk /dev/sdb
Command (? for help): n
Partition number (1-128, default 1): 
First sector (34-7821278, default = 36) or {+-}size{KMGTP}: 
Last sector (36-7821278, default = 7821278) or {+-}size{KMGTP}: 
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 
Changed type of partition to 'Linux filesystem'

Command (? for help): p
Disk /dev/sdb: 7821312 sectors, 3.7 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): F7F2BE49-B8D8-4910-8E69-381DEBD954DC
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 7821278
Partitions will be aligned on 4-sector boundaries
Total free space is 2 sectors (1024 bytes)

Number  Start (sector)    End (sector)  Size       Code  Name
   1              36         7821278   3.7 GiB     8300  Linux filesystem

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.

然後我將此分割區格式化為 ext2 :

$ mkfs.ext2 /dev/sdb1

現在我想用syslinux安裝MBR(取自我找到的極少數教學)

$ syslinux -m /dev/sdb1
syslinux: invalid media signature (not a FAT filesystem?)

所以它需要是FAT分割區。不過我有讀到 syslinux 支援 Fat32、ext2、ext3、ext4 檔案(https://wiki.archlinux.org/index.php/syslinux#安裝

1)這裡有什麼問題,因為 syslinux 應該支援 ext2 分割區?

所以我將分割區格式化為Fat32分割區:

$ mkfs.vfat -F 32 /dev/sdb1

現在安裝 syslinux MBR 可以工作了:

$ syslinux -m /dev/sdb1
$ syslinux -i /dev/sdb1

2)我必須安裝MBR嗎?我讀到的文檔比GPT具有更多優點MBR,例如允許創建更多的主分割區。難道是我理解錯了?

然後我發現我需要將分割區標記為可引導(http://www.linuxquestions.org/questions/linux-general-1/booting-iso-images-from-a-usb-disk-917161/)。我可以這樣做嗎gdisk?在我看來這是不可能的,因為手冊沒有討論啟動標記。另一方面,fdisk允許我這樣做。然而這裡還有另一個問題:

$ fdisk /dev/sdb

WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.

3) gdisk 會自動建立 GPT 嗎?

$ gdisk /dev/sdb
GPT fdisk (gdisk) version 0.8.8

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

4)這個MBR從哪裡來? MBR和GPT怎麼可以這樣共存?

正如您所看到的,當我嘗試進行更深入的分區操作時,我意識到一切都混淆了。如果您能回答我的問題,特別是向我提供額外的文件,我將不勝感激:https://wiki.archlinux.orghttp://www.syslinux.org/wiki實際上讓我的理解比以往任何時候都更糟糕。非常感謝。

答案1

1)這裡有什麼問題,因為 syslinux 應該支援 ext2 分割區?

是的,Syslinux 透過 Extlinux 支援 ext2 fs。如果您使用的是基於 UEFI/EFI 的系統,那麼您需要一個 fat32 分割區。僅適用於 GPT,您不需要有 fat32 分割區,只需使用傳統分割區即可。即分機?

2)我必須安裝MBR嗎?我在文件中讀到 GPT 比 MBR 有更多優勢,例如允許創建更多的主分割區。難道是我理解錯了?

你想用什麼就看你了,分區表msdos和gpt都支援。

如果是 GPT,您可以使用 gdisk 設定舊版 BIOS 開機標誌。啟動分割區上必須有一個舊版 BIOS 啟動標誌。進入gdisk選單後,使用“x”進入專家模式,然後使用“a”設定屬性。

3) gdisk 會自動建立 GPT 嗎?

是的,訪問http://linux.die.net/man/8/gdisk

如需了解操作方法,請訪問http://wiki.gentoo.org/wiki/Syslinux

答案2

我認為這裡的問題/混亂在於術語,首先說“安裝 MBR”,然後說“為什麼 MBR 和 GPT 一起使用”。 MBR 是磁碟工作所必需的,GPT 是存在(創建)於 MBR 之外的分割區方案。分割軟體(例如 gparted)向您呈現 MBR 和 GPT 作為兩個互斥的東西。 GPT 或缺少 GPT 會更準確。還有其他系統使用 GPT 以外的其他方案,但仍在磁碟的 MBR 中定義。因此,為了更好地理解這兩個分區方案,第一個扇區 0-1 始終是 MBR,GPT 定義在其之後開始。我們所說的MBR分割區和擴充分割區是沒有GPT的分割區(不需要區分擴充分割區,它允許分割區的最小大小和磁碟大小容納盡可能多的分割區)。

你沒有安裝MBR,它是預設存在的,而且它最好在那裡,否則你的磁碟就是垃圾。您將一些東西安裝到 MBR 中,例如 grub 的 core.img 或 syslinux 等效項,這是幫助您進入下一步的軟體。一個很小的作業系統,可以幫助您「重新啟動」到特定的其他系統。 MBR 中存在 GPT 定義,以便 GPT 方案發揮作用。

如果 /boot/grub 或 /boot/syslinux 被刪除或尚未創建,這些 *.img 作業系統會提示您手動執行操作。如果你在安裝上花了足夠長的時間,有一天你就會看到它。 GRUB> 此時嘗試協助。它幫助我理解的方式是這個引導程式作業系統產生該選單或提示符,然後您指定將 grub/syslinux 重新啟動到特定的目標作業系統。如果不是為了重新啟動,那麼引導程式將是進程 1 PID1。

我所說的一些內容可能不是 100% 準確,但我認為對於 96.4% 的 Linux 用戶來說,這有助於繼續他們想做的事情。引導程式開發人員和從事備份、複製、壓縮磁碟映像等軟體工作的人員將需要更準確的細節。如果你搜索,你會發現長達一個小時的講座,內容涉及磁碟第一個小單元的問題和動態,以及其他所有東西存在所必須存在的東西。我們的系統被這非常敏感的訊息所困擾。它就像你通往迷宮的地圖,否則你只是牛頭怪的零食。

相關內容