Duas causas possíveis para o erro acima são (supondo que a instalação não esteja completamente interrompida):
a) O Grub não está carregando a raiz correta para o boot de 14.04
b) A entrada para root no fstab da instalação 14.04 e / ou initrd está quebrada.
Dados os comentários em questão, parece improvável que a) seja a causa. Razão é que substituindo com root = / dev / sda6 no grub não ajudou. As entradas do 12.04 grub parecem corretas, mas é provável que a instalação atual do grub seja atualmente a partir de 14.04 (pode ser verificada a partir das entradas mostradas na página de boot grub seria de 14.04 e 12.04 estará na tela alternativa). Portanto, substituir com 12,04 grub pode ser tentado em primeiro lugar, como mencionado, é provável que não seja o problema. Do trabalho 12.04 ambiente:
sudo grub-install /dev/sda
Confirme se o grub tem algum timeout configurado para ativar a seleção de uma opção: sudo gedit /etc/default/grub
, GRUB_HIDDEN_TIMEOUT e GRUB_TIMEOUT devem ser diferentes de zero 10 (por 10 segundos) e, em seguida, executar sudo update-grub
. A reinicialização agora mostrará 12.04 na tela de boot frontal, enquanto 14.04 estará na tela alternativa. Se o 14.04 funcionar agora, estamos prontos e podemos apenas instalar o grub do 14.04 executando sudo grub-install /dev/sda
do ambiente 14.04. Caso contrário, tentaremos consertar b) como mencionado a seguir.
Existem duas maneiras de fazer b). Uma é inicializar a partir do live CD, montar a instalação existente e depois consertá-la. Outro é corrigir a partir da instalação 12.04 de trabalho. Eu irei elaborar o segundo, embora a primeira opção seja bem parecida, com a única diferença sendo a inicialização no live CD em vez da instalação 12.04 existente.
Após a inicialização em 12.04, primeiro descarte o shell do root para evitar invocações sudo
repetidas: sudo -i
.
Agora vamos montar a instalação 14.04 em algum lugar (digamos, /mnt/trusty
) e chroot
nela, o que fará com que o 14.04 seja instalado como a nova raiz desse shell (e efetivamente torne o shell como 14.04). Nos velhos tempos do Linux, isso era suficiente para operar em um ambiente 14.04 a partir de um shell, mas em novos kernels a maioria dos arquivos de dispositivos em /dev
se tornaram dinâmicos e substituídos pelo daemon udev
, então requer a criação manual de muitas coisas primeiro. No entanto, para os nossos propósitos de consertar o fstab / initrd, ele deve estar bem como está. Ainda assim, teremos que fazer algumas coisas para evitar avisos / erros - copie o mtab atual e monte o proc.
mkdir /mnt/trusty
mount /dev/sda6 /mnt/trusty
cp /etc/mtab /mnt/trusty/etc/mtab
Neste ponto, estamos prontos para verificar e corrigir o fstab, antes de chroot
ing e, em seguida, gerar novamente a imagem initrd do kernel 14.04. Portanto, abra-o: gedit /mnt/trusty/etc/fstab
e verifique se a primeira linha não comentada tem o UUID correto para o ponto de montagem da raiz (/). Neste caso, vimos que o UUID da raiz do /4 / dev / sda6 do 14.04 é ee707b14-31a7-4f86-a6e5-1b9aa38bdd68
, portanto, verifique se fstab também diz o mesmo que corrija o UUID, salve fstab e feche. Agora podemos regenerar o initrd:
chroot /mnt/trusty
mount -t proc proc /proc
update-initramfs -k all -c
Isso deve terminar sem erros. Então desmonte / proc, saia de chroot
environment e desmonte 14.04:
umount /proc
exit
umount /mnt/trusty
Agora reinicie e tente iniciar o 14.04. Se agora começar bem, substitua pelo grub 14.04 como mencionado anteriormente: sudo grub-install /dev/sda
do ambiente 14.04. Também será uma boa ideia regenerar o initrd a partir do ambiente 14.04, para o caso de o ambiente chroot ter algumas diferenças: sudo update-initramfs -k all -c
.