ほとんどのSSDは、論理ブロックアドレスサイズが512Bになっている。
4KBでフォーマット可能な場合は4KBでフォーマットすることでパフォーマンスが上がる。
参考: Advanced Format – ArchWiki https://wiki.archlinux.jp/index.php/Advanced_Format
手持ちのIntel Optane SSDに対してLinux環境でnvme id-ns -Hを実行した。
Optane P1600X 118GB
# nvme id-ns -H /dev/nvme0n1 | grep "Relative Performance"
LBA Format 0 : Metadata Size: 0 bytes - Data Size: 512 bytes - Relative Performance: 0x2 Good
LBA Format 1 : Metadata Size: 0 bytes - Data Size: 4096 bytes - Relative Performance: 0 Best (in use)
Optane P5810X 800GB
# nvme id-ns -H /dev/nvme1n1 | grep "Relative Performance"
LBA Format 0 : Metadata Size: 0 bytes - Data Size: 512 bytes - Relative Performance: 0x2 Good
LBA Format 1 : Metadata Size: 8 bytes - Data Size: 512 bytes - Relative Performance: 0x2 Good
LBA Format 2 : Metadata Size: 0 bytes - Data Size: 4096 bytes - Relative Performance: 0x2 Good (in use)
LBA Format 3 : Metadata Size: 8 bytes - Data Size: 4096 bytes - Relative Performance: 0x2 Good
LBA Format 4 : Metadata Size: 64 bytes - Data Size: 4096 bytes - Relative Performance: 0x2 Good
上記のコマンドは4Knにフォーマット後に実行した結果の確認のため、Optane P1600X 118GBはLBA Format 1、Optane P5810X 800GBはLBA Format 2のMetadata Size: 0 bytes – Data Size: 4096 bytesになっているが、どちらも初期状態ではLBA Format 0であった。
Windowsで使用可能なものはMetadata Sizeが0のもののため、512Bから4Kに変更する場合は、P1600Xの場合はLBA Format 1、P5810Xの場合はLBA Format 2にする必要がある。
nvme formatのlbafオプションで論理ブロックアドレスサイズを変更できるようだが、私はWindows PE上でIntel Memory and Storage Tool (Intel MAS)を実行した。
WindowsのインストーラーによってインストールされたIntel MASのフォルダごとWindowsのインストールUSBにコピーし、Windowsのインストーラーが起動したらShift+F10でコマンドプロンプトを起動した。
以下のコマンドでLBA Formatを指定してSecure Eraseできる。当然ながらデータは全て消える。
※ SectorSizeとディスクのナンバーを確認
IntelMAS show -all –intelssd
※ Xはディスクナンバー、LBAFormatは前もって調べた値、ディスク内にパーティションが残っていると失敗する場合があるのでDISKPART等でcleanしてから実行する。
IntelMAS show –intelssd X -nvmeformat LBAFormat=2 SecureEraseSetting=1
※ SectorSizeを確認
IntelMAS show -all –intelssd
上のLBA Formatを変更するときにSecure Eraseを実行しているでSSDはきれいな状態になっているので、OSをインストールしなおす。なお4KnでフォーマットしたディスクはFAT32の制限のためEFIパーティションのサイズが260MB必要になる。
参考: UEFI/GPT ベースのハード ドライブ パーティション | Microsoft Learn
そのため、CreatePartitions-UEFI.txtで紹介されている先頭のEFIパーティションサイズは100MBではなく260MBにする必要がある。
また、上記のサンプルだと回復パーティションが500MBしかないため、Windows REの更新を考えると領域は足りない。Windows REには1GBほど用意したいので、次のようなDISPARTのコマンド群になる。当然ながらディスクが複数ある場合はWIndowsをインストールするディスクが0とは限らないので注意。
select disk 0
clean
convert gpt
create partition efi size=260
format quick fs=fat32 label="System"
create partition msr size=16
create partition primary
shrink minimum=1024
format quick fs=ntfs label="Windows"
create partition primary
format quick fs=ntfs label="Recovery tools"
set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
gpt attributes=0x8000000000000001
list volume
exit
あとはディスクの再読み込みすると、「Windows」という名前のパーティションがすでに作成されているので、通常通り選択してインストールするだけ。
コメント