Não é possível fazer com que o Ubuntu inicialize a partir do grupo LUKS / LVM na unidade externa no iMac com o reencaminhamento

0

Eu tenho um iMac 2017 e estou tentando instalar o Ubuntu em uma unidade USB3 externa. A unidade externa tem uma tabela de partições GPT (sem MBR híbrido) e é particionada da seguinte forma:

/dev/sda1: EFI partition
/dev/sda2: Windows-To-Go partition
/dev/sda3: ext4 Linux boot partition
/dev/sda4: LUKS / LVM partition
/dev/sda5: extra partition, not currently being used

O grupo LVM que está disponível depois que a partição LUKS é descriptografada contém uma partição ext4 destinada a ser a partição principal do meu sistema linux e uma partição swap.

Estou usando o refind no meu mac para facilitar a inicialização desses diferentes sistemas operacionais.

Quando instalei o Ubuntu, certifiquei-me de que todas as minhas partições já estavam descriptografadas e montadas, escolhi a configuração manual do disco no instalador (porque eu não queria que ele apagasse todo o meu disco externo incluindo a instalação do Windows) e manualmente especificado o seguinte:

  1. /boot como o ponto de montagem para /dev/sda3
  2. / como o ponto de montagem para a partição principal do ext4 no meu grupo LVM
  3. grub deve ser instalado em /dev/sda3

O instalador terminou sem erros. Quando eu reinicio, no entanto, eu tenho duas opções de como inicializar esta instalação do Ubuntu, e nenhuma delas funciona.

Eu posso inicializar a partir de um bootloader grub instalado na partição EFI do meu disco rígido interno. Note que eu não queria Linux ou qualquer outro sistema operacional adicionando seu gerenciador de inicialização a esta unidade. Eu só quero que ele permaneça uma unidade macOS normal com a adição de refind. No entanto, se eu inicializá-lo usando refind, ele mostrará o logo do Ubuntu antes de me soltar em um prompt (initramfs) sem nenhuma mensagem de erro.

Se eu escolher o bootloader que eu especifiquei, ele deverá ser instalado em /dev/sda3 , ele começará a ser carregado, e falhará com os seguintes erros:

mount: can't find /root in /etc/fstab
...
mount: mounting /dev on /root/dev failed: No such file or directory
mount: mounting /run on /root/run failed: No such file or directory
run-init: current directory on the same filesystem as the root: error 0
Target file system doesn't have requested /sbin/init
run-init: current directory on the same filesystem as the root: error 0
(repeats four more times)
No init found. Try passing init= bootarg.

... e depois me leva a um prompt (initramfs) .

Eu não tenho ideia de como consertar isso! Eu tentei usar Boot-Repair, mas não fez diferença alguma. Socorro!

    
por GuyGizmo 16.02.2018 / 19:25

1 resposta

0

Eu finalmente consegui trabalhar! Graças em grande parte a esta resposta para outra questão relacionada com encriptação . Eu não acabei criptografando minha partição de inicialização porque não achei que fosse necessário, mas havia algumas coisas importantes que fiz de forma diferente de cima. Parece que o principal problema era que o instalador do Ubuntu não conseguia descobrir exatamente como minhas partições estavam configuradas, então foi necessário chroot na nova instalação do Linux, fazer algumas alterações que indicam o que está acontecendo e reinstalar o grub . Aqui está o que eu fiz:

  1. Eu formatei / dev / sda3 como ext2. (Não tenho certeza se isso foi importante.)
  2. Ao instalar, especifiquei que o carregador de inicialização deve ser instalado em /dev/sda not /dev/sda3
  3. eu especifiquei /dev/sda1 como partição de inicialização EFI
  4. Após a conclusão da instalação, eu disse a ele para não reiniciar, e fiz o seguinte em um terminal:

    sudo mount /dev/mapper/my_linux_lvm_partition /target sudo mount /dev/sda3 /target/boot sudo mount /dev/sda1 /target/boot/efi sudo mount --bind /dev /target/dev sudo mount --bind /proc /target/proc sudo mount --bind /sys /target/sys sudo chroot /target

  5. Agora que eu usei chroot em minha instalação, editei /etc/default/grub e adicionei a linha: GRUB_ENABLE_CRYPTODISK=y

  6. Obteve o UUID das minhas várias partições usando blkid

  7. Adicionou uma linha a /etc/crypttab : my_luks_partition_name UUID=<UUID of /dev/sda4> none luks,discard

  8. sudo grub-install --target=x86_64-efi --efi-directory /boot/efi --bootloader=ubuntu --boot-directory=/boot/efi/EFI/ubuntu --recheck

  9. sudo grub-mkconfig -o /boot/efi/EFI/ubuntu/grub.cfg

  10. sudo update-initramfs -c -k all

Notei que era importante obter o nome da partição LUKS correta, caso contrário, haveria erros ao executar update-initramfs.

Isso me levou dois dias inteiros de cabelo puxando frustração para descobrir. Eu só espero que essa informação ajude alguém a fazer isso também, sem quase tanta agonia.

    
por GuyGizmo 17.02.2018 / 08:14