sexta-feira, 5 de abril de 2013

Miúdos de clonagens manuais de partições (II)

[Atualização - 21/06/2013] Correções: Miúdos de clonagens manuais de partições (III)

Em Clonagem manual de partições com o Partclone (II) comentei que é recomendável mudar o UUID do sistema de arquivos quando ele for usado em mais de uma máquina. Uma medida de saneamento. Entretanto, existe outra informação que é prudente alterar: o machine-id. É um identificador único por instalação e que não deve mudar depois de definido.

São dois arquivos relacionados:

/var/lib/dbus/machine-id (D-Bus)
/etc/machine-id          (systemd)

O primeiro foi o precursor. Depois, o systemd trouxe o seu em /etc.

No openSUSE 12.3, /var/lib/dbus/machine-id e /etc/machine-id são diferentes, o que não faz sentido. Olhando o código do systemd, uma solução genérica me parece a seguinte:

- Apagar /etc/machine-id.
- Colocar um novo UUID em /var/lib/dbus/machine-id a cada restauração do sistema de arquivos.

Durante o boot, o systemd detecta que /etc/machine-id não existe e cria-o automaticamente com o mesmo conteúdo de /var/lib/dbus/machine-id. Assim, existirá um único machine-id na máquina. A propósito, o journal (1, 2, 3) armazena seus dados na pasta /var/log/journal/<machine-id>.

Na lista de comandos da série de posts sobre o assunto, precisamos adicionar depois do sistema de arquivos ter sido montado para a reinstalação do GRUB2:

# rm -f /mnt/fedora/etc/machine-id
# dbus-uuidgen >/mnt/fedora/var/lib/dbus/machine-id

Aproveitamos e removemos o arquivo "pack" do systemd-readahead. Já que o FSArchiver cria um novo sistema de arquivos, não existe garantia que o kernel escreverá cada arquivo na mesma localização anterior. Com o Partclone também variará se o particionamento não for exatamente o mesmo ou se o sistema de arquivos for redimensionado. Não custa nada removê-lo por garantia. Na próxima inicialização, será recriado:

# rm -f /mnt/fedora/.readahead

Com isso, está tudo no lugar para distribuir uma mesma imagem para várias máquinas diferentes. Postarei depois um shell script que uso para este fim.

[Atualização - 09/10/2013] O bug do openSUSE ter /var/lib/dbus/machine-id e /etc/machine-id diferentes será corrigido no 13.1: https://bugzilla.novell.com/show_bug.cgi?id=831626

Nenhum comentário:

Postar um comentário