LUKS Erro de criação de contêiner: nenhum dispositivo de loop

2

Eu quero criar um contêiner LUKS criptografado:

# 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

Eu não tenho dispositivos de loop (não sei porque - isso é um VPS), então eu tentei criar um manualmente:

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

No entanto, quando eu tento novamente, o mesmo erro ocorre.

Qual é o problema aqui?

    
por lukstei 07.01.2017 / 14:55

2 respostas

3

É possível que seu sistema não tenha o driver para dispositivos de loop. Normalmente, os dispositivos /dev/loop* seriam criados pelo udev quando o driver é carregado; criar as entradas /dev manualmente não ajuda, pois o driver não está lá.

Verifique se existe /sys/module/loop . Se isso não acontecer, o driver de dispositivo de loop não será carregado. Pode estar disponível como um módulo: tente modprobe loop. Se isso não ajudar, então o seu VPS está configurado sem o módulo de loop, o que é tecnicamente possível, mas parece-me uma escolha estranha do serviço VPS.

Também é possível que o driver de loop esteja presente, mas por algum motivo (provavelmente um erro de configuração em algum lugar) o dispositivo /dev/loop-control não está presente. Este dispositivo é usado para atribuir dispositivos de loop dinamicamente.

mknod -m 660 /dev/loop-control c 10 237
    
por 09.01.2017 / 01:33
0

Eu criei uma instância do Amazon EC2 e tentei o que você deseja fazer. Funcionou sem erros de loop.

Aqui estão os passos que eu dei:

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
    
por 07.01.2017 / 18:56