LUKS 컨테이너 생성 오류: 루프 장치 없음

LUKS 컨테이너 생성 오류: 루프 장치 없음

암호화된 LUKS 컨테이너를 생성하고 싶습니다.

# dd if=/dev/random of=pvt.img bs=1M count=512
# cryptsetup -y luksFormat pvt.img

WARNING!
========
This will overwrite data on pvt.img irrevocably.

Are you sure? (Type uppercase yes): YES
Enter passphrase:
Verify passphrase:
Cannot find a free loopback device.
Device pvt.img doesn't exist or access denied.

# ls /dev/loop*
ls: cannot access '/dev/loop*': No such file or directory

루프 장치가 없으므로(이유는 확실하지 않음 - VPS임) 수동으로 생성해 보았습니다.

# mknod /dev/loop0 b 7 0
# ls -l /dev/loop0
brw-r--r-- 1 root root 7, 0 Jan  7 14:51 /dev/loop0

그러나 다시 시도하면 동일한 오류가 발생합니다.

여기서 문제가 무엇입니까?

답변1

시스템에 루프 장치용 드라이버가 없을 수 있습니다. 일반적으로 /dev/loop*드라이버가 로드될 때 장치는 udev에 의해 생성됩니다. /dev드라이버가 존재하지 않기 때문에 항목을 수동으로 생성하는 것은 도움이 되지 않습니다.

존재 하는지 확인하십시오 /sys/module/loop. 그렇지 않으면 루프 장치 드라이버가 로드되지 않습니다. 모듈로 사용할 수 있습니다. modprobe루프를 사용해 보세요. 그래도 도움이 되지 않으면 VPS가 루프 모듈 없이 설정된 것입니다. 이는 기술적으로는 가능하지만 VPS 서비스에 대한 이상한 선택이라고 생각됩니다.

루프 드라이버가 존재할 수도 있지만 어떤 이유로(아마도 잘못된 구성으로 인해) 장치가 /dev/loop-control존재하지 않을 수도 있습니다. 이 장치는 루프 장치를 동적으로 할당하는 데 사용됩니다.

mknod -m 660 /dev/loop-control c 10 237

답변2

Amazon EC2 인스턴스를 생성하고 원하는 작업을 시도해 보았습니다. 루프 오류 없이 작동합니다.

내가 취한 단계는 다음과 같습니다.

dd if=/dev/zero of=test2 bs=1M count 512  : create 512MB blank file

sudo cryptsetup luksFormat test2      : asks for confirmation and passphrase

sudo mkdir /mnt/tmp                   : create a mount point

sudo chown -R ubuntu:ubuntu /mnt/tmp  : make sure I can write to mount point

sudo cryptsetup luksOpen test2  somename  : open luks container with a name

sudo mkfs.ext2 /dev/mapper/somename : create a filesystem in the luks container

sudo mount /dev/mapper/somename /mnt/tmp : mount containter, so it can be used

touch /mnt/tmp/MYTESTFILE   : create arbitrary file in container

echo "Some data to be double sure it works" > /mnt/tmp/MYTESTFILE : add content
________________________________________________________
Reboot the VPS, then after reboot log back in and check:
________________________________________________________

sudo cryptsetup luksOpen test2  somename   : open new container again

sudo mount /dev/mapper/somename /mnt/tmp   : mount it

ls /mnt/tmp                               : should see MYTESTFILE here

cat /mn/tmp/MYTESTFILE                    : show the data put in the file earlier

관련 정보