Com alguma ajuda de Como instalar o servidor Ubuntu com UEFI e RAID1 + LVM , o RAID configurado no Ubuntu 18.04 e o suporte a RAID no instalador do Ubuntu 18.04 Desktop? e Como se livrar da "verificação de sistemas de arquivos btrfs" na inicialização? , Consegui montar um HOWTO de trabalho usando apenas comandos linux.
Em resumo
- Faça o download do instalador alternativo do servidor.
- Instale com particionamento manual, EFI + RAID e LVM na partição RAID.
- Clone a partição EFI da partição instalada para a outra unidade.
- Instale a segunda partição EFI na cadeia de inicialização UEFI.
- Para evitar uma longa espera durante a inicialização, no caso de uma unidade quebrar, remova os
btrfs
scripts de inicialização.
Em detalhe
1. Faça o download do instalador
2. Instale com particionamento manual
- Durante a instalação, na
Partition disks
etapa, selecione Manual
.
- Se os discos contiverem partições, remova-os.
- Se houver volumes lógicos em suas unidades, selecione
Configure the Logical Volume Manager
.
- Escolha
Delete logical volume
até que todos os volumes tenham sido excluídos.
- Escolha
Delete volume group
até que todos os grupos de volumes tenham sido excluídos.
- Se algum dispositivo RAID estiver presente, selecione
Configure software RAID
.
- Escolha
Delete MD device
até que todos os dispositivos MD tenham sido excluídos.
- Exclua todas as partições das unidades físicas, escolhendo-as e selecionando
Delete the partition
.
- Crie partições físicas
- Em cada unidade, criar uma partição de 512MB (eu vi outros usam 128MB) no início do disco, Utilizar como:
EFI System Partition
.
- Em cada unidade, criar uma segunda partição com tamanho 'max', Uso como:
Physical Volume for RAID
.
- Configurar RAID
- Selecione
Configure software RAID
.
- Selecione
Create MD device
, digite RAID1
, 2 discos ativos, 0 discos de reposição, e selecione o /dev/sda2
e /dev/sdb2
dispositivos.
- Configurar LVM
- Selecione
Configure the Logical Volume Manager
.
- Crie um grupo de volumes
vg
no /dev/md0
dispositivo.
- Crie volumes lógicos, por exemplo
swap
em 16G
root
em 35G
tmp
em 10G
var
em 5G
home
a 200G
- Configurar como usar as partições lógicas
- Para a
swap
partição, selecione Use as: swap
.
- Para as outras partições, selecione
Use as: ext4
com o bom pontos de montagem ( /
, /tmp
, /var
, /home
, respectivamente).
- Selecione
Finish partitioning and write changes to disk
.
- Permita que o programa de instalação termine e reinicie.
Se você estiver reinstalando em uma unidade que anteriormente tinha uma configuração RAID, a etapa de criação do RAID acima poderá falhar e você nunca obterá um md
dispositivo. Nesse caso, pode ser necessário criar um stick USB do Ubuntu Live, inicializar nele, executar gparted
para limpar todas as suas tabelas de partição antes de reiniciar este HOWTO.
3. Inspecione o sistema
Verifique qual partição EFI foi montada. Provavelmente /dev/sda1
.
montar | inicialização grep
Verifique o status do RAID. Provavelmente está sincronizando.
cat / proc / mdstat
4. Clone a partição EFI
O EFI carregado com inicialização deveria ter sido instalado /dev/sda1
. Como essa partição não é espelhada através do sistema RAID, precisamos cloná-la.
sudo dd if=/dev/sda1 of=/dev/sdb1
5. Insira a segunda unidade na cadeia de inicialização
Esta etapa pode não ser necessária, pois se uma das unidades morrer, o sistema deverá inicializar a partir das partições EFI (idênticas). No entanto, parece prudente garantir que possamos inicializar a partir de qualquer disco.
- Execute
efibootmgr -v
e observe o nome do arquivo para a ubuntu
entrada de inicialização. Na minha instalação foi \EFI\ubuntu\shimx64.efi
.
- Corra
sudo efibootmgr -c -d /dev/sdb -p 1 -L "ubuntu2" -l \EFI\ubuntu\shimx64.efi
. Dependendo do seu shell, talvez você precise escapar das barras invertidas.
- Verifique com o
efibootmgr -v
que você tem o mesmo nome de arquivo para os ubuntu
e ubuntu2
inicialização itens e que eles são os dois primeiros na ordem de inicialização.
- Agora o sistema deve inicializar mesmo que uma das unidades falhe!
7. espera
Se você quiser remover ou desativar fisicamente qualquer unidade para testar sua instalação, primeiro espere até a sincronização do RAID terminar! Monitore o progresso com cat /proc/mdstat
No entanto, você pode executar a etapa 8 abaixo enquanto aguarda.
8. Remova o BTRFS
Se uma unidade falhar (após a conclusão da sincronização), o sistema ainda será inicializado. No entanto, a sequência de inicialização passará muito tempo procurando sistemas de arquivos btrfs. Para remover essa espera desnecessária, execute
sudo apt-get purge btrfs-progs
Isso deve remover btrfs-progs
, btrfs-tools
e ubuntu-server
. O último pacote é apenas um meta-pacote; portanto, se nenhum outro pacote estiver listado para remoção, você deve estar bem.
9. Instale a versão da área de trabalho
Execute sudo apt install ubuntu-desktop
para instalar a versão da área de trabalho. Depois disso, a sincronização provavelmente está concluída e seu sistema está configurado e deve sobreviver a uma falha no disco!
10. Atualize a partição EFI após a atualização do grub-efi-amd64
Quando o pacote grub-efi-amd64
é atualizado, os arquivos na partição EFI (montada em /boot/efi
) podem mudar. Nesse caso, a atualização deve ser clonada manualmente na partição espelhada. Felizmente, você deve receber um aviso do gerenciador de atualizações que grub-efi-amd64
está prestes a ser atualizado, para não precisar verificar após cada atualização.
10.1 Descubra a origem do clone, maneira rápida
Se você não reiniciou após a atualização, use
mount | grep boot
para descobrir qual partição EFI está montada. Essa partição, normalmente /dev/sdb1
, deve ser usada como a fonte do clone.
10.2 Descubra a fonte do clone, de maneira paranóica
Crie pontos de montagem e monte as duas partições:
sudo mkdir /tmp/sda1 /tmp/sdb1
sudo mount /dev/sda1 /tmp/sda1
sudo mount /dev/sdb1 /tmp/sdb1
Encontre o registro de data e hora do arquivo mais recente em cada árvore
sudo find /tmp/sda1 -type f -printf '%T+ %p\n' | sort | tail -n 1 > /tmp/newest.sda1
sudo find /tmp/sdb1 -type f -printf '%T+ %p\n' | sort | tail -n 1 > /tmp/newest.sdb1
Compare timestamps
cat /tmp/newest.sd* | sort | tail -n 1 | perl -ne 'm,/tmp/(sd[ab]1)/, && print "/dev/$1 is newest.\n"'
Deve imprimir /dev/sdb1 is newest
(provavelmente) ou /dev/sda1 is newest
. Essa partição deve ser usada como a fonte do clone.
Desmonte as partições antes da clonagem para evitar inconsistência de cache / partição.
sudo umount /tmp/sda1 /tmp/sdb1
10.3 Clone
Se /dev/sdb1
foi a fonte do clone:
sudo dd if=/dev/sdb1 of=/dev/sda1
Se /dev/sda1
foi a fonte do clone:
sudo dd if=/dev/sda1 of=/dev/sdb1
Feito!
11. Dicas da máquina virtual
Se você quiser testar isso primeiro em uma máquina virtual, existem algumas ressalvas: Aparentemente, a NVRAM que contém as informações UEFI é lembrada entre as reinicializações, mas não entre os ciclos de desligamento e reinicialização. Nesse caso, você pode acabar no console do UEFI Shell. Os seguintes comandos devem inicializar você em sua máquina a partir de /dev/sda1
(use FS1:
for /dev/sdb1
):
FS0:
\EFI\ubuntu\grubx64.efi
A primeira solução na resposta superior da inicialização UEFI no virtualbox - Ubuntu 12.04 também pode ser útil.