J'ai effacé par erreur l'un des fichiers vmlinuz
de mon répertoire /boot
. Cependant, j'ai effectué une sauvegarde de /boot
dans /tmp
, juste pour en être sûr.
Par conséquent, je ne peux pas démarrer car je reçois l'erreur de fichier vmlinuz manquante. J'ai donc démarré en utilisant une clé USB, mais lorsque je suis entré dans le répertoire /boot
de mon disque dur (sda5), il est complètement vide. Si je copie les fichiers de /tmp/boot
dans ce répertoire /boot
, je ne peux toujours pas démarrer.
Comment puis-je restaurer ces fichiers dans le répertoire approprié?
vmlinuz
est l'image du noyau Linux elle-même (le z indique qu'elle est compressée).
Réinstallation du paquetage de noyau actuellement référencé par linux-image-generic (ou votre noyau HWE ) et probablement linux-singed-image-generic dans les environnements de démarrage sécurisé UEFI devrait résoudre votre problème.
Démarrez de préférence le support live de la même version et montez la partition de votre installation (vous pouvez le faire avec Nautilus, ce sera quelque chose comme /media/ubuntu/…
alors) ou votre partition /boot
(ce sera un peu plus complexe). Ce sera ${my_installation}
dans les instructions suivantes.
Examinez le /lib/modules/
de votre installation (${my_installation}/lib/modules/
) pour connaître les versions de noyau particulières installées et choisissez le numéro de version le plus récent que vous pouvez trouver. Il est référencé par ${kernel_ver}
dans les instructions suivantes, lors de mon test VM c'était 3.16 .0-46.
Comme je le disais dans un commentaire précédent, la procédure est très similaire à la réinstallation de Grub dans chroot, alors laissez-moi citer cette réponse avec de légères modifications:
Bind mount d'autres choses nécessaires:
for i in /sys /proc /run /dev; do Sudo mount --bind "$i" "${my_installation}$i"; done
chroot
dans votre installation Ubuntu:Sudo chroot ${my_installation}
À ce stade, vous êtes dans votre installation, pas dans la session en direct, et vous exécutez en tant que root. …
Maintenant, réinstallez votre noyau (le package signed
est destiné à l’amorçage sécurisé UEFI):
apt-get install --reinstall linux-image-${kernel_ver}-generic linux-signed-image-${kernel_ver}-generic
Vérifiez le répertoire /boot
si le initrd
de ce noyau est toujours manquant. Pour le générer manuellement, exécutez:
mkinitramfs -o /boot/initrd.img-${kernel_ver}-generic ${kernel_ver}-generic
Mon exemple:
mkinitramfs -o /boot/initrd.img-3.16.0-46-generic 3.16.0-46-generic
Ensuite, lancez update-grub
comme dans la réponse citée afin de vous assurer que le "nouveau" noyau et initrd sont inclus.
Si vous devez également réinstaller Grub, vous pouvez suivre les étapes restantes. Rappelez-vous que ces instructions ont été écrites pour le MBR. Si vous avez UEFI (les chargeurs de démarrage de différents systèmes d’exploitation ne doivent pas s’écraser), vous devez vérifier que grub-efi-AMD64-bin
est bien installé avant de réinstaller Grub.