![mkfs.ext4가 650MB 이미지 파일에 2048 블록 크기 파일 시스템을 생성할 수 없는 이유는 무엇입니까?](https://linux55.com/image/201668/mkfs.ext4%EA%B0%80%20650MB%20%EC%9D%B4%EB%AF%B8%EC%A7%80%20%ED%8C%8C%EC%9D%BC%EC%97%90%202048%20%EB%B8%94%EB%A1%9D%20%ED%81%AC%EA%B8%B0%20%ED%8C%8C%EC%9D%BC%20%EC%8B%9C%EC%8A%A4%ED%85%9C%EC%9D%84%20%EC%83%9D%EC%84%B1%ED%95%A0%20%EC%88%98%20%EC%97%86%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
내가 호출한 명령은 다음과 같습니다
- 이미지 파일 생성
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
답변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
바라보다