Finalmente eu terminei de configurar e pronto para compartilhar conjuntos de instruções finitas de como ele é feito para o CentOS 7.
Eu pulei o particionamento e o bootstrapping manual - há muitos manuais completos em outros lugares.
Então, comece a ter essa variante de particionamento:
sdb 8:16 0 745,2G 0 disk
├─sdb1 8:17 0 200M 0 part
├─sdb2 8:18 0 1G 0 part
└─sdb3 8:19 0 700G 0 part
└─crypto 253:3 0 700G 0 crypt
├─lv-swap 253:4 0 16G 0 lvm
├─lv-root 253:5 0 50G 0 lvm
└─lv-home 253:6 0 634G 0 lvm
em seguida, monte as unidades necessárias, por isso, torna-se:
sdb 8:16 0 745,2G 0 disk
├─sdb1 8:17 0 200M 0 part /home/user/target/boot/efi
├─sdb2 8:18 0 1G 0 part /home/user/target/boot
└─sdb3 8:19 0 700G 0 part
└─crypto 253:3 0 700G 0 crypt
├─lv-swap 253:4 0 16G 0 lvm
├─lv-root 253:5 0 50G 0 lvm /home/user/target
└─lv-home 253:6 0 634G 0 lvm
Passo 0. Prepare o script chroot. Repetir cada reinicialização de mount
é entediante, então acabei com este script chroot elementar:
#!/bin/bash
sudo mount /dev/mapper/lv-root /home/user/target
sudo mount /dev/sdb2 /home/user/target/boot
sudo mount /dev/sdb1 /home/user/target/boot/efi
sudo mount --bind /proc /home/user/target/proc
sudo mount --bind /dev /home/user/target/dev
sudo mount --bind /sys /home/user/target/sys
sudo chroot /home/user/target /bin/bash -l
Etapa 1. Instale os módulos específicos do EFI ausentes (chroot externo):
sudo yum --installroot=/home/user/target install -y efibootmgr grub2-efi-modules
Etapa 2. Edite o /etc/crypttab
crypto UUID=UUID_of_/dev/sdb3 none luks,discard
Razão para discard
- Estou usando o ssd e negligenciando um pouco de segurança para um melhor desempenho do TRIM. Detalhes .
Etapa 3. Edite /etc/dracut.conf
omit_dracutmodules+="systemd"
add_dracutmodules+="crypt lvm" #sequencing could matter
hostonly="yes" #optional
lvmconf="yes"
Etapa 4. Edite o /etc/fstab
UUID=UUID_of_/dev/sdb1 /boot/efi vfat umask=0077 0 0
UUID=UUID_of_/dev/sdb2 /boot ext2 defaults 0 0
UUID=UUID_of_/dev/mapper/lv-root / ext4 defaults 0 0
UUID=UUID_of_/dev/mapper/lv-home /home ext4 defaults 0 0
UUID=UUID_of_/dev/mapper/lv-swap none swap sw 0 0
Etapa 5. Edite o /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_CMDLINE_LINUX="rd.lvm.lv=lv/swap vconsole.font=latarcyrheb-sun16 vconsole.keymap=us rd.luks.options=discard rd.luks.uuid=UUID_of_/dev/sdb3 crashkernel=auto rd.lvm.lv=lv/root rd.lvm.lv=lv/home nomodeset"
GRUB_THEME="/boot/grub2/themes/system/theme.txt"
rd.luks.options=discard
- pode ser redundante, corrija-me se for.
nomodeset
- para eliminar a concorrência do driver hw (noveaufb vs EFI VGA)
Etapa 6. Execute grub2-mkconfig -o /boot/grub2/grub.cfg
Etapa 7. Execute grub2-install --target=x86_64-efi --efi-directory=/boot/efi
Etapa 8. Execute dracut -fv
Todos os passos acima precisam ser feitos dentro do chroot, a menos que seja indicado o contrário.
Descobrimos que o algoritmo de criptografia escolhido não foi influenciado de forma alguma - o grub tem todos os drivers necessários carregados automaticamente.