Já faz um certo tempo que venho acompanhando o Archlinux de perto.   Já tinha uma VM rodando pra testes.  Mas com a decisão da Steam de lançar o device de games steam deck baseado no Arch, eu realmente fiquei tentado a experimentar mais a fundo, como meu sistema principal no desktop.

Antes de mais nada vou deixar claro que como desktop eu não tenho somente um computador.  Tenho um gabinete desktop mesmo, que já descrevi anos atrás no artigo goosfraba, e tenho também o laptop de trabalho.  Eu geralmente passo mais tempo no laptop, que roda Ubuntu.  O meu desktop estava também com Ubuntu, mas rodando o 21.10.  E não tinha reclamações a respeito.  Mas faz um tempo que desejo sair do mundo Debian/Ubuntu por vários motivos.  De comunidade a questão de forma de participação.

Então aproveitando as férias que peguei nesse fim de ano, resolvi partir pra cima da instalação do Arch.   Peço antecipadamente desculpas por ser muita coisa em imagens, mas eu fiz registros dos passos e dificuldades de instalação atráves de imagens em posts no Twitter pra justamente descrever aqui.

Como o computador já roda Ubuntu com LVM, não precisei fazer muita coisa além de criar mais partições que seriam próprias do Arch.  Então simplesmente as criei assim:

lvcreate diskspace -L 10G -n archlinux-root
lvcreate diskspace -L 50G -n archlinux-usr
lvcreate diskspace -L 10G -n archlinux-var

E em teoria isso deveria ser o suficiente.  Parti pra instalação e o primeiro problema foi encontrar o pendrive pra dar boot na instalação do Arch.   Eu tinha criado o pendrive com o comando dd mas eu resolvi seguir à risca a instalação do Arch e refiz o pendrive novamente.

dd if=/usr/local/tmp/ISO/archlinux-2021.12.01-x86_64.iso of=/dev/sdc conv=fsync oflag=direct status=progress

Não que tivesse mudado muita coisa.  Eu precisei mexer nos parâmetros de boot da BIOS pra aceitar o pendrive.  Depois de algumas configurações extras que mais foram mais próximas ao vodoo, eis que consegui o tão almejado boot.

BIOS do computador mostrando opção "EUFI: USB Flash Disk"

O boot do Arch foi um passeio no parque.   Como ele não faz nada automático e você faz tudo manualmente bastou apenas formatar e montar as partições que eu já tinha criado pra seguir com a instalação.

Shell de instalação do Arch mostrando a montagem das partições.

Nos passos de instalação do grub e meio que empaquei.  Eu já tinha o grub instalado na partição UEFI e funcionando no Ubuntu.  Seria o caso de apenas adicionar uma nova entrada no grub.cfg?  E foi

menuentry 'Arch Linux' --class archlinux --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-16a93a2f-e4a6-4ab3-8eee-b33403509ed4' {
        recordfail
        load_video
        gfxmode $linux_gfx_mode
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_gpt
        insmod ext2
        set root='hd0,gpt2'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 --hint='hd0,gpt2'  bfc3c17e-d451-4c35-8c4a-f93b17436783
        else
          search --no-floppy --fs-uuid --set=root bfc3c17e-d451-4c35-8c4a-f93b17436783
        fi
        linux   /vmlinuz-linux root=/dev/mapper/diskspace-archlinux--root init=/usr/lib/systemd/systemd ro net.ifnames=0 biosdevname=0 iommu=pt showopts noquiet nosplash verbose
        initrd  /initramfs-linux.img
}

Com isso eu consegui deixar a opção de boot do Arch disponível.   Existe aí um pequeno problema, o tal elefante na sala: o que acontece quando o Ubuntu atualizar.  Eventualmente eu devo dar boot no Ubuntu e rodar algum upgrade de kernel.  Ao rodar o mkinitram, com certeza vai sobreescrever essa entrada.  Ainda não resolvi esse problema, mas por enquanto sigo usando somente Arch.

Menu do bootloader grub mostrando a opção de Arch Linux para boot.

Então a coisa foi mesmo fácil e bastou apenas apertar o <Enter>...

Boot do Arch quebrado por não encontrar init.

O que deu errado?  E aqui eu comecei a entender um pouco mais do Arch além da superfície.  E essa era meu objetivo desde o início.  Pra entender o problema é preciso olhar como são os diretórios dentro do Arch primeiro.

root@goosfraba /u/bin# ls -l /
total 28
lrwxrwxrwx   1 root root    7 Dec  7 03:41 bin -> usr/bin
drwxr-xr-x   5 root root 4096 Dec 27 21:51 boot
drwxr-xr-x  23 root root 4600 Dec 29 00:12 dev
drwxr-xr-x   3 root root 4096 Jan  1  1970 efi
drwxr-xr-x  90 root root 8192 Dec 29 13:48 etc
drwxr-xr-x  35 root root 4096 Jun  9  2020 home
lrwxrwxrwx   1 root root    7 Dec  7 03:41 lib -> usr/lib
lrwxrwxrwx   1 root root    7 Dec  7 03:41 lib64 -> usr/lib
drwxr-xr-x   2 root root    6 Dec  7 03:41 mnt
drwxr-xr-x  11 root root  154 Dec 29 13:48 opt
dr-xr-xr-x 437 root root    0 Dec 27 21:59 proc
drwxr-x---  14 root root  239 Dec 29 13:27 root
drwxr-xr-x  26 root root  740 Dec 29 00:45 run
lrwxrwxrwx   1 root root    7 Dec  7 03:41 sbin -> usr/bin
drwxr-xr-x   4 root root   29 Dec 27 21:17 srv
dr-xr-xr-x  13 root root    0 Dec 27 21:59 sys
drwxrwxrwt  24 root root 4096 Dec 29 13:48 tmp
drwxr-xr-x  23 root root  332 Jun 19  2018 ubuntu
drwxr-xr-x   9 root root  118 Dec 29 13:48 usr
drwxr-xr-x  14 root root  201 Dec 29 12:58 var

