Esse problema ocorre quando a linha root=
nas opções de inicialização do kernel não corresponde ao hardware.
Provavelmente, seu novo kernel não está fornecendo ao dispositivo de inicialização o nó /dev/hda
do dispositivo. Existem algumas possibilidades.
-
Pode ser que seu dispositivo agora seja
/dev/hdb
ou algo assim. -
Pode ser que o seu kernel agora esteja usando um driver mais recente para o dispositivo, e seu dispositivo de inicialização é agora
/dev/sda
ou algo assim. Os dispositivos/dev/hd{a..z}
usam o driver PATA mais antigo. Isso se tornou predominante para dispositivos SATA, mas interfaces PATA mais antigas também podem ser acessadas dessa maneira. (O Ubuntu, por exemplo, usa isso por padrão, exceto para unidades ópticas PATA.)
A maneira mais fácil de consertá-lo é inicializar o kernel, esperar que ele seja enviado para um shell e verificar /dev/disk/by-uuid
ou /dev/disk/by-label
para descobrir o dispositivo correto. Então você pode montar o dispositivo, corrigir o argumento root=
em sua configuração do Grub e reinicializar.
Considere usar um rótulo de UUID ou de partição no seu argumento root=
em vez de um dispositivo específico; Desta forma, as mudanças no driver do kernel que renomeiam seu dispositivo não afetarão a inicialização. Você pode encontrar UUIDs e rótulos com tune2fs -l <device>
e pode adicionar um rótulo com sudo tune2fs -L <label> <device>
.
Aqui está o argumento root=
em cada sentido (note que não há aspas):
root=/dev/sda6
root=UUID=94b1e7d5-9fc5-4f44-b5b1-c776afc808d4
root=LABEL=debian-root-volume-label