mkfs.ext4が650MBのイメージファイルに2048ブロックサイズのファイルシステムを作成できないのはなぜですか?

mkfs.ext4が650MBのイメージファイルに2048ブロックサイズのファイルシステムを作成できないのはなぜですか?

私が呼び出したコマンドは次のとおりです。

  1. イメージファイルの生成
dd if=/dev/zero of=benj.luks bs=1k count=666000
  1. LUKSコンテナの設定
cryptsetup luksFormat benj.luks
  1. ループデバイスを設定し、LUKSコンテナを開きます。
cryptsetup luksOpen benj.luks benjImage
  1. ループデバイスが設定およびマッピングされていることを確認してください。
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 
  1. 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

ベストアンサー1

cat /sys/block/loop0/queue/physical_block_size
cat /sys/block/loop0/queue/logical_block_size

このループ装置は4096バイトのブロック装置として搭載され、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

バラより

おすすめ記事