O Arch não tem /bin, /sbin, /lib e /lib64.  Ele joga todos os executáveis em /usr/bin e todas as libs em /usr/lib.  Isso talvez facilite algum tipo de manutenção, mas quebra o princípio de que pra dar boot todo o necessário deveria estar em /bin pra executáveis de usuário e /sbin pra executáveis de root.  Assim como a libc em /lib.  O problema foi que eu tinha criado uma partição /dev/devicemapper/diskspace-arch--usr e montado no /usr, que não é passada no boot, que pede somente a partição root.

Então tive de replanejar minha instalação aumentando a partição raiz e removendo a partição que abrigava o /usr.

Mostrando como aumentar a partição usando LVM and XFS.

E finalmente copiar os dados do que era /usr.

Passos pra migrar o /usr antigo pra um novo.

E finalmente remover a partição criada pra abrigar originalmente o /usr.

Removendo um partição lógica no LVM.

Com isso eu pude finalmente dar boot no Arch e subir o KDE plasma.

Imagem do ambiente desktop KDE Plasma

Mas foi só isso.  Não consegui mexer em mais nada.  O que deu errado?  Primeiramente foi a escolha de KDE que fiz durante a etapa do pacstrap.  Eu escolhi o plasma-desktop e o mesmo não vem completo, o certo era plasma-meta.  Não tinha um shell pra eu abrir como o gnome-terminal nem konsole.  E como habilitei o sddm, então não conseguia voltar pro console virtual usando <ctrl>+<alt>+<F1>.   Fiquei empacado.  E precisei novamente dar boot pelo pendrive pra corrigir isso.

E consegui subir meu ambiente da mesma forma que antes.  Apenas re-criei meu usuário com mesmo UID e GID e montei a mesma partição /home que era do Ubuntu.  Transparentemente.

neofetch logo após a instalação

neofetch com as fontes corrigidas

É nítida a diferença do primeiro screenshot do neofetch pro segundo, em como as fontes melhoraram.  Aos poucos vou instalando e habilitando aquilo que preciso no Arch.

Ambiente desktop (2 telas) com aplicativos funcionando.

Eu de cara já sai com alguns extras funcionando sem mexer, como o Google Chrome, que aparece na imagem do desktop.  Como estava na partição /opt, eu simplesmente montei e re-usei.  Instalei o programa yay pra baixar pacotes faltando como steam e spotify.  Ambos já instalados.  E aos poucos vou arrumando a casa.

Um dos problemas que encontrei foi que minha partição de jogos da steam não aparecia disponível.  Mas estava lá no comando lvs:

root@goosfraba /u/bin# lvs 
 LV                    VG        Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
 archlinux-root        diskspace -wi-ao----  60.00g                                                     
 archlinux-var         diskspace -wi-ao----  10.00g                                                     
 debian                diskspace -wi-a-----  10.00g                                                     
 docker                diskspace -wi-ao----  30.00g                                                     
 home                  diskspace -wi-ao---- 500.00g                                                     
 linux-arch            diskspace -wi-a-----  20.00g                                                     
 opt                   diskspace -wi-ao----   4.00g                                                     
 root                  diskspace -wi-ao----  10.00g                                                     
 steam                 diskspace rwi-aor--- 750.00g                                    100.00           
 swap                  diskspace -wi-a-----  15.00g                                                     
 tmp                   diskspace -wi-ao----   5.00g                                                     
 usr                   diskspace -wi-ao----  95.00g                                                     
 usrlocal              diskspace -wi-ao---- 600.00g                                                     
 var                   diskspace -wi-a-----  50.00g                                                    

O problema era que precisava ativar a partição, que faz mirroring entre os dois HDs que tenho.  Bastou fazer o comando:

lvchange -a y /dev/diskspace/steam

 E meu steam passou a funcionar de novo. 

E como eu já deixei o docker em um partição só sua, bastou montar pra ter novamente os containers que uso disponíveis no Arch.

root@goosfraba /u/bin# docker images 
REPOSITORY            TAG       IMAGE ID       CREATED        SIZE
debian                11.0      6c97952ad9c0   6 days ago     626MB
theiaide/theia-full   latest    de7823cee314   2 months ago   11.5GB
debian                <none>    a178460bae57   3 months ago   124MB
theiaide/theia-full   <none>    9c178198e255   3 months ago   8.86GB

No arch já sai com o python 3.10 funcionando. 

Tela de ipython mostrando versão 3.10.1 do python.

E pra minha surpresa a instalação do suporte à NVIDIA foi fácil e tranquilo.  Mais que no Ubuntu.

Tela do NVIDIA X Server Settings mostrando que está ativa.

Como foi possível ver é bem divertido o uso do Arch e resgata um pouco daquele espírito hacker de fuçar no seu sistema operacional pra ter tudo funcionando.  Eu estou gostando da experiência por equanto.  Acho que agora já posso fazer como o Kretcheu, se bem que Debian eu já não uso faz alguns anos.