
Model: ATA Samsung SSD 850 (scsi)
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 24576B 1048575B 1024000B bios_grub
2 1048576B 537919487B 536870912B fat32 boot, esp
3 537919488B 1611661311B 1073741824B zfs
4 1611661312B 500107845119B 498496183808B zfs
parted /dev/sda align-check optimal 1
> 1 not aligned
parted /dev/sda align-check optimal 2
> 2 aligned
parted /dev/sda align-check optimal 3
> 3 aligned
parted /dev/sda align-check optimal 4
> 4 aligned
扇區大小顯示為 512B,但實際上我猜測是 4096B,因為它是 SSD,無論哪種方式,它都應該是可整除的24576 / 512 = 48
,24576 / 4096 = 6
。是否有任何原因分開說它不對齊。
我知道當前的配置不應對性能產生任何影響,因為它僅在啟動時讀取(如果有的話),但只是好奇為什麼會按原樣報告它。
作為參考,分區佈局是 Debian ZFS 在 Root 上建議的分區佈局(https://openzfs.github.io/openzfs-docs/Getting%20Started/Debian/Debian%20Buster%20Root%20on%20ZFS.html)
答案1
試試吧align-check minimal 1
,應該沒問題。
不管分手時會考慮什麼最佳的對於您的硬件,優化快閃記憶體的分區佈局應考慮到晶片的組織方式頁面 和擦除區塊。
你不能簡單地覆蓋頁。控制設備的處理器必須先擦除它,並且只能以比頁面大小大得多的單位進行擦除。
當您的裝置的頁面大小可能在 2KB-32KB 範圍內時,擦除區塊大小通常介於 128KB 和 2MB 之間(64 倍以上),具體取決於磁碟的容量。 4MB 在 GB 類別中並不罕見。
** 驅動器上的所有操作只能在這些單元中進行 **
=> 忘記頁面大小,開啟特定裝置的資料表,找到頁面大小擦除區塊然後相應地對齊分區。
小心:那是三星玩得很開心的時候奇怪價值觀,並不太急於透露這些資訊。
答案2
它“未對齊”,但對於分區來說也無關緊要bios_grub
。 Grub 只在那裡儲存數千位元組的數據,引導時會讀取一次。對齊與否,在實踐中沒有什麼區別。
最新版本parted
可能對對齊訊息更加詳細:
# parted --version
parted (GNU parted) 3.3
Copyright (C) 2019 Free Software Foundation, Inc.
...
# parted /dev/loop0 align-check optimal 1
1 not aligned: 48s % 2048s != 0s
因此,就 MiB 對齊而言,它是「未對齊」的。考慮到 SSD 可能在內部使用 4K、8K、16K 頁,因此 6*4K 是一個稍微奇怪的對齊值,因此它也可能未對齊。
以這種方式創建分區的目的不是對齊,而是最大化空間利用率。儘管很難想出一個 Grub 實際上需要的不僅僅是幾個扇區的用例。
如果您無論如何都想「修復」它,您可以將bios_grub
分區放在偏移量 1 MiB 處,並讓boot, esp
分區從 2 MiB 開始,將目前佔用的區域保留為bios_grub
未分區的可用空間。
但功能或性能不會改變。忽略並保持原樣就可以了。