domingo, 8 de junho de 2014

CrunchBang 11 waldorf - LiveUSB Persistente

A utilização de um sistema operativo persistente numa pen drive USB permite executar o sistema operativo em diferentes computadores e guardar todas as alterações efetuadas ao mesmo na mesma pen drive.

No caso do CrunchBang existem também diversos guias mas para versões diferentes ou então com métodos que me pareceram menos óbvios. Assim, e após muitas pesquisas e análises encontrei este guia [1] que contém informação importantíssima, nomeadamente a indicação que o CrunchBang utiliza um sistema antigo do Debian Live (que serve de base ao ambiente live do CrunchBang) e, assim, a documentação oficial do projeto Debian Live [2] não é suportada pelo CrunchBang.

Setup da Pen

Criar as partições necessárias

Serão utilizadas duas partições:
  1. A primeira partição será ext2 com a label persistence e que terá todo o espaço disponível na pen subtraindo o espaço necessário para gravar o ISO.
  2. A segunda partição ext2 e com espaço para gravar o ISO.

Atenção ao caminho do device da pen!

$ sudo fdisk /dev/sdX
n - criar nova partição
p - partição primária
0 - início da partição
+3GB - espaço a ocupar
a - ativar flag de boot para poder arrancar por pen
n - criar nova partição
p - partição primária
[enter] - aceitar início da partição (setor a seguir ao último da anterior)
[enter] - aceitar final da partição (último setor do volume)
w - escrever as alterações a tabela de partições
q - sair

Escrever ISO do CrunchBang para a segunda partição

Caso a segunda partição esteja montada deve ser desmontada antes de se escrever o ISO.

Atenção ao caminho do device da pen!

$ dd if=crunchbang-11-20130506-amd64.iso of=/dev/sdX2; sync
1513472+0 records in
1513472+0 records out
774897664 bytes (775 MB) copied, 359.334 s, 2.2 MB/s


Criar o filesystem para a persistência


Atenção ao caminho do device da pen!

$ mkfs.ext2 -L persistence /dev/sdX1

Configurar a persistência

Há várias hipóteses de configuração da persistência da informação e tal tem que ser feito no ficheiro live-persistence.conf (porque o CrunchBang utiliza uma versão antiga do debian live, senão seria o ficheiro persistence.conf como é documentado oficialmente) na raiz da primeira partição (designada de persistence). Assim, é necessário montar esta partição para que se possa criar e editar o ficheiro.

Persistência Total
Neste caso todos os ficheiros que são alterados ou criados são copiados e guardados na pen. É possível atualizar o sistema, instalar outros programas e alterar configurações e manter tudo isso na pen. Para tal, o ficheiro live-persistence.conf deverá ter apenas uma linha com:
/        union

Persistência Parcial
Se não for pretendido guardar toda a informação é possível definir apenas as definições dos utilizadores e indicar apenas a pasta /home para persistência.

No exemplo seguinte, o ficheiro live-persistence.conf as pastas /home e /opt serão montadas com a opção bind (que é a opção por defeito e pode ficar apenas com o caminho da pasta) pois no ISO não existem informações dos novos utilizadores que serão criados nem software instalado em /opt (esta é uma opção minha, explicada mais à frente na Instalação de Software).
A pasta /boot/grub também será montada desta forma pois é lá que se encontra o grub.cfg responsável pelo arranque da pen (será explicado de seguida em Instalar e Configurar o GRUB) e que assim poderá ser editado facilmente também a partir do sistema persistente.
A opção de montagem das restantes pastas é union que faz a reunião (em tudo análogo à reunião da teoria de conjuntos na matemática) dos ficheiros existentes no ISO com os que ficam na pen nas mesmas pastas, poupando-se assim bastante espaço na pen, pois apenas ficam guardados os novos ficheiros ou os que forem alterados.

/home
/opt
/boot/grub
/etc union
/usr union
/var union
/bin union
/sbin union


Tudo o que for guardado fora destes locais será descartado quando o computador for desligado ao reiniciado.

Nota: Até agora não foi necessário incluir outras pastas, mas com instalações de mais software é provável que seja necessário acrescentar ao live-persistence.conf as pastas /lib, /lib32 ou /lib64 como union.
Também será óbvio que caso sejam configurados serviços ou programas que necessitem guardar informação noutras pastas, as mesmas sejam acrescentadas, por exemplo: /srv ou /root.

Instalar e Configurar o GRUB

A partir deste momento é necessário instalar o GRUB e configurá-lo para que a pen possa arrancar em modo persistente ou efetuar um arranque live.

A documentação relativa ao GRUB2 (1.99) existente na comunidade ubuntu [3] e do dedoimedo [4]. ajuda muito na configuração do GRUB.

Outra ajuda está no ficheiro ISO do CrunchBang em /isolinux/live.cfg.

As opções para o boot de persistência e a forma de funcionamento estão no projeto debian live [2].


Atenção ao caminho do device da pen!


$ grub-install --force --no-floppy --root-directory=/media/persistence /dev/sdX
$ nano /media/persistence/boot/grub/grub.cfg
set timeout=5
set default=0

menuentry "#! 11 - waldorf 64bits - Persistence" {
  linux (hd0,2)/live/vmlinuz boot=live config persistence
  initrd (hd0,2)/live/initrd.img
}

menuentry "#! 11 - waldorf 64bits - Live" {
  linux (hd0,2)/live/vmlinuz boot=live config            
  initrd (hd0,2)/live/initrd.img
}

Nota: Ainda falta confirmar se a partir do sistema live da pen dá para fazer uma instalação limpa num computador.

Configuração do ambiente com persistência

Gestão de utilizadores

É conveniente criar um novo utilizador pois por defeito o ambiente live do CrunchBang permite autologin do utilizador crunchbang e cuja password é live.

Acrescentar o utilizador user e fazer dele colocá-lo como sudoer:
$ sudo adduser user
$ sudo adduser user sudo

Acrescentar uma password à conta de root:
$ sudo su
$ passwd

Remover o utilizador crunchbang (depois de ter trocado para o utilizador criado anteriormente):
$ sudo deluser crunchbang

Para desativar o autologin e alterar o utilizador por defeito é necessário ir a System > User Login Settings e alterar conforme o pretendido.

Teclado

Para definir o teclado português é necessário alterar o ficheiro /etc/default/keyboard e depois reiniciar o computador ou então executar o comando udevadm.
$  sudo nano /etc/default/keyboard
...
XKBLAYOUT=pt
...


$ sudo udevadm trigger --subsystem-match=input --action=change


 Atualização do sistema

$ sudo apt-get update
$ sudo apt-get upgrade


Instalação de software

A instalação de software através de apt-get install irá acrescentar informação à pen, normalmente nas pastas /usr e /var.

Caso se pretenda instalar software extra que não está nos repositórios ou versões mais atualizadas destes é possível instalá-los manualmente em /opt, o que também irá ocupar espaço na pen.

Dúvidas, Problemas e Pensamentos

Depois deste setup não tive ainda grandes problemas, mas deverão surgir com uma utilização do persistente mais intensiva...

De futuro falta garantir que a utilização do ambiente live da pen permite instalar fisicamente uma nova máquina com o crunchbang.

Falta ainda saber se a adição de mais software necessitará da utilização persistente de mais pastas (/lib e afins) na pen.

Referências e Hiperligações


Sem comentários:

Enviar um comentário