Como especificar o cryptdevice pelo label usando o systemd boot?

1

Estou executando o Arch Linux com inicialização do systemd. Em /boot/loader/entries/arch.conf especifico atualmente o dispositivo de criptografia luks com uma linha como esta:

options        rw cryptdevice=/dev/sda1:ABC root=/dev/mapper/ABC

Eu sei que também posso usar o UUID em vez de /dev/sda1 . Nesse caso, a linha de opções do kernel ficaria assim:

options        rw cryptdevice=UUID=1f5cce52-8299-9221-b2fc-19cebc959f51:ABC root=/dev/mapper/ABC

No entanto, posso usar uma partição label ou um label de volume ou qualquer outro tipo de rótulo? Se sim, qual é a sintaxe?

    
por MountainX 22.09.2018 / 08:12

2 respostas

1

cryptsetup pode criar um marcador em um cryptdevice . Procure em / dev / disk / by-label para se certificar de que corresponde. Então

cryptdevice=LABEL={labelname}

da mesma forma como

root=LABEL=ROOT

funciona para um dispositivo raiz rotulado ROOT

    
por 22.09.2018 / 08:53
0

Se você já estiver usando o novo formato LUKS2, poderá definir um rótulo:

Para novos contêineres LUKS2:

# cryptsetup luksFormat --type=luks2 --label=foobar foobar.img
# blkid /dev/loop0
/dev/loop0: UUID="fda16145-822e-405c-9fe8-fe7e7f0ddb5e" LABEL="foobar" TYPE="crypto_LUKS"

Para contêineres LUKS2 existentes:

# cryptsetup config --label=barfoo /dev/loop0
# blkid /dev/loop0
/dev/loop0: UUID="fda16145-822e-405c-9fe8-fe7e7f0ddb5e" LABEL="barfoo" TYPE="crypto_LUKS"

No entanto, não é possível definir um rótulo para o cabeçalho LUKS1 mais comum.

Com o LUKS1, você só pode definir um rótulo em uma camada superior. Por exemplo, se você estiver usando partições GPT, poderá definir um PARTLABEL.

# parted /dev/loop0
(parted) name 1 foobar                                                    
(parted) print
Model: Loopback device (loopback)
Disk /dev/loop0: 105MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End    Size   File system  Name    Flags
 1      1049kB  104MB  103MB               foobar

Isso define o rótulo da partição da partição 1 como "foobar".

Você pode identificá-lo com PARTLABEL=foobar ou encontrá-lo em /dev/disk/by-partlabel/

# ls -l /dev/disk/by-partlabel/foobar 
lrwxrwxrwx 1 root root 13 Oct 10 20:10 /dev/disk/by-partlabel/foobar -> ../../loop0p1

Da mesma forma, se você usar o LUKS em cima do LVM, poderá usar os nomes VG / LV.

Como sempre com os rótulos, tenha cuidado para garantir que cada etiqueta não exista mais de uma vez. Há uma razão pela qual os UUIDs devem ser "universalmente únicos". Você tem muitos problemas ao tentar usar o dispositivo errado; pode até causar perda de dados (por exemplo, se o cryptswap formatar o dispositivo errado na inicialização).

    
por 10.10.2018 / 20:15