My Awesome Linux é um repositório pessoal descrevendo minha visão sobre o uso do Linux como desktop.
Tip
Cada distribuição Linux tem a sua própria filosofia e é focada em um propósito.
Teste diferentes distribuições até encontrar a que você julgar ideal.
Por exemplo, considero:
- Alpine Linux - Containers e testes;
- Arch Linux - Desktop;
- Fedora - Desktop e workstation;
- Tails - Privacidade;
- Whonix - Privacidade.
O Linux é amplamente sustentado por diversas comunidades.
Se você é um entusiasta, veja alguns sites úteis:
- Distribuições
- Documentações
- Listas
- Notícias
Important
Evite tutoriais, seu dispositivo e uso certamente são diferentes de outros.
Utilize a documentação de instalação ou o archinstall para uma instalação guiada.
O artigo abaixo complementa, mas não substitui a documentação de instalação.
Usando o GPT fdisk, o layout abaixo será construído.
| Partição | Setor | Tipo | Dispositivo | Nome | Montagem | Formato |
|---|---|---|---|---|---|---|
| 1 | default à +1GiB | EF00 | /dev/device1 | EFI | /mnt/boot | FAT32 |
| 2 | default à default | 8304 | /dev/device2 | system | /mnt | BTRFS |
# Usando o gdisk
gdisk /dev/device
# Usando o sgdisk
sgdisk --zap-all \
--new=1:0:+1GiB --typecode=1:EF00 --change-name=1:EFI \
--new=2:0:0 --typecode=2:8304 --change-name=2:system \
--print \
/dev/deviceNote
O layout utilizado para os subvolumes é o mesmo usado pelo archinstall e sugerido pelo Snapper.
Esse layout garante um isolamento eficiente dos subvolumes.
mkfs.fat -F 32 -n EFI -v /dev/device1
mkfs.btrfs --label system -v /dev/device2
mount LABEL=system -t btrfs /mnt
btrfs subvolume create /mnt/{@,@home,@log,@pkg,@.snapshots}
umount -R /mnt
MOUNT_OPTIONS="X-mount.mkdir,defaults,compress=zstd:1,noatime"
mount -o $MOUNT_OPTIONS,subvol=@ -t btrfs LABEL=system /mnt
mount -o $MOUNT_OPTIONS,subvol=@home -t btrfs LABEL=system /mnt/home
mount -o $MOUNT_OPTIONS,subvol=@log -t btrfs LABEL=system /mnt/var/log
mount -o $MOUNT_OPTIONS,subvol=@pkg -t btrfs LABEL=system /mnt/var/cache/pacman/pkg
mount -o $MOUNT_OPTIONS,subvol=@.snapshots -t btrfs LABEL=system /mnt/.snapshots
mount -m -t vfat -o dmask=0027,fmask=0137 /dev/device1 /mnt/bootAlém dos pacotes essenciais, instale o microcode correspondente.
pacstrap -K /mnt amd-ucode base linux linux-firmware nano networkmanager
nano /etc/locale.gen
# Remova o comentário de "en_US.UTF-8 UTF-8" e "pt_BR.UTF-8 UTF-8"
locale-gen
echo "LANG=en_US.UTF-8" >> /etc/locale.conf
echo "KEYMAP=br-abnt2" >> /etc/vconsole.confTip
Altere as configurações de formato utilizando o ambiente gráfico após a instalação do sistema.
Instale o systemd-boot utilizando o comando bootctl install.
Configure o esp/loader/loader.conf conforme o exemplo loader configuration.
default arch.conf
timeout 4
console-mode max
editor no
Adicione a entry esp/loader/entries/arch.conf conforme o exemplo adding loaders.
title Arch Linux
linux /vmlinuz-linux
initrd /amd-ucode.img
initrd /initramfs-linux.img
options root=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rootflags=subvol=@ rw
Important
Ao usar algum microcode, como a amd-ucode.img, deve-se sempre referenciá-lo antes do initrd principal.
Para utilizar um subvolume como um ponto de montagem, faça o apontamento no loader.
Confira o exemplo mounting subvolume as root.
Tip
UUID, PARTUUID ou semelhante são coisas diferentes.
É possível consultar as identificações de /dev/root_partition usando:
ls -l /dev/disk/by-*
blkid /dev/root_partition
Também é possível usar diretamente o caminho do dispositivo:
options root=/dev/root_partition rw
Valide a configuração bootclt list.
Realize o umount -R /mnt e reinicie o sistema.
Instale alguns dos pacotes básicos:
base-devel
btop
btrfs-progs
curl
fastfetch
firefox
git
gnome
gnome-tweaks
less
noto-fonts
noto-fonts-emoji
noto-fonts-extra
pipewire
pipewire-alsa
pipewire-audio
pipewire-jack
pipewire-pulse
power-profiles-daemon
reflector
smartmontools
sudo
wget
which
wireplumber
xdg-utils
zip
O root deve ser usado apenas em tarefas específicas ao root.
Crie um novo usuário e permita que o grupo wheel acesse o sudo.
Alguns outros exemplos: sudo.
useradd -m -G wheel -s /bin/bash usuario
passwd usuario
sudo EDITOR=nano visudo
# Remova o comentário
# %wheel ALL=(ALL:ALL) ALLUtilize o reflector para atualizar a mirror list.
sudo reflector \
--country BR,US \
--latest 16 \
--protocol https \
--save /etc/pacman.d/mirrorlist \
--sort rate \
--verboseDefina os hosts em /etc/hosts:
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Ative a exibição do número de linhas no nano.
echo "set linenumbers" > ~/.nanorc
sudo systemctl enable gdm.service
sudo systemctl enable NetworkManager
rebootLeia o artigo AMDGPU e entenda o que é necessário.
Os pacotes necessários provavelmente serão: lib32-mesa, lib32-vulkan-radeon, mesa e vulkan-radeon.
Configure também o lm_sensors.
Consulte o artigo shell.
Instale o Extension Manager pelo GNOME Software (Flathub).
Instale e/ou ative as extensões:
Cliboard Indicator;
Removable Drive Menu;
System Monitor.
Consulte o artigo firewall.
Consulte o artigo swap.
Consulte o artigo logs.
Edite o arquivo /etc/pacman.conf:
# Habilite as opções
Color
VerbosePkgLists
# Easter egg, opcional
ILoveCandy
Exemplos básicos para administrar o pacman:
du -hs /var/cache/pacman/pkg/ # Verifica o espaço consumido pelo cache dos pacotes
sudo pacman -Rs # Remove um pacote e suas dependências não exigidas por outros pacotes
sudo pacman -Rns # Remove também os arquivos de configuração
sudo pacman -S pacote # Instala um pacote
sudo pacman -Sc # Remove do cache versões antigas dos pacotes instalados
sudo pacman -Scc # Remove todos os pacotes do cache
pacman -Ss pacote # Busca um pacote no repositório remoto
sudo pacman -Syu # Atualiza o sistema e todos os pacotes
pacman -Qs pacote # Lista um pacote instalado
pacman -Qdqt # Lista dependências que não são requeridas por nenhum pacote
sudo pacman -R $(pacman -Qdqt) # Remove os pacotes listados acimaConsulte o artigo sistemas de arquivos.
Máquinas virtuais e containers proporcionam ambientes controlados, de rápida implementação e descartáveis.
Para utilizar containers, uma maneira bem simples é por meio do Docker:
sudo pacman -S docker
sudo systemctl enable docker.service
sudo systemctl start docker.service
sudo usermod -aG docker $USER
Encerre a sessão e em seguida entre novamente.
Consulte o artigo máquinas virtuais.