Estou tentando configurar um disco criptografado completo com uma /boot
partição separada e estou tendo alguns problemas.
Anotarei o procedimento que tenho seguido em uma sessão do Ubuntu 15.04 Live DVD.
Encha o disco com 'dados aleatórios'
sudo dd if=/dev/urandom of=/dev/sda1 bs=4096 #ok
Crie as partições (usando gparted)
- Criar tabela de partição - gpt 2.
- / dev / sda1 ext2 1.5GB #boot
- / dev / sda2 linux-swap de 4 GB #swap
- / dev / sda3 ext4 15 GB #root
- / dev / sda4 ext4 FREESPACE #home
- Criar tabela de partição - gpt 2.
Criptografar volumes
cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512 --hash sha512 --iter-time 3000 /dev/sda1 cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512 --hash sha512 --iter-time 3000 /dev/sda2 cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512 --hash sha512 --iter-time 3000 /dev/sda3 cryptsetup luksFormat --cipher twofish-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 /dev/sda4
Cryptovolume aberto
cryptsetup luksOpen /dev/sda1 boot cryptsetup luksOpen /dev/sda2 swap cryptsetup luksOpen /dev/sda3 root cryptsetup luksOpen /dev/sda4 home
Formato
mkfs.ext2 /dev/mapper/boot mkswap /dev/mapper/swap mkfs.ext4 /dev/mapper/root mkfs.ext2 /dev/mapper/home
Instalar (usando Ubiquity)
- carregador de inicialização em / dev / sda
- / dev / sda1 - use como ext2 - ponto de montagem / inicialização
- / dev / sda2 - use como ext2 - ponto de montagem / inicialização
- / dev / sda3 - use como ext2 - ponto de montagem / inicialização
- / dev / sda4 - use como ext2 - ponto de montagem / inicialização
No final, o instalador avisa que a instalação do grub falhou (porque o volume de inicialização está criptografado), então escolha 'continuar sem o carregador de inicialização'.
Volume de inicialização limpo
mkfs.ext2 /dev/mapper/boot
Volume de montagem
mkdir /mnt/root mount /dev/mapper/root /mnt/root mount /dev/mapper/boot /mnt/root/boot
Atualizar fstab e crypttab
sudo blkid [/dev/sr0: UUID="2015-10-21-16-17-40-00" LABEL="Ubuntu 15.10 amd64" TYPE="iso9660" PTUUID="429817b4" PTTYPE="dos" /dev/sda1: UUID="...#1" TYPE="crypto_LUKS" PARTUUID="..." /dev/sda2: UUID="...#2" TYPE="crypto_LUKS" PARTUUID="..." /dev/sda3: UUID="...#3" TYPE="crypto_LUKS" PARTUUID="..." /dev/sda4: UUID="...#4" TYPE="crypto_LUKS" PARTUUID="..." /dev/mapper/boot: UUID="..." TYPE="ext2" /dev/mapper/swap: UUID="..." TYPE="swap" /dev/mapper/root: UUID="..." TYPE="ext4" /dev/mapper/home: UUID="..." TYPE="ext4"]
fstab
#<file system> <mount point> <type> <options> <dump> <pass> UUID=#1 /boot ext2 defaults 0 2 UUID=#2 none swap sw 0 0 UUID=#3 / ext4 errors=remount-ro 0 1 UUID=#4 /home ext4 defaults 0 2
crypttab
boot UUID=#1 luks,cipher=twofish-xts-plain64,size=512, hash=whirlpool, time=3000 swap UUID=#2 luks,swap,cipher=twofish-xts-plain64,size=512, hash=whirlpool,time=3000 root UUID=#3 luks,cipher=twofish-xts-plain64,size=512, hash=whirlpool,time=3000 home UUID=#4 luks,cipher=twofish-xts-plain64,size=512, hash=whirlpool,time=5000
Atualizar imagem initramfs
cd /mnt sudo chroot root mount -t proc proc /proc mount -t sysfs sys /sys mount -t devpts devpts /dev/pts update-initramfs -u #ok
Configurar gerenciador de inicialização (
/etc/default/grub
)GRUB_ENABLE_CRYPTODISK=y GRUB_PRELOAD_MODULES="luks cryptodisk" GRUB_CMDLINE_LINUX="cryptdevice=UUID#3:root root=/dev/mapper/root resume=/dev/mapper/swap crypto=whirlpool:twofish-xts-plain64:512:0:"
criar arquivo de configuração
$ grub-mkconfig -o /boot/grub/grub.cfg [/usr/sbin/grub-probe: error: failed to get canonical path of `/dev/mapper/root'.]
tente lá fora
$ exit $ grub-mkconfig -o /boot/grub/grub.cfg [/usr/sbin/grub-probe: error: failed to get canonical path of `/cow'.]
Eu cometi algum erro antes disso? Como posso continuar a configurar e instalar o grub corretamente?
fonte
grub
+ seu título. Suponho que você encontrou seu procedimento para criptografar em pavelkogan.com/2014/05/23/luks-full-disk-encryption (que é a primeira pesquisa do Google sobre este tópico). se não, talvez isso ajude. Boa pergunta! e boa sorte!/boot
como o ponto de montagem de tudo. Espero que seja um erro de digitação. 2. Você não/dev
montou enquanto fazia chroot, mas montou devpts. OoRespostas:
Você cometeu alguns erros, mas o principal problema está na onipresença e no grub. Basicamente, quando você define
/
uma partição criptografada e não cria uma partição separada/boot
, o grub exibe uma mensagem de erro como:Uma visão geral do processo
/boot
partição não criptografada e em um btrfs criptografado/
usando o instalador padrão.chroot
, fazemos algumas alterações importantes na configuração, reinstale o grub na partição do sistema EFI e recrie o initrd.Os passos detalhados
sudo apt update && sudo apt upgrade
para atualizar os componentes do instaladorfdisk
,gparted
ou outra ferramenta para criar 3 partições:/boot
Prepare a partição criptografada
Instale o Ubuntu
/dev/sda1
comoEFI System Partition
/dev/sda2
como ext2, formatado, com ponto de montagem de/boot
/dev/mapper/sda3_crypt
como btrfs com ponto de montagem de/
Copie o conteúdo
/boot
e faça umchroot
(Agora tudo está acontecendo como
chroot
dentro do seu novo sistema.)Adicionar linha a
/etc/default/grub
Adicione linha a
/etc/crypttab
. Você precisará primeiro executarsudo blkid
para encontrar o UUID de/dev/sda3
(NÃO/dev/mapper/sda3_crypt
).Edite
/etc/fstab
e exclua a linha para/boot
. As outras entradas estão corretas.Instale o grub na partição do sistema EFI, gere um novo grub.cfg e prepare o initrd.
Opcional double-check: Duplo-check que
/boot/efi/EFI/ubuntu/grub/grub.cfg
contém linhas que inclueminsmod luks
,cryptomount -u <UUID>
, as entradas de inicialização corretos, etc. e verifique que o seu initrd contém ocryptsetup
binário. Se essas coisas estão faltando, é porque o grub-mkconfig e / ou update-initrd não conseguiram descobrir como os volumes que você montou ou especificou no fstab se relacionam com o volume criptografado no crypttab. (Existem muitas configurações automáticas mágicas.) Isso pode acontecer se você divergir deste guia, por exemplo, usando o ZFS ou tentando particionar sda3_crypt.(Se você estiver usando o ZFS em vez do btrfs), o grub-mkconfig e o update-initrd não reconhecerão o ZFS. A solução alternativa envolve (durante o chroot, antes da edição do grub-mkconfig / update-initrd),
/usr/sbin/grub-mkconfig
adicionar|| true
à linha 139 (que começa comGRUB_DEVICE=
), adicionarGRUB_DEVICE="/dev/mapper/sda3_crypt"
à/etc/default/grub
, criar arquivo/usr/share/initramfs-tools/conf-hooks.d/forcecryptsetup
com conteúdoexport CRYPTSETUP=y
e arquivo/etc/initramfs-tools/conf.d/cryptroot
com conteúdotarget=sda3_crypt,source=UUID=<UUID of sda3>,key=none,discard
. Tudo isso além das etapas que você executaria se não estivesse criptografando a partição ZFS (como instalar zfs userspace utils no sistema ativo e durante o chroot e excluir a linha que monta/
no fstab).Saia do chroot e reinicie no seu novo sistema
Você deve ver o grub solicitando sua senha. Então você terá o menu de inicialização. Depois de escolher o Ubuntu, sua senha será solicitada novamente. Então você estará em seu sistema. Leia mais sobre como o Ubuntu usa o BTRFS .
TODO : Crie swap criptografado (dica: envolve editar o crypttab, fstab e executar novamente
update-initrd
).Atualizações
grub-mkconfig
comando .grub-install
comando customizado .Outras notas
fonte
fstab
ecrypttab
na verdade não está correto na pergunta.crypttab
deve apontar para ouuid
dos/dev/sdxY
dispositivos brutos ;fstab
deve apontar para os dispositivos de criptografia abertos em/dev/mapper/label
.grub-install
instruções, você tem um--bootloader=ubuntu
parâmetro Não consigo encontrar esse argumento nos manuais do Ubuntu ou do GNU . Você poderia esclarecer o que faz ou onde está documentado?