Sgdisk
sgdisk:強制對齊末端扇區
我正在嘗試
sgdisk
創建在 1 MB 上對齊的分區。如果我選擇大小,這對於起始扇區(使用
-a
)和結束扇區很容易。但是,如果我讓
sgdisk
選擇結束扇區,我最終會得到類似的結果:Device Start End Sectors Size Type /dev/disk/by-id/scsi-36848f690d917dc002587bfae06302a5a-part2 2048 1046527 1044480 510M EFI System /dev/disk/by-id/scsi-36848f690d917dc002587bfae06302a5a-part3 1048576 5242879 4194304 2G Solaris /usr & Apple Z /dev/disk/by-id/scsi-36848f690d917dc002587bfae06302a5a-part4 5242880 467660800 462417921 220.5G Linux filesystem
並且 462417921 的大小顯然沒有與 1 MB 塊對齊。
我本來期望像這樣的:
/dev/disk/by-id/scsi-36848f690d917dc002587bfae06302a5a-part4 5242880 466616319 461373440 220G Linux filesystem
它似乎
-a
只適用於起始扇區。我怎樣才能使它也對齊剩餘的磁碟分區的結束扇區?
分區表由:
sgdisk --zap-all $DISK sgdisk -n2:1M:+510M -t2:EF00 $DISK sgdisk -a 1048576 -n3:0:+2G -t3:BF01 $DISK # Use the rest of the disk for the final partition # and it is here the end sector is not aligned sgdisk -a 1048576 -n4:0:-0 -t4:BF01 $DISK
這是一個非常不尋常的要求,並不真正符合sgdisk 對齊選項的預期案例:
-a, --set-alignment=value
設置扇區對齊倍數。GPT fdisk 將分區的開始與該值的倍數對齊,在新格式化的磁碟上預設為 2048。此對齊值對於使用 Western Digital Advanced Format 和物理扇區大於邏輯扇區大小的類似驅動器、某些類型的 RAID 陣列和 SSD 設備獲得最佳性能是必要的。
分區的結束扇區不會像開始扇區那樣對性能產生影響。這就是為什麼
-a
開關不會影響終端扇區的原因。也許您最好的選擇是使用該
-E
選項找出-nx:x:0
會做什麼,然後自己計算對齊:
man 8 sgdisk
-E, --end-of-largest
顯示磁碟上最大可用扇區塊末尾的扇區號。腳本可以儲存此值並將其作為 -n 選項的一部分傳回以創建分區。如果沒有可用的未分配扇區,則此函式返回值 0。因此,要在腳本(例如 bash 腳本)中使用它,您可以這樣做:
end_position=$(sgdisk -E $DISK) sgdisk -a 1048576 -n4:0:$(( $end_position - ($end_position + 1) % 2048 )) -t4:BF01 $DISK
在這裡,腳本創建具有明確設置的結束扇區的分區,該扇區將盡可能靠近磁碟的末尾,但與
1048576
字節 (1MiB) 對齊。