1 réponse
Ecran bleu sous linux :-) Soit ton grub ne pointe pas vers le bon filesystem, soit ton noyau ne prend pas en charge ton disque dur. Il faudrait que tu nous dise si tu utilises un noyau standard ou si c'est un noyau fait maison.
Si c'est un noyau standard c'est a priori plutôt le grub qui est faux, il ne référence pas la bonne partition (/) pour lancer linux. Il faudrait alors que tu démarres sur un live CD (CD d'installation ubuntu, CD de knoppix...) et que tu nous donne le résultat de la commande :
Exemple :
Ici ce PC a un disque SATA (/dev/sda) décomposé en 7 partitions. Si tu as un disque IDE ce sera /dev/hda (adapte la suite en conséquence). Si tu as plusieurs disques ils seront notés /dev/sdb (/dev/hdb), /dev/sdc ...
Le but du jeu c'est ensuite de trouver quel device correspond à ta partition /. Ici on voit tout de suite que les partitions susceptibles d'être / sont /dev/sda6 et /dev/sda7. Comment savoir laquelle est la bonne ? Tout ce qui suit est à faire en root ou avec un sudo. Pour passer en root tape sur un CD ubuntu :
Sinon tape simplement :
Tout d'abord crée des points de montage. Par rapport à cet exemple :
Ensuite on monte les deux partitions :
Il suffit ensuite de regarder ce qu'elles contiennent :
Dans mon cas /dev/sda6 correspond à /home et /dev/sda7 à /. C'est donc /dev/sda7 qui nous intéresse (note bien ce nom quelque part). La commande chroot va permettre de faire "comme si" on avait démarré normalement :
A présent tout se passe comme si /mnt/sda7 était devenu / (et donc comme si tu avais démarré normalement sur ton disque dur. Il s'agit a priori de corriger le fichier de configuration de grub :
Ici le passage qui nous intéresse c'est la ligne root du noyau sur lequel tu veux démarrer :
Le premier chiffre (0) correspond à /dev/sda (ce serait un 1 si c'était /dev/sdb ou /dev/hdb). Donc là c'est bon car on veut effectivement démarrer sur /dev/sda7. Le second chiffre (6) correspond à la partition, numérotées dans grub à partir de 0 (il faut donc retirer 1 !) donc c'est bien /dev/sda7. Autre exemple : /dev/sdb3 aurait été noté (hd1,2). Une fois le grub corrigé de manière cohérente, sauve et quitte (ctrl x) puis tape :
Il ne reste plus qu'à quitter proprement. Toujours en root :
Au reboot tout devrait rentrer dans l'ordre.
Note que grub peut être modifié "on the fly" au démarrage (si tu t'aperçois en particulier que tu as mal corrigé /boot/grub/menu.lst) en appuyant sur e quand il s'affiche. Attention car les modifications seront sauvé juste pour ce démarrage si tu utilises cette méthode, dans tout les cas il faudra corriger /boot/grub/menu.lst.
Bonne chance
Si c'est un noyau standard c'est a priori plutôt le grub qui est faux, il ne référence pas la bonne partition (/) pour lancer linux. Il faudrait alors que tu démarres sur un live CD (CD d'installation ubuntu, CD de knoppix...) et que tu nous donne le résultat de la commande :
sudo fdisk -l
Exemple :
/dev/sda1 1 15 120456 de Dell Utility /dev/sda2 * 16 3906 31254457+ 7 HPFS/NTFS /dev/sda3 3907 9729 46773247+ 5 Extended /dev/sda5 4926 5434 4088511 82 Linux swap / Solaris /dev/sda6 5435 9729 34499556 83 Linux /dev/sda7 3907 4925 8185054+ 83 Linux
Ici ce PC a un disque SATA (/dev/sda) décomposé en 7 partitions. Si tu as un disque IDE ce sera /dev/hda (adapte la suite en conséquence). Si tu as plusieurs disques ils seront notés /dev/sdb (/dev/hdb), /dev/sdc ...
Le but du jeu c'est ensuite de trouver quel device correspond à ta partition /. Ici on voit tout de suite que les partitions susceptibles d'être / sont /dev/sda6 et /dev/sda7. Comment savoir laquelle est la bonne ? Tout ce qui suit est à faire en root ou avec un sudo. Pour passer en root tape sur un CD ubuntu :
sudo su -
Sinon tape simplement :
su -
Tout d'abord crée des points de montage. Par rapport à cet exemple :
mkdir -p /mnt/sda6 mkdir -p /mnt/sda6
Ensuite on monte les deux partitions :
mount -t ext3 /dev/sda6 /mnt/sda6 mount -t ext3 /dev/sda6 /mnt/sda7
Il suffit ensuite de regarder ce qu'elles contiennent :
ls /mnt/sda6 ls /mnt/sda7
Dans mon cas /dev/sda6 correspond à /home et /dev/sda7 à /. C'est donc /dev/sda7 qui nous intéresse (note bien ce nom quelque part). La commande chroot va permettre de faire "comme si" on avait démarré normalement :
chroot /mnt/sda7
A présent tout se passe comme si /mnt/sda7 était devenu / (et donc comme si tu avais démarré normalement sur ton disque dur. Il s'agit a priori de corriger le fichier de configuration de grub :
nano /boot/grub/menu.lst
Ici le passage qui nous intéresse c'est la ligne root du noyau sur lequel tu veux démarrer :
title Ubuntu 7.10, kernel 2.6.22-14-386 root (hd0,6) kernel /boot/vmlinuz-2.6.22-14-386 root=UUID=1046e6f4-5b21-482c-a5fa-5c5874f540a3 ro quiet splash initrd /boot/initrd.img-2.6.22-14-386
Le premier chiffre (0) correspond à /dev/sda (ce serait un 1 si c'était /dev/sdb ou /dev/hdb). Donc là c'est bon car on veut effectivement démarrer sur /dev/sda7. Le second chiffre (6) correspond à la partition, numérotées dans grub à partir de 0 (il faut donc retirer 1 !) donc c'est bien /dev/sda7. Autre exemple : /dev/sdb3 aurait été noté (hd1,2). Une fois le grub corrigé de manière cohérente, sauve et quitte (ctrl x) puis tape :
dpkg-reconfigure grub
Il ne reste plus qu'à quitter proprement. Toujours en root :
exit umount /mnt/sda6 umount /mnt/sda7 reboot
Au reboot tout devrait rentrer dans l'ordre.
Note que grub peut être modifié "on the fly" au démarrage (si tu t'aperçois en particulier que tu as mal corrigé /boot/grub/menu.lst) en appuyant sur e quand il s'affiche. Attention car les modifications seront sauvé juste pour ce démarrage si tu utilises cette méthode, dans tout les cas il faudra corriger /boot/grub/menu.lst.
Bonne chance