Instalando o Archlinux em uma jaula chroot e dando boot por ele
Da mesma forma que apresentei no tópico anterior, o mesmo procedimento vai ser realizado no Archlinux
Iniciamos fazendo o download do bootstrap mais recente, para isso acesse o link abaixo e escolha a forma de download torrent ou pelos espelhos disponíveis
https://archlinux.org/download/
Após ter baixado o archlinux-bootstrap-x86_64.tar.zst extraimos com o comando abaixo
sudo tar xvf archlinux-bootstrap-x86_64.tar.zst --numeric-owner
Na mesma pasta onde o arquivo foi extraído rode o comando abaixo para não ter mensagens de erro ao executar o comando pacman
sudo mount --bind $PWD/root.x86_64 $PWD/root.x86_64
Edite o arquivo mirrorlist e descomente uma das linhas com o espelho preferido
sudo nano root.x86_64/etc/pacman.d/mirrorlist
Exemplo:
## Brazil
Server = http://archlinux.c3sl.ufpr.br/$repo/os/$arch #Mirror escolhido
#Server = https://archlinux.c3sl.ufpr.br/$repo/os/$arch
Entre na jaula com o comando abaixo
sudo root.x86_64/bin/arch-chroot root.x86_64
Estando dentro da jaula rode o comando abaixo para configurar as chaves do pacman
pacman-key --init
pacman-key --populate
Crie uma senha para o usuário root com o comando abaixo
passwd
Verifique se os pacotes estão atualizados
pacman -Syu
Nessa parte você pode customizar a instalação da forma que bem entender eu vou estar instalando alguns pacotes e criar um usuário com o sudo
https://wiki.archlinux.org/title/Installation_guide#Time
Vou instalar os pacotes abaixo (Substitua os pacotes linux, dhcpcd e nano pelo kernel, gerenciador de internet e editor preferido)
pacman -S base-devel linux linux-firmware dhcpcd git nano
Configurando o timezone para São Paulo
ln -sf /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime
hwclock --systohc
Edite o locale.gen e descomente os locales necessários no meu caso e o en_US.UTF-8 UTF-8 e pt_BR.UTF-8 UTF-8
nano /etc/locale.gen
E gere os locales logo em seguida
locale-gen
Crie os arquivos abaixo para configurar a linguagem e o mapa do teclado no console(substitua conforme necessário)
echo "LANG=pt_BR.UTF-8" > /etc/locale.conf
echo "KEYMAP=br-abnt2" > /etc/vconsole.conf
Configure um hostname
echo "hostname" > /etc/hostname
Crie um usuário
useradd -m -s /bin/bash teste
Defina uma senha para o usuário criado
passwd teste
Edite o arquivo sudoers e desmarque a linha que cita o grupo wheel
EDITOR=nano visudo
Exemplo:
## Uncomment to allow members of group wheel to execute any command
%wheel ALL=(ALL:ALL) ALL
Adicione o usuário criado ao grupo wheel
usermod -aG wheel teste
Mude do usuário root para o usuário criado
su -l teste
Clone o repositório e entre na pasta
git clone https://github.com/flydiscohuebr/mkinitcpio-dir.git
cd mkinitcpio-dir
Dentro da pasta rode o comando abaixo
makepkg -si
Edite as configurações do mkinitcpio e adicione o dir na linha HOOKS
sudo nano /etc/mkinitcpio.conf
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr and fsck hooks.
#HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont block filesystems fsck)
#dir adicionado
HOOKS=(dir base udev autodetect microcode modconf kms keyboard keymap consolefont block filesystems fsck)
Volte para o usuário root apertando CTRL+D ou com o comando abaixo
exit
Gere um novo initramfs (Ao gerar o initramfs você deve ver o hook dir sendo construído)
mkinitcpio -P
Saia da jaula apertando CTRL+D e desmonte a pasta
sudo umount $PWD/root.x86_64
Adicione esse conteúdo no arquivo /etc/grub.d/40_custom
OBS.: dependendo da distro esse caminho pode ser diferente
menuentry "Arch linux (FROM A FOLDER)" {
set IDK="/root.x86_64"
search --no-floppy --fs-uuid --set=root af1b4e81-4323-4664-aa09-25bca222130e
linux $IDK/boot/vmlinuz-linux root=UUID=af1b4e81-4323-4664-aa09-25bca222130e dir=$IDK rw
initrd $IDK/boot/initramfs-linux.img
}
Substitua o af1b4e81-4323-4664-aa09-25bca222130e pelo UUID do hd onde foi instalado a jaula. Para ver, basta rodar o comando sudo blkid
Atualize a configuração do grub
sudo update-grub
Reinicie o pc e tente dar boot na opção Arch linux (FROM A FOLDER) se tudo der certo você será contemplado com a tela de login.
No caso de algum erro verifique o caminho e o nome da pasta onde esta a jaula no meu caso esta na raiz do hd com o nome root.x86_64.
