Ext4
為什麼 mkfs.ext4 不能在 650 MB 的圖像文件上創建 2048 塊大小的文件系統?
我呼叫的命令如下
- 創建圖像文件
dd if=/dev/zero of=benj.luks bs=1k count=666000
- 設置 LUKS 容器
cryptsetup luksFormat benj.luks
- 設置循環設備並打開 LUKS 容器
cryptsetup luksOpen benj.luks benjImage
- 檢查環路設備是否已設置和映射
lsblk
輸出
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 650.4M 0 loop └─benjImage 254:1 0 634.4M 0 crypt
- 在benjImage上創建文件系統ext4
sudo mkfs.ext4 -b 2048 -F -F /dev/mapper/benjImage
命令失敗
mke2fs 1.46.5 (30-Dec-2021) mkfs.ext4: Invalid argument while setting blocksize; too small for device
cat /sys/block/loop0/queue/physical_block_size cat /sys/block/loop0/queue/logical_block_size
顯示,循環設備被安裝為 4094 字節的塊設備,不能在其上創建 2048 字節的文件系統。
因此解決方案是手動設置循環設備並使用 -b 選項將扇區大小定義為 2048,如
sudo losetup -b 2048 -f benj.luks
在第 2 步之前,然後在 /dev/loop0 (或分配的任何循環設備)而不是圖像文件上應用連續命令,即
cryptsetup luksFormat /dev/loop0 cryptsetup luksOpen /dev/loop0 benjImage sudo mkfs.ext4 -b 2048 /dev/mapper/benjImage
瞧