NVMEディスクのサポートを追加したいsfdiskを含むカスタムLFSインストーラがあります。通常のSATAディスクでsfdiskを使用してパーティションを作成すると、すべてが期待どおりに機能しますが、NVMEディスクで同じ操作を実行するとパーティションが作成されますが、パーティションサイズを取得しようとすると(コマンドsfdisk -s /dev/nvme0n1p1
)を出力しますNo such device or address while trying to determine filesystem size
。
lsblk出力:
NAME MAJ:MIN SIZE TYPE
nvme0n1 259:0 1.8T disk
|nvme0n1p1 259:1 200G part
`nvme0n1p2 259:10 1.6T part
SFディスクの使い方:
,200G,L
,,L
/proc/パーティション
major minor #blocks name
259 0 1953514584 nvme0n1
259 2 209715200 nvme0n1p1
259 3 1743798343 nvme0n1p2
nvme0n1
また、/ devの下に、nvme0n1p1
およびとしてリストされていますnvme0n1p2
。
今すぐ使用すると、sfdisk -s /dev/nvme0n1p1
出力が得られ、209715200
次のようにsfdisk -s /dev/nvme0n1p2
なりますNo such device or address while trying to determine filesystem size
。
これで奇妙なことは、パーティションを再作成してsfdisk -s /dev/nvme0n1p1
これを行うと、次のような結果になることです。No such device or address while trying to determine filesystem size
これにより、sfdisk -s /dev/nvme0n1p2
209715200が表示されます。
繰り返し実行すると、変更が継続され、一方のパーティションは使用可能になり、別のパーティションは使用できず、引き続き交換されます。
私が試したこと:
- 他のSSD(同じタイプ)も結果は同じです。
- NVMEディスク用のpcieアダプターを使用し、他のアダプターを使用しても同じ結果が表示されます。
- 実行中のオープンなsuzeインストールでアダプターを使用すると、問題なくこれらのコマンドを実行できます。
- 通常のSATAドライバであれば問題ありません。
[編集] 再起動後にドライブを再分割することなく、これらのコマンドを実行できることがわかりました。これはNVMEディスクには重要ですが、通常のSATAには重要ではないようですか?
現時点では、何を試すべきか、何が原因であるかどうかはわかりません。助けてくれてありがとう。
答え1
解決策を見つけたので、ここに答えを追加して他の人が同様の問題を経験した場合に役立ちます。
私はblockdev --rereadpt /dev/nvme0n1
コマンドを使用します。これにより、パーティションテーブルが再度読み込まれ、再sfdisk -s /dev/nvme0n1p2
起動せずに問題なくコマンドを実行できるようになります。
通常のSATAドライブでは、これがなぜ必要ないのかはまだわかりません。なぜそうでないのかを知っている人がいる場合は、いつでもコメントを残してください。