Parted は整列していないと言っているが、正しいはずだ

Parted は整列していないと言っているが、正しいはずだ
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 と表示されますが、SSD なので内部的には 4096B であると推測しています。いずれにしても、割り切れるはずです24576 / 512 = 48。parted24576 / 4096 = 6でアラインされていないと表示されるのは何か理由があるのでしょうか。

この現在の構成は、起動時にのみ読み取られるため (読み取られる場合も)、パフォーマンスに影響はないはずですが、なぜこのように報告されるのか興味があります。

参考までに、パーティションレイアウトはDebian ZFS on Rootで提​​案されているものです(https://openzfs.github.io/openzfs-docs/Getting%20Started/Debian/Debian%20Buster%20Root%20on%20ZFS.html

答え1

試してみてくださいalign-check minimal 1。それで大丈夫なはずです。

別れた相手が何を考慮するかに関係なく最適なハードウェアの場合、フラッシュメモリのパーティションレイアウトを最適化するには、チップが次のように構成されていることを考慮する必要があります。ページ そしてブロックを消去する

単純に上書きすることはできませんページデバイスを制御するプロセッサは最初にデバイスを消去する必要があり、消去はページ サイズよりもはるかに大きい単位でのみ可能です。

デバイスのページサイズが2KB~32KBの範囲にある場合、消去ブロックサイズは通常、ディスクの容量に応じて 128 KB から 2 MB (64 倍以上) の間になります。GB カテゴリでは 4 MB は珍しくありません。

** ドライブ上のすべての操作はこれらのユニットでのみ実行できます **

=> ページサイズを忘れて、特定のデバイスのデータシートを開き、ブロックを消去するそれに応じてパーティションを調整します。

気をつけて:サムスンが非常に遊んでいた時代でした驚くべき価値観が異なり、この情報を開示することに特に熱心ではありません。

答え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されていない空き領域として残すことができます。

ただし、機能やパフォーマンスに変更はありません。無視してそのままにしておくのも問題ありません。

関連情報