Partition

了解 syslinux 和分區

  • December 9, 2019

我正在嘗試學習,尤其是了解分區和引導載入程序是如何工作的。問題是我把這一切都扭曲了。最後我什麼都不懂了。

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#Installation

  1. 這裡有什麼問題,因為 syslinux 應該支持 ext2 分區?

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

$ mkfs.vfat -F 32 /dev/sdb1

現在安裝 syslinux MBR 工作:

$ syslinux -m /dev/sdb1
$ syslinux -i /dev/sdb1
  1. 我必須安裝 MBR,syslinux 與 GPT 不兼容嗎?我閱讀了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.
  1. 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.org和http://www.syslinux.org/wiki實際上讓我的理解比以往任何時候都更糟。非常感謝。

  1. 這裡有什麼問題,因為 syslinux 應該支持 ext2 分區?

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

  1. 我必須安裝 MBR,syslinux 與 GPT 不兼容嗎?我閱讀了 GPT 比 MBR 具有更多優勢的文件,例如允許創建更多的主分區。我誤會了嗎?

你想用什麼取決於你,分區表 msdos 和 gpt 都受支持。

如果是 GPT,您可以使用 gdisk 設置舊版 bios 引導標誌。引導分區上必須有一個傳統的 bios 引導標誌。進入 gdisk 菜單後,使用“x”進入專家模式,然後使用“a”設置屬性。

  1. gdisk 會自動創建 GPT 嗎?

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

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

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