INSTALAR O SLACKWARE 14.1 EM DRIVE USB

PREPARAÇÃO DO AMBIENTE

 

Configurações dos computadores utilizados:

Notebook:

  • Chip gráfico switchable Radeon 6770M
  • Disco /dev/sda com Windows 7 de fábrica

Computador desktop:

  • Chip gráfico NVIDIA GTX980
  • Disco /dev/sda com Windows 8.1

Iniciei a instalação pelo notebook, então foi plugado um HD externo de 320 GB utilizando um case na USB 3.0 (fica lento na USB 2.0! Mas nem tanto!!!).

Inicie o boot na imagem de instalação do Slackware Current.

O objetivo do artigo não é ensinar como instalar o Slackware, então deverás procurar como fazê-lo caso sinta alguma dificuldade (se é que tem dificuldade no Slackware).

O disco externo foi localizado como /dev/sdb, então eu particionei em 3, um swap, uma raiz e uma home, sendo assim realiza-se a instalação completa (full instalation).

Ao final da instalação, faça a instalação manual do LILO, gravando o boot exclusivamente na MBR do disco externo (no meu caso/dev/sdb), assim já teremos o /etc/lilo.conf ajustado.

Instalação concluída, mas se você iniciar o sistema por meio do HD externo (não esqueça de configurar o boot na inicialização do PC!!!), terás um KERNEL PANIC!!!

Então o que fazer???

AMBIENTE CHROOT

Como exitem zilhões de posts sobre o que é chroot vamos resumir…

chroot é a possibilidade de “enjaular” uma raiz de arquivos (pasta ou afins), quem está dentro do chroot não pode acessar o conteúdo do sistema de arquivos fora do nível especificado, sendo possível mesmo rodar outro sistema dentro do mesmo (sem virtualização).

Voltando…
Como o sistema não vai inicializar, então utilizamos o sistema em modo chroot.

Dar-se boot na mídia de instalação do Slackware, criamos uma pasta para montar o sistema…

Para identificar em qual dispositivo está seu sistema utilizamos o fdisk para localizar:

# fdisk -l

No meu caso tenho:

Dispositivo Inicializar   Início       Fim   Setores Tamanho Id Tipo
/dev/sdb1                    2048  16779263  16777216      8G 82 Linux swap
/dev/sdb2   *            16779264 268437503 251658240    120G 83 Linux
/dev/sdb3               268437504 625142447 356704944  170,1G 83 Linux

Então monto o /dev/sdb2 como raiz:

# mkdir /hd
# mount /dev/sdb2 /hd
# chroot /hd
# mount -t proc proc proc
# mount -t sysfs sys sys
# mount /home

IDENTIFICANDO OS DISCOS VIA UUID

Durante o boot, seu disco pode ser alocado em um nome de dispositivo diferente do qual ele foi instalado, então se utilizamos por exemplo o /dev/sdb2 como raiz, ele pode não ser localizado, e aí temos um problema.

Para isto temos o UUID que significa: Universally Unique IDentifier, que é um identificador único gerado de acordo com o hardware.
Neste caso então o disco poderá ser identificado independente de onde estiver.

Para tal, criamos um arquivo de textos onde conterá os UUIDs de todas as partições do HD USB para servir como referência nas configurações seguintes.

Neste momento meu HD externo é /dev/sdb e este deverá ser adaptado de acordo com o seu hardware!

# blkid /dev/sdb1 >> /root/discos.txt (swap)
# blkid /dev/sdb2 >> /root/discos.txt (/)
# blkid /dev/sdb3 >> /root/discos.txt (/home)

Dentro do /root/discos.txt teremos as UUID para copiar e colar nas configs a seguir…

CONFIGURANDO FSTAB, INITRD E LILO

 

O /etc/fstab é o arquivo que contém nossos pontos de montagem do sistema, ou seja, informa ao sistema onde localizar suas partições.

Utilizando os UUIDs do arquivo criado anteriormente /root/discos.txt:

Podemos copiar e colar utilizando seu editor de textos do coração para facilitar a operação. Exemplo do meu /etc/fstab:

UUID=0c7a5785-e705-4e94-8aa0-4a8c85e9793b swap swap defaults   0   0
UUID=dc15e38c-b7c6-4016-bc36-52dab65daa09 / ext4 defaults      1   1
UUID=3ee5e7e4-5602-42d1-a8dd-cb41e5da3594 /home ext4 defaults  1   2
#/dev/cdrom      /mnt/cdrom       auto        noauto,owner,ro,comment=x-gvfs-show 0   0
/dev/fd0         /mnt/floppy      auto        noauto,owner     0   0
devpts           /dev/pts         devpts      gid=5,mode=620   0   0
proc             /proc            proc        defaults         0   0
tmpfs            /dev/shm         tmpfs       defaults         0   0

CRIAR O INITRD

O initrd é o cara que vai carregar os módulos que precisamos para dar boot no kernel via USB, para criar o mesmo, utilizamos:

# mkinitrd -c /k 3.18.11 -f ext4 -r UUID=dc15e38-b7c6-4016-bc36-52dab65daa09 -m usb_storage:xhci-hcd:mbcache:uas:xhci_pci:ehci_hcd:ehci_pci:loop:ext4:jbd2 -u -o /boot/initrd.gz

Não se esqueça que o parâmetro “/k 3.18.11” acima deve bater com seu kernel, o que pode ser verificado usando:

# uname -r

Bastando alterar se necessário.

FINALIZANDO COM O LILO

E por fim, necessitamos realizar alterações no LILO para que o boot possa funcionar. Altere o final do /etc/lilo.conf arquivo para:

image = /boot/vmlinuz
initrd = /boot/initrd.gz
append = “root=UUID=dc15e38c-b7c6-4016-bc36-52dab65daa09 rootdelay=10”
label = Linux
read-only

Salve o arquivo. Grave o LILO no disco externo:

# lilo -C /etc/lilo.conf -b /dev/sdb

Saia do chroot:

# exit

Remova a mídia de instalação e reinicie o PC…

# reboot

Pronto, Slackware 14.1 Current bootando via USB e em qualquer PC…

Possivelmente se você utilizar esse boot em máquinas (no meu caso o note e o PC de mesa) com chips gráficos diferentes (Radeon Switchable e NVIDIA), antes de iniciar o X deverá configurar o driver de vídeo.

Para o Radeon Switchable, utilizo o driver VESA (que funciona muito bem com GLX, DRI e afins). No PC para NVIDIA, basta instalar o driver NVIDIA (baixado do site), e quando voltar para o notebook executar o instalador do driver com a opção “–uninstall”, ele faz um rollback nas configs e fica show de bola!

O único inconveniente que encontrei foi esse de ficar alternando os drivers de vídeo, porém funciona legal.

Rolar para cima