Eu não tenho 50 reputação para comentar, então vou postar minhas perguntas aqui. Seu rootfs não está criptografado? Então, quando você inicializa, você não recebe nenhum aviso de cryptsetup? Se você não receber prompts de senhas, sugiro que você descompacte o initramfs e modifique o arquivo init e adicione as seguintes linhas, em algum lugar, após a montagem do rootfs. cryptsetup open / dev / nvme0n1p3 enc0 & & cryptsetup open / dev / nvme1n1p3 enc1 & & zpool import -d / dev / mapeador zeb
Algum tempo atrás, eu precisava adicionar o desbloqueio ssh remoto de ROOTFS criptografados pelo LUKS com o ZFS em um servidor remoto. Não tenho como modificar o arquivo init e adicionar o dropbear a ele, iniciá-lo e modificar o comando cryptsetup para aceitar a senha do fifo. Eu fiz um script bash para isso, então quando eu atualizo o initramfs, este script bash descompacta o initramfs, coloca minhas alterações e o empacota de volta. Mas eu estou usando o gentoo e é um bonito genkernel. O Genkernel inclui ganchos para ZFS e cryptsetup, se você especificá-lo. Eu não sei como é no arch linux, talvez você também tenha uma opção para construir o kernel com o genkernel / dracut, assim você pode facilmente incluir cryptsetup e zfs hooks no initramfs, se ele ainda não estiver incluído. De qualquer forma, é fácil de fazer modificando o arquivo init, experimente e poste seus resultados aqui. seu initramfs pode ser compactado usando métodos diferentes, então descubra como descompactá-lo no archlinux. Do meu lado, eu modifiquei o genkernel para gerá-lo como cpio, e use os comandos do cpio para descompactar / empacotar de volta.
UPDATE : Você precisa editar o seu mkinitcpio.conf e adicionar 2 ganchos "criptografar o zfs" antes de "sistemas de arquivos" no HOOKS Em seguida, você precisa definir seus dispositivos luks, necessários para desbloquear /etc/crypttab.initramfs # (google crypttab) Este arquivo será incluído na próxima geração do initramfs, então agora estamos desbloqueando-os pelo menos. Talvez o ZFS faça autoimport na próxima reinicialização, mas se não, faça o seguinte:
crie o arquivo / usr / lib / initcpio / install / zfsmount
#!/bin/bash
build() {
add_runscript
}
crie o arquivo / usr / lib / initcpio / hooks / zfsmount
#!/usr/bin/ash
run_hook() {
zpool import mypool
}
e no mkinitcpio.conf adicione "zfsmount" no HOOKS em algum lugar no final, antes ou depois de "sistemas de arquivos"
E, claro, regenere seu initramfs com mkinitcpio
Refs: link