1

テスト目的で、次のように仮想マシンを作成しています。

qemu-img create -f qcow2 \
-o cluster_size=4096,preallocation=full \
/home/marcop/.libvirt/nvme-20G.qcow2 20G

qemu-system-x86_64 -machine q35,accel=kvm \
  -m 4096 \
  -smp 4 \
  -cpu host \
  -boot d \
  -cdrom /var/lib/libvirt/isos/archlinux-2020.10.01-x86_64.iso \
  -drive file=/home/marcop/.libvirt/nvme-20G.qcow2,if=none,aio=native,cache.direct=on,id=D24 \
  -device nvme,drive=D24,serial=1234,logical_block_size=4096,physical_block_size=4096

マシン内で起動するとき、fdisk と nvme-cli を使用してセクター サイズを確認しますが、常に 512B です。

pacman -Sy nvme-cli
fdisk -l /dev/nvme0n1

出力付き:

Disk /dev/nvme0n1: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk model: QEMU NVMe Ctrl
Units: sectors of 1 * 512 = 512 bytes
Sector size (logica/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

nvme-cli で利用可能なセクター サイズ モードを探します ( NVMe の詳細については、こちらこちらを参照してください)。

nvme id-ns /dev/nvme0n1

戻り出力:

NVME Identify Namespace 1:
nsze    : 0x2800000
ncap    : 0x2800000
nuse    : 0x2800000
nsfeat  : 0
nlbaf   : 0
flbas   : 0
mc      : 0
dpc     : 0
dps     : 0
nmic    : 0
rescap  : 0
fpi     : 0
dlfeat  : 0
nawun   : 0
nawupf  : 0
nacwu   : 0
nabsn   : 0
nabo    : 0
nabspf  : 0
noiob   : 0
nvmcap  : 0
nsattr  : 0
nvmsetid: 0
anagrpid: 0
endgid  : 0
nguid   : 00000000000000000000000000000000
eui64   : 0000000000000000
lbaf  0 : ms:0   lbads:9  rp:0 (in use)

これは、セクター プロファイルが 1 つだけ存在することを示します。比較のために、物理 NVMe に対して発行された同じコマンドの出力が返されます

[...]
lbaf  0 : ms:0   lbads:9  rp:0x2 (in use)
lbaf  1 : ms:0   lbads:12 rp:0x1 

どんな助けでも大歓迎です!

4

1 に答える 1

0

コマンドを実行して 4k でフォーマットします。ただし、フォーマットするとデータが消去されることに注意してください。

nvme format /dev/nvme0n1 --lbaf=1
于 2021-02-23T09:58:00.700 に答える