Este é um guia pessoal, então se você está perdido e acabou de encontrar este guia em algum lugar, recomendo que você leia o wiki
oficial! Este guia se concentrará em systemd-boot
, UEFI
e um guia se você deseja criptografar sua partição com LUKS/LVM
. Este guia existe para que eu possa lembrar um monte de coisas ao reinstalar Archlinux
.
Antes de instalar, certifique-se de:
O mapa de teclado padrão do console é US. Os layouts disponíveis podem ser listados com:
# ls /usr/share/kbd/keymaps/**/*.map.gz
Para modificar o layout, anexe um nome de arquivo correspondente às teclas de carregamento, omitindo o caminho e a extensão do arquivo. Por exemplo, para definir um layout de teclado dos EUA:
# loadkeys us
Se o modo UEFI estiver habilitado em uma placa-mãe UEFI, o Archiso inicializará o Arch Linux adequadamente via systemd-boot. Para verificar isso, liste o diretório efivars:
# ls /sys/firmware/efi/efivars
Se o comando mostrar o diretório sem erros, o sistema será inicializado no modo UEFI. Se o diretório não existir, o sistema poderá ser inicializado no modo BIOS (ou CSM ).
Precisamos ter certeza de que estamos conectados à Internet para poder instalar os pacotes base
e linux
do Arch Linux. Vamos ver os nomes de nossas interfaces.
# ip link
Você deverá ver algo assim:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff permaddr 00:00:00:00:00:00
enp0s0
é a interface com fiowlan0
é a interface sem fio Se você estiver em uma conexão com fio, poderá ativar sua interface com fio por systemctl start dhcpcd@<interface>
.
# systemctl start dhcpcd@enp0s0
Se você estiver em um laptop, poderá conectar-se a um ponto de acesso sem fio usando o comando iwctl
do iwd
. Observe que ele já está habilitado por padrão. Certifique-se também de que a placa wireless não esteja bloqueada com rfkill
.
Procure rede.
# iwctl station wlan0 scan
Obtenha a lista de redes verificadas por:
# iwctl station wlan0 get-networks
Conecte-se à sua rede.
# iwctl -P "PASSPHRASE" station wlan0 connect "NETWORKNAME"
Faça ping no site do archlinux para ter certeza de que estamos online:
# ping archlinux.org
Se você receber uma resposta Host desconhecido ou Host de destino inacessível, significa que você ainda não está online. Revise a configuração da sua rede e refaça as etapas acima.
Use timedatectl
para garantir que o relógio do sistema esteja preciso:
# timedatectl set-ntp true
Para verificar o status do serviço, use timedatectl status
.
Quando reconhecidos pelo sistema ativo, os discos são atribuídos a um dispositivo de bloco como /dev/sda
, /dev/nvme0n1
ou /dev/mmcblk0
. Para identificar esses dispositivos, use lsblk ou fdisk. A unidade principal mais comum é sda .
# lsblk
Os resultados que terminam em rom
, loop
ou airoot
podem ser ignorados.
Neste guia, criarei duas maneiras diferentes de particionar uma unidade. Um para instalação normal, o outro é configuração com criptografia (LUKS/LVM). Vamos começar com o não criptografado:
Vamos limpar nossa unidade principal para criar novas partições para nossa instalação. E sim, neste guia, usaremos /dev/sda
como nosso disco.
# gdisk /dev/sda
Pressione x para entrar no modo especialista . Em seguida, pressione z para zapear nossa unidade. Em seguida, pressione y quando for solicitado a eliminar o GPT e o MBR. Observe que isso destruirá toda a sua unidade, de modo que seus dados desaparecerão - reduzidos a átomos depois de fazer isso. ESSE. NÃO PODE. SER. DESFEITO.
Abra cgdisk
para começar a particionar nosso sistema de arquivos
# cgdisk /dev/sda
Pressione Return quando for avisado sobre GPT danificado.
Agora devemos ver nossa unidade principal mostrando o número da partição, tamanho da partição, tipo de partição e nome da partição. Se você vir uma lista de partições, exclua todas elas primeiro.
Crie a partição boot
EF00
. Pressione Enter.boot
. Pressione Enter. Crie a partição root
8300
).root
. Crie a partição root
home
. Por último, clique em Write
na parte inferior da lista de patições para gravar as alterações no disco. Digite yes
para confirmar o comando de gravação. Agora terminamos de particionar o disco. Clique Quit
para sair do cgdisk . Vá para a próxima seção.
LUKS/LVM
Vamos limpar nossa unidade principal para criar novas partições para nossa instalação. E sim, neste guia, usaremos /dev/sda
como nosso disco.
# gdisk /dev/sda
Pressione x para entrar no modo especialista . Em seguida, pressione z para zapear nossa unidade. Em seguida, pressione y quando for solicitado a eliminar o GPT e o MBR. Observe que isso destruirá toda a sua unidade, de modo que seus dados desaparecerão - reduzidos a átomos depois de fazer isso. ESSE. NÃO PODE. SER. DESFEITO.
Crie nossas partições executando cgdisk /dev/sda
# cgdisk /dev/sda
Basta pressionar Return quando for avisado sobre GPT danificado.
Agora devemos ver nossa unidade principal mostrando o número da partição, tamanho da partição, tipo de partição e nome da partição. Se você vir uma lista de partições, exclua todas elas primeiro.
Crie a partição boot
EF00
. Pressione Enter.boot
. Pressione Enter. Crie a partição LVM
8e00
. Pressione Enter.lvm
. Pressione Enter. Por último, clique em Write
na parte inferior da lista de patições para gravar as alterações no disco. Digite yes
para confirmar o comando de gravação. Agora terminamos de particionar o disco. Clique Quit
para sair do cgdisk . Vá para a próxima seção.
Use lsblk
novamente para verificar as partições que criamos. Nós? Pensei em fazer esse guia sozinho haha
# lsblk
Você deverá ver algo assim :
NOME | MAIOR:MIN | RM | TAMANHO | RO | TIPO | PONTO DE MONTAGEM |
---|---|---|---|---|---|---|
sda | 8:0 | 0 | 477G | 0 | ||
sda1 | 8:1 | 0 | 1 | 0 | papel | |
sda2 | 8:2 | 0 | 1 | 0 | papel | |
sda3 | 8:3 | 0 | 175G | 0 | papel |
sda
é o disco principal
sda1
é a partição de inicialização
sda2
é a partição swap
sda3
é a partição inicial
NOME | MAIOR:MIN | RM | TAMANHO | RO | TIPO | PONTO DE MONTAGEM |
---|---|---|---|---|---|---|
sda | 8:0 | 0 | 477G | 0 | disco | |
sda1 | 8:1 | 0 | 1 | 0 | papel | |
sda2 | 8:2 | 0 | 1 | 0 | papel |
sda
é o disco principal
sda1
é a partição de inicialização
sda2
é a partição LVM
Surpresa! Surpresa! Não criptografaremos a partição /boot
.
Formate a partição /dev/sda1
como FAT32
. Este será o nosso /boot
.
# mkfs.fat -F32 /dev/sda1
Formate as partições /dev/sda3
e /dev/sda4
como EXT4
. Esta será nossa partição root
e home
.
# mkfs.ext4 /dev/sda3
# mkfs.ext4 /dev/sda4
Formate a partição /dev/sda1
como FAT32
. Este será o nosso /boot
.
# mkfs.fat -F32 /dev/sda1
Crie o contêiner criptografado LUKS.
# cryptsetup luksFormat /dev/sda2
Digite sua senha duas vezes. Não se esqueça disso!
Abra o contêiner criado e nomeie-o como quiser. Neste guia usarei apenas cryptlvm
.
# cryptsetup open --type luks /dev/sda2 cryptlvm
Digite sua senha e verifique-a.
O contêiner descriptografado agora está disponível em /dev/mapper/cryptlvm
.
Crie um volume físico sobre o contêiner LUKS aberto:
# pvcreate /dev/mapper/cryptlvm
Crie o grupo de volumes e nomeie-o como volume
(ou como quiser), adicionando a ele o volume físico criado anteriormente:
Neste guia, usarei volume
apenas como nome do grupo de volumes.
# vgcreate volume /dev/mapper/cryptlvm
Crie todos os volumes lógicos necessários no grupo de volumes. Criaremos volumes lógicos root
e home
. Observe que o volume
é o nome do volume que acabamos de criar.
Crie nossa root
. Neste guia, usarei 100 GB.
# lvcreate -L 100G volume -n root
Isso criará /dev/mapper/volume-root
.
Crie nosso lar doce home
. Vou apenas atribuir o espaço restante a ele.
# lvcreate -l 100%FREE volume -n home
Isso criará /dev/mapper/volume-home
.
Formate as partições lógicas no volume LVM.
Formate nossas partições root
e home
.
# mkfs.ext4 /dev/mapper/volume-root
# mkfs.ext4 /dev/mapper/volume-home
Monte a partição /dev/sda
em /mnt
. Este é o nosso /
:
# mount /dev/sda3 /mnt
Crie um ponto de montagem /boot
:
# mkdir /mnt/boot
Monte /dev/sda1
na partição /mnt/boot
. Este será o nosso /boot
:
# mount /dev/sda1 /mnt/boot
Crie um ponto de montagem /home
:
# mkdir /mnt/home
Monte /dev/sda4
na partição /mnt/home
. Este será nosso /home
:
# mount /dev/sda1 /mnt/home
Monte a partição /dev/mapper/volume-root
em /mnt
. Este é o nosso /
:
# mount /dev/mapper/volume-root /mnt
Crie um ponto de montagem /boot
:
# mkdir /mnt/boot
Monte /dev/sda1
na partição /mnt/boot
. Este será o nosso /boot
:
# mount /dev/sda1 /mnt/boot
Crie um ponto de montagem /home
:
# mkdir /mnt/home
Monte /dev/mapper/volume-home
na partição /mnt/home
. Este será nosso /home
:
# mount /dev/mapper/volume-home /mnt/home
Não precisamos montar swap
, pois ele já está habilitado.
Agora vamos instalar os pacotes base
, linux
, linux-firmware
e base-devel
em nosso sistema.
# pacstrap /mnt base base-devel linux linux-zen linux-firmware
Vou instalar linux-zen
pois ele possui os módulos necessários para jogos.
O pacote base
não inclui todas as ferramentas da instalação live, portanto a instalação de outros pacotes pode ser necessária para um sistema base totalmente funcional. Em particular, considere instalar:
software necessário para rede,
dhcpcd
: daemon cliente DHCP compatível com RFC2131iwd
: Daemon sem fio da Internetinetutils
: Uma coleção de programas de rede comunsiputils
: ferramentas de monitoramento de rede, incluindo ping
utilitários para acessar partições RAID
ou LVM
,
lvm2
: utilitários do Logical Volume Manager 2 ( se você estiver configurando um sistema de arquivos criptografado com LUKS/LVM, inclua-o no pacstrap )Zram
zram-generator
um(s) editor(es) de texto,
nano
vim
vi
pacotes para acessar documentação nas páginas man e info,
man-db
man-pages
Microcódigo
intel-ucode
/ amd-ucode
ferramentas:
git
: o sistema de controle de versão distribuído rápidotmux
: Um multiplexador de terminalless
: Um programa baseado em terminal para visualizar arquivos de textousbutils
: Utilitários de dispositivos USBbash-completion
: conclusão programável para o shell bashutilitários de espaço do usuário para o gerenciamento de sistemas de arquivos que serão usados no sistema,
ntfs-3g
: driver e utilitários do sistema de arquivos NTFSunrar
: O programa de descompactação RARunzip
: Para extrair e visualizar arquivos em arquivos .zip
p7zip
: arquivador de arquivos de linha de comando com alta taxa de compactaçãounarchiver
: unar
e lsar
: ferramentas Objective-C para descompactar arquivos compactadosgvfs-mtp
: Implementação de sistema de arquivos virtual para GIO
(backend MTP
; Android, media player)libmtp
: Implementação de biblioteca do Media Transfer Protocolandroid-udev
: regras do Udev para conectar dispositivos Android à sua caixa Linuxmtpfs
: Um sistema de arquivos FUSE que suporta leitura e gravação de qualquer dispositivo MTPxdg-user-dirs
: Gerencie diretórios de usuários como ~/Desktop
e ~/Music
Essas ferramentas serão úteis mais tarde. Então, futuro eu , instale-os.
# genfstab -U /mnt >> /mnt/etc/fstab
Verifique o arquivo /mnt/etc/fstab
resultante e edite-o em caso de erros.
Agora, mude o root para o sistema recém-instalado
# arch-chroot /mnt /bin/bash
Uma seleção de fusos horários pode ser encontrada em /usr/share/zoneinfo/
. Como estou nas Filipinas, usarei /usr/share/zoneinfo/Asia/Manila
. Selecione o fuso horário apropriado para o seu país:
# ln -sf /usr/share/zoneinfo/Asia/Manila /etc/localtime
Execute hwclock
para gerar /etc/adjtime
:
# hwclock --systohc
Este comando assume que o relógio do hardware está definido para UTC.
A locale
define qual idioma o sistema usa e outras considerações regionais, como denominação de moeda, numerologia e conjuntos de caracteres. Os valores possíveis estão listados em /etc/locale.gen
. Remova o comentário en_US.UTF-8
, bem como outras localizações necessárias.
Remova o comentário en_US.UTF-8 UTF-8
e outras localidades necessárias em /etc/locale.gen
, salve e gere-as com:
# locale-gen
Crie o arquivo locale.conf
e defina a variável LANG adequadamente:
# locale > /etc/locale.conf
Se você definiu o layout do teclado anteriormente, torne as alterações persistentes em vconsole.conf
:
# echo "KEYMAP=us" > /etc/vconsole.conf
Não está usando us
layout? Substitua-o, estúpido.
Crie o arquivo de nome de host. Neste guia usarei apenas MYHOSTNAME
como nome de host. Hostname é o nome do host do host. A cada 60 segundos, passa um minuto em África.
# echo "MYHOSTNAME" > /etc/hostname
Abra /etc/hosts
para adicionar entradas correspondentes aos hosts
:
127.0.0.1 localhost
::1 localhost
127.0.1.1 MYHOSTNAME.localdomain MYHOSTNAME
Se o sistema tiver um endereço IP permanente, ele deverá ser usado em vez de 127.0.1.1
.
A criação de um novo initramfs geralmente não é necessária, porque o mkinitcpio foi executado na instalação do pacote do kernel com o pacstrap. Isto é importante se você estiver configurando um sistema com criptografia!
```
# mkinitcpio -P
```
DO NOT FORGET TO RUN THIS BEFORE REBOOTING YOUR SYSTEM!
Abra /etc/mkinitcpio.conf
com um editor:
Neste guia, existem duas maneiras de configurar o initramfs, udev
(padrão) e systemd
. Se você está planejando usar plymouth
(splashcreen), é aconselhável usar um initramfs baseado em systemd
.
initramfs baseado em udev (padrão).
Encontre o array HOOKS
e altere-o para algo assim:
HOOKS=(base udev autodetect keyboard modconf block encrypt lvm2 filesystems fsck)
initramfs baseado em systemd.
Encontre o array HOOKS
e altere-o para algo assim:
HOOKS=(base systemd autodetect keyboard sd-vconsole modconf block sd-encrypt lvm2 filesystems fsck)
Gere novamente a imagem initramfs:
# mkinitcpio -P
NÃO SE ESQUEÇA DE EXECUTAR ISSO ANTES DE REINICIAR SEU SISTEMA!
# dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress
Defina as permissões corretas
# chmod 0600 /swapfile
Depois de criar o arquivo de tamanho correto, formate-o para trocar:
# mkswap -U clear /swapfile
Ative o arquivo de troca
# swapon /swapfile
Finalmente, edite a configuração do fstab para adicionar uma entrada para o arquivo de troca em /etc/fstab
:
/swapfile none swap defaults,pri=10 0 0
# pacman -S zram-generator
Vamos criar um arquivo de configuração em /etc/systemd/zram-generator.conf !
Eu prefiro ter METADE da minha RAM TOTAL como tamanho zswap. Meu laptop tem 4 núcleos, então vou distribuí-lo para QUATRO dispositivos zram. Então vou usar esta configuração:
[zram0]
zram-size = ram/8
compression-algorithm = zstd
swap-priority = 100
[zram1]
zram-size = ram/8
compression-algorithm = zstd
swap-priority = 100
[zram2]
zram-size = ram/8
compression-algorithm = zstd
swap-priority = 100
[zram3]
zram-size = ram/8
compression-algorithm = zstd
swap-priority = 100
Não há necessidade de ativar/iniciar nada, ele inicializará automaticamente os dispositivos zram! Basta reiniciar e executar swapon -s
para verificar a troca que você possui.
multilib
e AUR
Habilite os repositórios multilib e AUR em /etc/pacman.conf
. Abra-o com o editor de sua preferência:
Remova o comentário multilib
(remova # do início das linhas). Deveria ficar assim:
[multilib]
Include = /etc/pacman.d/mirrorlist
Adicione as seguintes linhas no final do seu /etc/pacman.conf
para ativar o repositório AUR:
[archlinuxfr]
SigLevel = Never
Server = http://repo.archlinux.fr/$arch
pacman
Você pode habilitar os "ovos de páscoa" e guloseimas no pacman
, o gerenciador de pacotes do archlinux.
Abra /etc/pacman.conf
e encontre # Misc options
.
Para adicionar cores ao pacman
, remova o comentário Color
. Em seguida, adicione Pac-Man
ao pacman
adicionando ILoveCandy
na string Color
. Para ativar downloads paralelos, remova o comentário também:
Color
ILoveCandy
ParallelDownloads = 3
Para verificar se você adicionou os repositórios com sucesso e habilitou os ovos de páscoa, execute:
# pacman -Syu
Se a atualização retornar um erro, abra pacman.conf
novamente e verifique se há erros humanos. Sim, você estragou tudo.
Defina a senha root
:
# passwd
Adicione uma nova conta de usuário. Neste guia, usarei apenas MYUSERNAME
como o nome de usuário do novo usuário, além da conta root
. (Minha frase parece redundante, hein?) Claro, altere o nome de usuário de exemplo pelo seu próprio:
# useradd -m -g users -G wheel,storage,power,video,audio,rfkill,input -s /bin/bash MYUSERNAME
Isso criará um novo usuário e sua pasta home
.
Defina a senha do usuário MYUSERNAME
:
# passwd MYUSERNAME
Se você quiser um privilégio de root no futuro usando o comando sudo
, você mesmo deve conceder um:
# EDITOR=vim visudo
Remova o comentário da linha (Remover #):
# %wheel ALL=(ALL) ALL
Sim, é aqui que instalamos o bootloader. Estaremos usando systemd-boot
, então não há necessidade de grub2
.
Instale o gerenciador de inicialização:
Iremos instalá-lo em /boot
mountpoint (partição /dev/sda1
).
# bootctl --path=/boot install
Crie uma entrada de inicialização /boot/loader/entries/arch.conf
e adicione estas linhas:
```
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=/dev/sda3 rw
```
If your `/` is not in `/dev/sda3`, make sure to change it.
Save and exit.
Lembra dos dois tipos de initramfs anteriores? Cada tipo precisa de parâmetros de kernel específicos. Portanto, também há dois tipos de entradas aqui. Lembre-se de que volume
é o nome do grupo de volumes e /dev/mapper/volume-root
é o caminho para /
.
initramfs baseado em udev
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options cryptdevice=UUID=/DEV/SDA2/UUID/HERE:volume root=/dev/mapper/volume-root rw
Substitua /DEV/SDA2/UUID/HERE
pelo UUID da sua partição LVM
. Você pode verificar isso executando blkid /dev/sda2
. Observe que o parâmetro cryptdevice
não é suportado pelo plymouth, portanto é aconselhável usar initramfs baseado em systemd se você estiver planejando usá-lo.
Dica: Se você estiver usando vim
, poderá escrever o UUID mais facilmente digitando :read ! blkid /dev/sda2
e pressione Enter. Em seguida, manipule a saída usando o modo visual.
initramfs baseado em systemd
title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options rd.luks.name=/DEV/SDA2/UUID/HERE=volume root=/dev/mapper/volume-root rw
Substitua /DEV/SDA2/UUID/HERE
pelo UUID da sua partição LVM
. Você pode verificar isso executando blkid /dev/sda2
.
Dica: Se você estiver usando vim
, poderá escrever o UUID mais facilmente digitando :read ! blkid /dev/sda2
e pressione Enter. Em seguida, manipule a saída usando o modo visual.
Atualizar configuração do bootloader
# vim /boot/loader/loader.conf
Exclua todo o seu conteúdo e substitua-o por:
default arch.conf
timeout 0
console-mode max
editor no
Os fabricantes de processadores lançam atualizações de estabilidade e segurança para o microcódigo do processador. Essas atualizações fornecem correções de bugs que podem ser críticas para a estabilidade do seu sistema. Sem eles, você poderá enfrentar travamentos falsos ou interrupções inesperadas do sistema que podem ser difíceis de rastrear.
Se você não instalou usando pacstrap, instale o microcódigo:
Para processadores AMD:
# pacman -S amd-ucode
Para processadores Intel:
# pacman -S intel-ucode
Se a instalação do Arch estiver em uma unidade removível que precisa ter microcódigo para ambos os processadores do fabricante, instale ambos os pacotes.
Carregue o microcódigo. Para systemd-boot
, use a opção initrd
para carregar o microcódigo, antes do ramdisk inicial, como segue:
# sudoedit /boot/loader/entries/entry.conf
title Arch Linux
linux /vmlinuz-linux
initrd /CPU_MANUFACTURER-ucode.img
initrd /initramfs-linux.img
...
Substitua CPU_MANUFACTURER
por amd
ou intel
dependendo do seu processador.
Para habilitar os daemons de rede em sua próxima reinicialização, você precisa habilitar dhcpcd.service
para conexão com fio e iwd.service
para conexão sem fio.
# systemctl enable dhcpcd iwd
Saia do ambiente chroot digitando exit
ou pressionando Ctrl + d . Você também pode desmontar todas as partições montadas depois disso.
Finalmente, reboot
.
Se a sua instalação for um sucesso, então sim!!! Caso contrário, você deveria começar a questionar sua própria existência. Seus pais estão orgulhosos de você?