Instalação do Arch Linux
1. Verificação de Assinatura
à recomendÔvel verificar a assinatura da imagem antes de usÔ-la, especialmente ao fazer o download de um espelho HTTP, onde os downloads estão sujeitos à interceptação para fornecer imagens maliciosas.
Em um sistema com GnuPG instalado, baixe a assinatura PGP da ISO para o diretório ISO e verifique-a com o seguinte comando:
$ gpg --keyserver-options auto-key-retrieve --verify archlinux-version-x86_64.iso.sig
Alternativamente, a partir de uma instalação existente do Arch Linux, execute:
$ pacman-key -v archlinux-version-x86_64.iso.sig
2. Configuração Inicial
Para começar, precisamos definir o idioma do teclado, o idioma padrão sem digitar o comando é US
. As disposiƧƵes disponĆveis podem ser listadas com:
# ls /usr/share/kbd/keymaps/**/*.map.gz
defina o idioma do teclado com o comando:
# loadkeys it
Os caracteres do console podem ser encontrados em /usr/share/kbd/consolefonts/ e tambƩm podem ser definidos com o comando setfont. Por exemplo, para usar caracteres maiores adequados para telas de HiDPI, execute:
# setfont ter-132b
3. Conexão com a Internet
Se você conectou a mÔquina à Internet via cabo ou mÔquina virtual, pode verificar o endereço IP adquirido usando este comando:
# ip a
A conexão pode ser testada com um comando de teste de ping:
# ping -c 3 archlinux.org
Conecte-se Ć rede Wi-Fi usando a ferramenta iwctl:
# iwctl
Inicie o iwctl# device list
Encontre o nome do seu dispositivo, por exemplo, wlan0# station wlan0 scan
Verifique as redes sem fio disponĆveis# station wlan0 get-networks
Obtenha a lista de redes# station wlan0
connect yournetworkname Conecte-se Ć sua rede# exit
Se, no caso, nossos dispositivos estiverem desativados e não conseguirmos executar o iwctl:
# rfkill list
Verifique o status bloqueado ou desbloqueado dos dispositivos# rfkill unblock all
Desbloqueie todos os nossos dispositivos bloqueados# systemctl restart iwd
Reinicie o serviƧo iwd
Tente novamente # iwctl
e continue como acima.
4. Preparação do disco
BIOS-MBR
Particionamento
Identifique seu disco para saber qual convenção de nomenclatura usar. Por exemplo, no caso de um SSD /dev/sda ou no caso de M.2 /dev/nvme0n1 e, finalmente, o disco virtual /dev/vda.
# lsblk -l
Assim que a nomenclatura de nosso disco for identificada, use o cfdisk, aqui assumiremos ter /dev/sda. Você pode ser solicitado o tipo de tabela de partição se o disco for bruto. Nesse caso, selecione DOS:
# cfdisk /dev/sda
Crie as partições necessÔrias para a instalação bÔsica, assumindo que temos um SSD de 128GiB:
# 4Gib
Crie uma partição para swap e selecione o tipo de swap# 124Gib
Crie a partição raiz# write (yes)
andquit
Escreva as alteraƧƵes e saia
Formatação de partições
# mkswap /dev/sda1
Partição de swap# mkfs.ext4 /dev/sda2
Partição raiz em EXT4
Montagem de partiƧƵes
# mount /dev/sda2 /mnt
Monte a partição raiz# swapon /dev/sda1
Monte a partição de swap
UEFI ext4
Particionamento de disco
Identifique seu disco para saber qual convenção de nomenclatura usar. Por exemplo, no caso de um SSD /dev/sda ou no caso de M.2 /dev/nvme0n1 e, finalmente, o disco virtual /dev/vda.
# lsblk -l
Assumindo que temos um SSD de 128GiB e usaremos o particionamento GPT para a instalação UEFI:
# cfdisk /dev/sda
# 512Mib
Crie uma partição EFI e selecione o tipo de partição do sistema EFI# 4Gib
Crie uma partição para swap e selecione o tipo de swap# 23.5Gib
Crie a partição raiz# 100Gib
Crie a partição Home# write (yes)
equit
Escreva as alteraƧƵes e saia
Formatação de partições
# mkfs.vfat -F32 /dev/sda1
Partição do sistema EFI em FAT32 para inicialização# mkswap /dev/sda2
Partição de swap# mkfs.ext4 /dev/sda3
Partição raiz em EXT4# mkfs.ext4 /dev/sda4
Partição Home em EXT4
Montagem de partiƧƵes
# mount /dev/sda3 /mnt
Monte a partição raiz# mkdir -p /mnt/{home,boot}
Crie os diretórios /home e /boot# mount /dev/sda4 /mnt/home
Monte a partição Home# mount /dev/sda1 /mnt/boot
Monte a partição de inicialização# swapon /dev/sda2
Monte a partição de swap
UEFI btrfs
Particionamento de disco
Identifique seu disco para saber qual convenção de nomenclatura usar. Por exemplo, no caso de um SSD /dev/sda ou no caso de M.2 /dev/nvme0n1 e, finalmente, o disco virtual /dev/vda.
# lsblk -l
Assumindo que temos um SSD de 128GiB e usaremos o particionamento GPT para a instalação UEFI:
# cfdisk /dev/sda
# 512Mib
Crie uma partição EFI e selecione o tipo de partição do sistema EFI# 27.5Gib
Crie a partição raiz# 100Gib
Crie a partição Home# write (yes)
equit
Escreva as alteraƧƵes e saia
Formatação de partições
# mkfs.vfat -F32 /dev/sda1
Partição do sistema EFI em FAT32 para inicialização# mkfs.btrfs /dev/sda2
Partição raiz em BTRFS# mkfs.btrfs /dev/sda3
Partição Home em BTRFS
Montagem de partiƧƵes
Crie os subvolumes @ e @home:
-
# mount /dev/sda2 /mnt
-
# btrfs su cr /mnt/@
-
# umount /mnt
-
# mount /dev/sda3 /mnt
-
# btrfs su cr /mnt/@home
-
# umount /mnt
-
# mount -o noatime,ssd,space_cache=v2,compress=zstd,discard=async,subvol=@ /dev/sda2 /mnt
-
# mkdir -p /mnt/{home,boot}
Crie os diretórios /home e /boot  # mount /dev/sda1 /mnt/boot
Ā# mount -o noatime,ssd,space_cache=v2,compress=zstd,discard=async,subvol=@home /dev/sda3 /mnt/home
UEFI lvm-ext4
Particionamento de disco
Identifique seu disco para saber qual convenção de nomenclatura usar. Por exemplo, no caso de um SSD /dev/sda ou no caso de M.2 /dev/nvme0n1 e, finalmente, o disco virtual /dev/vda.
# lsblk -l
Assumindo que temos 3 discos de 128GiB para LVM: sda sdb sdc use o cfdisk para um disco de cada vez:
# cfdifk /dev/sda
# 512Mib
Crie uma partição EFI e selecione o tipo de partição do sistema EFI# 127.5GiB
Crie uma partição e selecione o tipo LVM# write (yes)
equit
Escreva as alteraƧƵes e saia
# cfdifk /dev/sdb
# 128GiB
Crie uma partição e selecione o tipo LVM# write (yes)
equit
Escreva as alteraƧƵes e saia
# cfdifk /dev/sdc
# 128GiB
Crie uma partição e selecione o tipo LVM# write (yes)
equit
Escreva as alteraƧƵes e saia
Para criar partiƧƵes em LVM, precisamos primeiro criar um volume fĆsico:
Crie o volume fĆsico
# pvcreate /dev/sda2 /dev/sdb1 /dev/sdc1
Crie o grupo de volume
Crie e estenda seu grupo de volume; vocĆŖ precisa criar um grupo de volume em um ou mais volumes fĆsicos # vgcreate grupo_de_volume volume_fĆsico
por exemplo:
# vgcreate lvm /dev/sda2 /dev/sdb1 /dev/sdc1
Este comando primeiro configurarĆ” as trĆŖs partiƧƵes como volumes fĆsicos (se necessĆ”rio) e, em seguida, criarĆ” o grupo de volumes com os trĆŖs volumes. O comando o alertarĆ” se detectar um sistema de arquivos existente em qualquer dispositivo.
Crie volumes lógicos
Crie volumes lógicos; para uma configuração bĆ”sica, precisarĆamos de um para raiz, swap e home.
# lvcreate -L 120G lvm -n root
# lvcreate -L 8G lvm -n swap
# lvcreate -l 100%FREE lvm -n home
Formatação de partições
# mkfs.vfat -F32 /dev/sda1
Partição do sistema EFI em FAT32 para inicialização# mkfs.ext4 /dev/lvm/root
# mkfs.ext4 /dev/lvm/home
# mkswap /dev/lvm/swap
Montagem de partiƧƵes
# mount /dev/lvm/root /mnt
Monte a partição raiz# mkdir -p /mnt/{home,boot}
Crie os diretórios /home e /boot# mount /dev/lvm/home /mnt/home
# mount /dev/sda1 /mnt/boot
# swapon /dev/lvm/swap
Estender um grupo LVM
Se no futuro vocĆŖ quiser adicionar um novo volume fĆsico ao grupo, veja qual comando usar, supondo um quarto disco sdd e tendo particionado como antes, estendemos o espaƧo, por exemplo, para /dev/lvm/home
:
# pvcreate /dev/sdd1
# vgextend lvm /dev/sdd1
# lvextend -l +100%FREE /dev/lvm/home
5. Lista de servidores espelho
Salve a lista de servidores para os repositórios em /etc/pacman.d/mirrorlist usando a ferramenta reflector, especificando o paĆs para sincronizar os servidores, por exemplo it. VĆ”rios paĆses podem ser adicionados usando uma vĆrgula, por exemplo, it,us:
# reflector --verbose -c it -a 12 --sort rate --save /etc/pacman.d/mirrorlist
6. Pacstrap
Instale o kernel Linux e pacotes base para criar nosso sistema Arch, adicione também um editor, como vim. Se estiver seguindo a instalação do lvm, adicione o pacote lvm2
ao comando a seguir:
# pacstrap -K /mnt base base-devel linux linux-firmware vim
7. Gerar Fstab
O arquivo /etc/fstab permite controlar quais sistemas de arquivos são montados em seu sistema Linux durante a inicialização, incluindo as partições do Windows e os compartilhamentos de rede:
# genfstab -U /mnt > /mnt/etc/fstab
8. Chroot
Entre no chroot e configure as etapas a seguir: configuração de hora local, relógio de sistema, idioma, mapeamentos de teclado, nome do host, senha do root, criação de usuÔrio e senha.
Entre no chroot:
# arch-chroot /mnt
Fuso horƔrio
# ln -sf /usr/share/zoneinfo/Europe/Italy /etc/localtime
# hwclock --systohc
Localização
# echo "it_IT.UTF-8 UTF-8" >> /etc/locale.gen
# locale-gen
# echo "LANG=it_IT.UTF-8" >> /etc/locale.conf
# echo "KEYMAP=it" >> /etc/vconsole.conf
Nome de host e Hosts
# echo "NOMEDAMAQUINA" > /etc/hostname
# echo "127.0.0.1 localhost" >> /etc/hosts
# echo "::1 localhost" >> /etc/hosts
UsuƔrio e Root
Configure a senha do Root, tenha cuidado!
# passwd
Configure um novo usuÔrio em minúsculas, criando o diretório /home/USUARIO
com -m
, o grupo wheel
com -G
e o shell com -s
:
# useradd -mG wheel -s /bin/bash USUARIO
Configure o nome real (que aparece em grÔficos com letra inicial maiúscula por exemplo "Alessio")
# usermod -c 'NOMEREAL' USUARIO
Configure uma senha para o usuƔrio recƩm-adicionado, tenha cuidado!
# passwd USUARIO
Configure o arquivo sudoers para o grupo wheel:
# echo "USUARIO ALL=(ALL:ALL) ALL" >> /etc/sudoers.d/USUARIO
mkinitcpio para lvm
adicionar o lvm2 em hooks no arquivo /etc/mkinitcpio.conf
HOOKS="base udev ... block lvm2 filesystems"
em seguida, usar o comando:
# mkinitcpio -p linux
9. Carregador de boot
GRUB (Bios-MBR)
# pacman -S grub
# grub-install --target=i386-pc /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg
GRUB (UEFI)
# pacman -S grub
# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
# grub-mkconfig -o /boot/grub/grub.cfg
O GRUB suporta totalmente o secure boot usando CA keys ou shim, no entanto, o comando de instalação é diferente dependendo de qual for usar.
Para usar as CA keys, o comando Ć©:
# grub-install --target=x86_64-efi --efi-directory=esp --bootloader-id=GRUB --modules="tpm" --disable-shim-lock
Para usar o shim-lock, o comando Ć©:
# grub-install --target=x86_64-efi --efi-directory=esp --bootloader-id=GRUB --modules="normal test efi_gop efi_uga search echo linux all_video gfxmenu gfxterm_background gfxterm_menu gfxterm loadenv configfile tpm"
Systemd-boot (EXT4)
# pacman -S efibootmgr
# bootctl --path=/boot install
# echo "default arch-*" >> /boot/loader/loader.conf
# vim /boot/loader/entries/arch.conf
Agora, crie a configuração do arquivo arch.conf que foi aberto com vim, é importante escrever a partição de inicialização raiz correta como root=/dev/sdax
onde x
é o número da partição raiz.
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=/dev/sdax rw quiet loglevel=3 rd.systemd.show_status=auto rd.udev.log_level=3
Systemd-boot (BTRFS)
# pacman -S efibootmgr
# bootctl --path=/boot install
# echo "default arch-*" >> /boot/loader/loader.conf
# vim /boot/loader/entries/arch.conf
Agora, crie a configuração do arquivo arch.conf que foi aberto com vim, é importante escrever a partição de inicialização raiz correta como root=/dev/sdax
onde x
é o número da partição raiz, adicione a bandeira para o subvolume @.
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=/dev/sdax rootflags=subvol=@ rw quiet loglevel=3 rd.systemd.show_status=auto rd.udev.log_level=3
Systemd-boot (LVM)
# pacman -S efibootmgr
# bootctl --path=/boot install
# echo "default arch-*" >> /boot/loader/loader.conf
# vim /boot/loader/entries/arch.conf
Agora, crie a configuração do arquivo arch.conf que foi aberto com vim, é importante escrever a partição de inicialização raiz correta como para o lvm root=/dev/mapper/lvm-root
title Arch Linux (LVM)
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=/dev/mapper/lvm-root rw quiet loglevel=3 rd.systemd.show_status=auto rd.udev.log_level=3
10. Pacotes BƔsicos
# pacman -S xorg wpa_supplicant wireless_tools netctl net-tools iw networkmanager alsa-utils pipewire-pulse mtools dosfstools mtools ntfs-3g f2fs-tools dosfstools exfatprogs fuse firewalld acpi cronie git reflector bluez bluez-utils cups reflector
11. Ambiente de Ćrea de Trabalho
Escolha alguns dos ambientes de Ɣrea de trabalho populares sugeridos:
Gnome
Gnome completo com o gerenciador de exibição GDM
# pacman -S gnome gnome-extra gdm
# systemctl enable gdm
Xfce4
xfce4 com o gerenciador de exibição Lightdm
# pacman -S xfce4 xfce4-goodies lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings
# systemctl enable lightdm
Lxde
lxde com o gerenciador de exibição Lightdm
# pacman -S lxde lxde-common lxsession openbox
# systemctl enable lightdm
Mate
mate com o gerenciador de exibição Lightdm
# pacman -S mate mate-extra
# systemctl enable lightdm
Plasma
plasma kde com o gerenciador de exibição SDDM
# pacman -S plasma kde-applications sddm
# systemctl enable sddm
Cinnamon
cinnamon com o gerenciador de exibição Lightdm
# pacman -S cinnamon nemo-fileroller gnome-terminal lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings xdg-user-dirs-gtk
# systemctl enable lightdm
12. ServiƧos
Se você tiver habilitado o serviço para o gerenciador de exibição, pode passar para a ativação de outros serviços necessÔrios.
# systemctl enable NetworkManager
Tenha cuidado, o comando diferencia maiĆŗsculas e minĆŗsculas.# systemctl enable bluetooth
# systemctl enable reflector
# systemctl enable cronie
# systemctl enable firewalld
13. Zram
O exemplo a seguir descreve como configurar a troca automÔtica para zram na inicialização usando uma única regra udev. Nenhum pacote adicional é necessÔrio para fazê-lo funcionar.
Carregar explicitamente o módulo na inicialização:
-
# vim /etc/modules-load.d/zram.conf
-
zram
Crie a seguinte regra udev ajustando o atributo disksize conforme necessƔrio para o tamanho da troca, neste exemplo Ʃ 16G:
-
# vim /etc/udev/rules.d/99-zram.rules
-
ACTION=="add", KERNEL=="zram0", ATTR{comp_algorithm}="zstd", ATTR{disksize}="16G", RUN="/usr/bin/mkswap -U clear /dev/%k", TAG+="systemd"
Adicione /dev/zram ao seu fstab com uma prioridade mais alta que o padrão:
-
# vim /etc/fstab
-
/dev/zram0 none swap defaults,pri=100 0 0
Creata: August 16, 2023