Je viens de mettre à jour Ubuntu 12.04 vers 14.04, mais lors de l'installation, grub-install a échoué:
J'ai continué l'installation et espérais régler le problème après. Cependant, j'ai rencontré quelques difficultés. Je n'ai pas redémarré mon système, car je crains qu'il ne puisse pas redémarrer.
C'est l'erreur que j'obtiens toujours lors de l'installation de grub:
$ Sudo grub-install /dev/mapper/isw_cjccfdbihf_Volume0p1
Installing for i386-pc platform.
grub-install: error: cannot find a GRUB drive for /dev/mapper/isw_cjccfdbihf_Volume0p1. Check your device.map.
(J'ai aussi essayé Sudo grub-install /dev/sda
mais il échoue également avec le même message d'erreur.)
La machine semble utiliser une configuration RAID 1. Voici quelques informations:
$ ls -algh /dev/mapper/
total 0
drwxr-xr-x 2 root 120 Aug 12 19:41 .
drwxr-xr-x 16 root 5.2K Aug 12 20:27 ..
crw------- 1 root 10, 236 Jul 28 10:30 control
lrwxrwxrwx 1 root 7 Aug 12 19:41 isw_cjccfdbihf_Volume0p1 -> ../dm-1
lrwxrwxrwx 1 root 7 Aug 12 19:41 isw_cjccfdbihf_Volume0p2 -> ../dm-2
lrwxrwxrwx 1 root 7 Aug 12 19:41 isw_cjccfdbihf_Volume0p5 -> ../dm-3
$ Sudo grub-probe -t device /boot/grub
/dev/mapper/isw_cjccfdbihf_Volume0p1
$ Sudo fdisk -l
Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders, total 488397168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003b681
Device Boot Start End Blocks Id System
/dev/sda1 2048 468514815 234256384 83 Linux
/dev/sda2 468516862 488390655 9936897 5 Extended
/dev/sda5 468516864 488390655 9936896 82 Linux swap / Solaris
Disk /dev/sdb: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders, total 488397168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003b681
Device Boot Start End Blocks Id System
/dev/sdb1 2048 468514815 234256384 83 Linux
/dev/sdb2 468516862 488390655 9936897 5 Extended
/dev/sdb5 468516864 488390655 9936896 82 Linux swap / Solaris
Disk /dev/mapper/isw_cjccfdbihf_Volume0p1: 239.9 GB, 239878537216 bytes
255 heads, 63 sectors/track, 29163 cylinders, total 468512768 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/isw_cjccfdbihf_Volume0p1 doesn't contain a valid partition table
fdisk: unable to read /dev/mapper/isw_cjccfdbihf_Volume0p2: Inappropriate ioctl for device
Surtout, les deux dernières lignes semblent indiquer un problème plus profond. :
Le message d'erreur de grub-install
mentionne également un fichier device.map.
$ cat /boot/grub/device.map
cat: /boot/grub/device.map: No such file or directory
J'ai essayé de le générer mais cela n'a pas aidé non plus (le message d'erreur n'a pas changé):
$ Sudo grub-mkdevicemap
$ cat /boot/grub/device.map
(hd0) /dev/disk/by-id/ata-WDC_WD2500AAJS-00YZCA0_WD-WCAYU7549707
(hd1) /dev/disk/by-id/ata-WDC_WD2500AAJS-00YZCA0_WD-WCAYU7501473
Avez-vous des recommandations sur ce que je devrais essayer ensuite? Toute aide est très appréciée.
--- (Mise à jour:
$ debconf-show grub-pc
debconf: DbDriver "passwords" warning: could not open /var/cache/debconf /passwords.dat: Permission denied
* grub-pc/install_devices: /dev/disk/by-id/dm-name-isw_cjccfdbihf_Volume0
grub-pc/kopt_extracted: false
grub-pc/partition_description:
* grub2/linux_cmdline:
grub-pc/install_devices_empty: false
grub-pc/timeout: 10
grub-pc/install_devices_failed_upgrade: true
* grub2/linux_cmdline_default: quiet splash
grub-pc/postrm_purge_boot_grub: false
grub-pc/hidden_timeout: true
grub-pc/disk_description:
grub-pc/mixed_legacy_and_grub2: true
grub2/kfreebsd_cmdline_default: quiet splash
grub2/device_map_regenerated:
* grub-pc/install_devices_failed: true
grub-pc/chainload_from_menu.lst: true
grub-pc/install_devices_disks_changed:
grub2/kfreebsd_cmdline:
Notez la ligne: grub-pc/install_devices: /dev/disk/by-id/dm-name-isw_cjccfdbihf_Volume0
Maintenant le contenu de /etc/fstab
:
proc /proc proc nodev,noexec,nosuid 0 0
/dev/mapper/isw_cjccfdbihf_Volume01 / ext4 errors=remount-ro 0 1
/dev/mapper/isw_cjccfdbihf_Volume0p5 none swap sw 0 0
Un fichier de sauvegarde de 2012 indique des entrées légèrement différentes pour swap (Volume05 au lieu de Volume0p5), ce qui indique que les noms auraient pu être modifiés:
# Note that this is an old file at the time the system was installed (Ubuntu 10.04 or 10.10)
# (This is also the time from which the original grub configuration is from, isn't it?!)
/dev/mapper/isw_cjccfdbihf_Volume01 / ext4 errors=remount-ro 0 1
/dev/mapper/isw_cjccfdbihf_Volume05 none swap sw 0 0
Donc, cela a peut-être quelque chose à voir avec "_Volume01" vs "_Volume0p1" vs "_Volume0". /etc/fstab
dit "01", ls /dev/mapper
renvoie les mappages "0p1", "0p2" et "0p5" (swap), et finalement debconf-show grub-pc
dit "Volume0". Je pense que cette incohérence est la racine du problème.
Maintenant je me demande:
grub-pc/install_devices
dans la sortie de debconf-show grub-pc
?J'ai aussi remarqué que l'installation de grub-pc est cassée:
$ Sudo dpkg-reconfigure grub-pc
/usr/sbin/dpkg-reconfigure: grub-pc is broken or not fully installed
Voici comment j'ai résolu le problème:
Dans un moment calme, j'ai eu le temps de risquer des temps d'arrêt. J'ai donc redémarré le système avec un Live CD Ubuntu 14.04 et réinstallé Grub. Je n'ai pas rencontré de problèmes et ensuite, le système a démarré normalement.
Voici une description générale: https://help.ubuntu.com/community/Grub2/Installing#via_the_LiveCD_terminal
De mémoire, voici les commandes que j'ai utilisées dans mon cas particulier:
Démarrez à partir de Live CD et exécutez les commandes suivantes:
$ Sudo su
$ mount /dev/mapper/isw_cjccfdbihf_Volume0p1 /mnt
(Sorry, I'm not 100% sure whether the target was /dev/mapper/isw_cjccfdbihf_Volume0p1 or
/dev/sda. I think it was /dev/mapper/isw_cjccfdbihf_Volume0p1.)
$ grub-install --root-directory=/mnt /dev/mapper/isw_cjccfdbihf_Volume0p1
$ reboot
Après cela, le système a redémarré. Enfin, je pourrais terminer l’installation endommagée avec Sudo apt-get install
.
Pour le moment, /etc/fstab
répertorie toujours /dev/mapper/isw_cjccfdbihf_Volume01
pour le répertoire racine. Je ne sais toujours pas si c'est vraiment correct, mais je n'ai pas essayé de le changer en /dev/mapper/isw_cjccfdbihf_Volume0p1
pour savoir s'il fonctionne toujours après un redémarrage.
L'installation de grub2 dans une configuration RAID échoue, car la dénomination des périphériques est modifiée d'une manière ou d'une autre avec la mise à jour, mais le système d'exécution non encore redémarré utilise un schéma de dénomination différent.
Il suffit d'annuler l'installation de grub en cas d'échec et de redémarrer. Le grub précédemment installé pointe toujours sur un noyau valide et peut démarrer sans aucun problème. Après le redémarrage, grub s'installe sans aucun problème.
Brillant. J'ai dû modifier une seule chose pour éviter cette erreur lors de l'exécution de la commande grub-install
:
/usr/bin/grub-bios-setup: warning: Embedding is not possible. GRUB
can only be installed in this setup by using blocklists. However,
blocklists are UNRELIABLE and their use is discouraged..
/usr/bin/grub-bios-setup: error: will not proceed with blocklists.
En utilisant vos commandes ci-dessus, j'ai changé la commande grub-install pour installer GRUB sur le MBR au lieu de la partition de la manière suivante (en supprimant le 'p1'):
$ grub-install --root-directory=/mnt /dev/mapper/isw_cjccfdbihf_Volume0
Sinon, ça m'a vraiment épargné le dos et beaucoup de chagrin. Je suis très reconnaissant.
Aucune des réponses ne fonctionnant pour moi, j'ai donc redémarré et utilisé le Boot Repair Disk pour résoudre le problème. Cela a fonctionné. Ouf...!