Se você quer ir direto ao ponto, pula o texto e começa ler a partir do “conclusão”.
Olá. Já faz um tempo que eu tava tentando criar um template do Manjaro Linux em uma VM que eu fiz, mas até agora não consegui, e descobri o motivo.
Embora eu tenha conseguido criar a VM de template, e instalar o Manjaro nela, quando usei esse template pra fazer uma appVM, a appVM não salvava os dados. Depois de ler uma documentação do Qubes, descobri que em uma appVM padrão do Qubes, existem 4 discos vituais, os xvd (xen virtual block device).
Os discos em uma appVM padrão são:
-
xvda -
Aqui é onde fica a raiz do sistema operacional, que é pega do template. Contém basicamente tudo que esteja fora do diretório/home
¹.
Qualquer coisa modificada nesse disco será descartada após desligar a appVM. -
xvdb -
Os dados que você salva na sua appVM ficam aqui. É o único disco que salva as modificações feitas nele. O diretório/home
é montado aqui, ou seja, tudo que for colocado no diretório/home
vai ficar nesse disco. -
xvdc -
Aqui é colocado um swap (que é tipo usar um pedaço do disco como memória ram) , e as modificações temporárias feitas fora do/home
.
Qualquer coisa modificada nesse disco será descartada após desligar a appVM -
xvdd -
Onde fica o kernel da appVM. O kernel que for colocado aqui, vem do diretório/var/lib/qubes/vm-kernels
Qualquer coisa modificada nesse disco será descartada após desligar a appVM
(Como minha appVM não usa um kernel vindo do Qubes, ela só tem os 3 primeiros discos.)
Enfim, na minha primeira instalação do Manjaro, eu instalei TUDO, inclusive o /home
, no disco xvda. Como já escrevi,
Qualquer coisa modificada nesse disco será descartada após desligar a appVM
Isso explica porque ela não estava salvando os dados.
Eu pensei que a solução seria apenas criar uma partição no disco xvdb, e montar ela no diretório /home
, ou seja, mandar salvar o que estivesse no /home
, no disco xvdb.
O problema é que quando eu fiz isso no meu template, a appVM nem terminava do bootar, e tinha apenas interface de texto, dizendo que não conseguia encontrar o /home
. Depois de reler essa parte da documentação, percebi que:
nada do disco xvdb do seu template vai ser copiado para o disco xvdb da appVM
Depois bootar a appVM e usar cli, eu vi que o disco xvdb estava completamente vazio. Não tinha nem tabela de partição. Consegui criar uma partição no xvdb da minha appVM, mas quando fui configurar o /etc/fstab
para montar a partição no /home
, persebi que não estava funcionando. Aí eu percebi que o arquivo fstab
fazia parte da raiz do OS, e estava sendo escrito no disco xvda. Como disse antes,
Qualquer coisa modificada nesse disco será descartada após desligar a appVM
Conclusão
Se você instalar todo o seu OS no disco xvda do seu template, as appVMs desse template vão agir como disposableVMs, descartando toda mudança feita nela.
Se você instalar parte do seu OS no xvda, e instalar o /home
no disco xvdb, você vai presisar colocar algum programa pra ser executado durante o boot que monte a partição do disco xvdb no /home
, e se a partição não existir, criá-la.
Observações
Já que eu sou um iniciante, é provável que haja algum erro no meu texto. Se perceberem, por favor me corrijam.
1- Técnicamente, é tudo que esteja fora do diretório /rw/
, mas pra simplificar, eu disse apenas /home
.