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

바라보다

관련 정보