
我一直在閱讀有關使用 4096Byte 邏輯區塊大小(如果我的硬碟的磁區使用實體 4096Byte 區塊大小)的資訊。所以我只是嘗試在備用硬碟上創建一個,但我不明白最後提示時的警告。見下文。
~$ cat /sys/class/block/sda/queue/physical_block_size
4096
~$ cat /sys/class/block/sda/queue/logical_block_size
512
server@Server:~$ sudo parted /dev/sda
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Model: ATA WDC WD30EFRX-68A (scsi)
Disk /dev/sda: 3001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Number Start End Size File system Name Flags
(parted) mklabel gpt
Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? yes
(parted) mkpart primary 4096B 3001GB
Warning: You requested a partition from 4096B to 3001GB.
The closest location we can manage is 17.4kB to 3001GB.
Is this still acceptable to you?
Yes/No? n
為什麼我不能只使用 4096 塊大小?
答案1
物理和邏輯區塊(磁區)大小均由磁碟硬體決定,無法變更。如今絕大多數硬碟都使用 512 位元組邏輯磁區,儘管我聽說一些高階磁碟現在使用 4096 位元組邏輯磁區。某些外部機箱也將邏輯磁區大小重新對應為 4096 位元組。
如果分割區未在 8 的倍數磁區上對齊,則 512 位元組邏輯磁區與 4096 位元組物理磁區的組合可能會導致效能問題。如今,大多數分區工具都會自動處理此問題 - 事實上,它們通常在 2048 扇區 (1 MiB) 的倍數上對齊,這當然是 8 扇區的倍數,因此效果很好。 (使用 2048 扇區對齊也適用於許多需要對齊高於 8 的 2 冪值的 RAID 和 SSD 產品,這就是為什麼 2048 是預設值的原因。)較舊的工具在「柱面」邊界上對齊。在遙遠的過去(20 世紀 80 年代左右),氣缸對齊帶來了性能優勢;但後來「圓柱體」變成了一個方便的虛構,然後是一個不方便的虛構,然後是一個嚴重的問題。 Linux 工具適應這些變化的速度相當緩慢,但如今所有主要程式都忽略柱面並預設使用 2048 磁區對齊。
您可以將對齊值調整為任何您喜歡的值gdisk
- 您必須鍵入x
以進入專家選單,然後鍵入d
以變更對齊值。請注意,該選項位於專家的選單的原因是:如果您不完全了解自己在做什麼,則更有可能導致問題,而不是使用此功能解決問題。即使您是專家,從 2048 扇區對齊更改為 8 扇區對齊所節省的空間也微不足道(不到 1MiB),所以即使我也幾乎從不這樣做。 (我是gdisk
作者。)
答案2
Warning: You requested a partition from 4096B to 3001GB.
The closest location we can manage is 17.4kB to 3001GB.
Is this still acceptable to you?
這意味著,由於磁碟機開頭的其他內容(有關分割區方案或類似的元資料),它可以到達磁碟開頭的最接近位置為 17.4kB。不想要這個;您希望它從 4KiB 邊界開始。因此,您應該取消並重試,這次請求在超出該點的第一個 4096B 邊界上啟動分割區(嘗試 20480B)。
您必須手動執行此操作的原因是您使用的是低階分割工具。更高層級的工具,例如gparted會自動為您將分割區的開頭對齊到整數。如今,許多此類工具會將分割區對齊到 1MiB(1024x1024 位元組)的倍數,因為這巧妙地解決了 512 位元組、4096 位元組邊界以及與 USB 隨身碟等裝置上的區塊對齊的問題。
答案3
parted
只需使用百分比作為單位進行計算:
mkpart primary 0% 100%
這應該會導致分區對齊:
(parted) print
Model: ATA SAMSUNG MZ7LM3T8 (scsi)
Disk /dev/sdb: 3841GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 3841GB 3841GB primary
答案4
GPT 需要磁碟的前 34 個磁區來存儲
- 第一個扇區中的保護性 MBR (LBA 0),
- 第二扇區 (LBA 1) 中的主 GPT 標頭,
- 以及以下 32 個磁區 (LBA 2 - LBA 33) 中最多 128 個分割表條目
這些磁區是保留的,不能在這些磁區中儲存其他數據,分割區不能從其中任何一個開始。
34個扇區,大小為512B = 17408B = 17.4kB
這就是您收到警告的原因The closest location we can manage is 17.4kB to 3001GB
。
您不應該繼續這裡操作,這會導致分區對齊不良,您收到的其他答案中已經涵蓋了這一點。
請注意,磁碟的最後 33 個磁區也被保留,以保留主 GPT 標頭和分割區表條目的副本。