Eu tenho um sistema Mandriva Linux que foi atualizado no local usando urpmi
da versão 2010.0 para 2010.1 e depois para 2011.0. Eu me deparei com alguns problemas menores, mas nada que eu não pudesse lidar.
Algumas semanas atrás, o atualizador do Mandriva me informou que, para atualizar o
shorewall
, eu tinha que substituir também
sysvinit
por
systemd
e
systemd-sysvinit
. Naturalmente, eu estava relutante em deixar o atualizador tocar em algo tão crítico quanto o sistema de inicialização sem nenhum motivo, então eu adiei. Naturalmente, o applet de atualização do Mandriva continuou me incomodando. Naturalmente, acabei desistindo e concordei. E, naturalmente, causou confusão o suficiente para o meu sistema não inicializar sozinho.
Ele inicia normalmente, bicos de algumas mensagens e, em seguida, eu recebo muitas mensagens nesse formato:
Starting XXXX aborted because a dependency failed.
em que XXXX é algo relacionado ao sistema de arquivos, seja uma chamada fsck
ou uma montagem do sistema de arquivos. Ele me coloca no shell raiz, onde a dependência que falhou logo se torna óbvia: a maioria dos arrays do MD não foi iniciada. Executando manualmente
# mdadm -As
# mount -a
# systemctl default
nesta ordem permite que o sistema conclua o processo de inicialização.
Eu tenho várias unidades físicas divididas em partições, que são então combinadas em alguns arrays RAID-1 (por exemplo, /boot
) e RAID-5 ( /
, swap e praticamente todo o resto). As partições e os arrays, assim como os sistemas de arquivos que eles contêm, foram criados manualmente e depois o Mandriva Linux foi instalado. Lá onde nenhum problema de nota e tudo funcionou bem, até que systemd
aparecesse.
Eu acho que acompanhei esta questão até certo ponto. O antigo sistema sysvinit
usado para executar /etc/rc.d/rc.sysinit
, que, conforme fornecido pela Mandriva, contém esta linha:
MDADM_RETURN='/sbin/mdadm -As --auto=yes --run 2>&1'
que inicia qualquer matriz MD especificada em /etc/mdadm.conf
que não tenha sido iniciada. Tanto quanto eu posso dizer, este arquivo não é mais usado depois que system
foi instalado e a linha acima foi substituída por essa linha de /lib/systemd/fedora-storage-init
:
[ -r /proc/mdstat -a -r /dev/md/md-device-map ] && /sbin/mdadm -IRs
Infelizmente. meu sistema parece estar perdendo o arquivo /dev/md/md-device-map
, então mdadm
não é executado. Posso pensar em algumas maneiras de "corrigir" esse problema, como editar os scripts systemd
ou modificar meu /boot/initrd.img
para iniciar todos os arrays do MD, mas prefiro fazê-lo de uma maneira que não rompa com o próxima atualização do pacote.
-
Qual é o formato de /dev/md/md-device-map
e como posso criá-lo? Este arquivo é comum? com as versões mais recentes do mdadm
, ou é algo específico do Fedora / Mandriva? Eu vi alguns exemplos nos fóruns do Fedora, mas nada sólido.
-
Qual é a maneira "correta" de corrigir essa falha de inicialização? Prefiro não recorrer a uma cirurgia cerebral se puder evitá-la ...
-
Por que, por que, por que não fiquei com o "Se não está quebrado, não conserte!" máxima? (Sim, isso é retórico ...)