J'essayais de supprimer les anciens noyaux, mais je dois avoir supprimé tous les noyaux de mon ordinateur portable Ubuntu 11.04. Existe-t-il un moyen de résoudre ce problème via un démarrage USB ou le montage d'un disque dur sur un autre système?
J'essayais de supprimer les anciens noyaux, mais je dois avoir supprimé tous les noyaux de mon ordinateur portable Ubuntu 11.04. Existe-t-il un moyen de résoudre ce problème via un démarrage USB ou le montage d'un disque dur sur un autre système?
Réponses:
Démarrez sur un live CD (ou sur une clé USB), montez des systèmes, chrootez dessus et installez le noyau. Après une installation réussie du noyau, démontez les systèmes de fichiers.
sudo mount /dev/sdXY /mnt
Monter des partitions spéciales:
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
(facultatif) Lorsque vous êtes connecté à un réseau, utilisez les serveurs DNS de votre environnement Live (sinon, les noms d'hôte ne peuvent éventuellement pas être résolus):
cp /etc/resolv.conf /mnt/etc/resolv.conf
/mnt
:sudo chroot /mnt
apt-get install linux-image-generic
(pas besoin de sudo car vous êtes root après un chroot)Après une installation réussie du noyau, sortez le chroot et démontez certains systèmes de fichiers:
exit
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/dev
sudo umount /mnt
sudo reboot
/mnt
. Ubuntu s’occupe généralement de démonter / synchroniser les systèmes de fichiers, mais cela me semble plus propre.
/dev/mdxxx
lecteur - en supposant qu'il s'agisse de mdadm.
/etc/resolv.conf
(supprimez-le s'il s'agit d'un lien symbolique) et mettez-y quelque chose de similaire nameserver 8.8.8.8
(serveur DNS public Google). Remplacez-le si nécessaire.
cp /etc/resolv.conf /mnt/etc/resolv.conf
avant de vous lancer dans le chroot. Cela a fonctionné pour moi quand même
Cette procédure étendue est à l’origine de la plupart des complications qui pourraient survenir, notamment des problèmes de connexion à Internet chroot
, ne sachant pas quel paquetage du noyau installer (avant Ubuntu 12.10, ce ne sera pas toujours le cas linux-image-generic
), ne sachant pas, au départ, quelle partition ou même quel paquet. quel disque physique contient le /
système de fichiers et ayant une /boot
partition séparée .
Je n’ai pas écrit cela en faisant référence à aucune des autres procédures ici, bien que vous remarquiez certaines similitudes. Je me suis basé, vaguement, sur la procédure décrite ici (bien que ces instructions soient pour quelque chose de tout à fait différent, je les ai largement adaptées, et seules certaines commandes, pas la prose, sont copiées).
Vous avez supprimé tous les packages du noyau et Ubuntu ne peut pas démarrer sans un noyau installé. La solution consiste donc à démarrer à partir d'un CD / DVD / USB chroot
en direct sur le système installé et à y installer un noyau.
Démarrez à partir d'un CD / DVD live Ubuntu ou d'un lecteur flash USB en direct.
Sélectionnez Essayer Ubuntu (pas installer Ubuntu ).
Lorsque le bureau apparaît, assurez-vous d'être connecté à Internet. Si vous ne l'êtes pas, connectez-vous à Internet. Une façon de savoir si vous êtes connecté à Internet consiste à ouvrir un navigateur Web. Vous pouvez même suivre le reste des instructions en plaçant cette réponse Ask Ubuntu dans votre navigateur Web, sur le système de CD / DVD / USB en direct. Je recommande fortement de le faire.
Ouvrez une fenêtre de terminal avec Ctrl+ Alt+ T.
Dans la fenêtre Terminal, exécutez cette commande pour répertorier vos partitions:
sudo parted -l
Vous verrez quelque chose comme ceci (mais ce ne sera pas exactement comme ça):
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 20.4GB 20.4GB primary ext4 boot
2 20.4GB 21.5GB 1072MB extended
5 20.4GB 21.5GB 1072MB logical linux-swap(v1)
Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0
has been opened read-only.
Error: Can't have a partition outside the disk!
Examinez le résultat obtenu pour déterminer le nom de périphérique de la partition contenant le /
système de fichiers du système Ubuntu installé sur le disque dur (que vous réparez).
Si vous n'avez qu'une seule ext4
partition, c'est celle-là.
Si vous avez plusieurs ext4
partitions, c'est probablement la première. Cependant, si la première est très petite (moins d’un gigaoctet), il s’agit peut-être d’une /boot
partition distincte (souvenez-vous de celle-là aussi).
Veuillez noter que le fait d’être boot
répertorié sous ou non sous Flags
a très peu à voir avec le fait de savoir si une partition est une /boot
partition séparée . Mon système, dont les informations sont répertoriées ci-dessus, ne possède pas de/boot
partition séparée .
Le nom de périphérique de la partition commence par le nom de périphérique du lecteur physique, indiqué immédiatement après Disk
dans la deuxième ligne. Ensuite, ajoutez simplement le numéro de partition à la fin de celle-ci. Ainsi, le nom de périphérique de la partition contenant mon /
système de fichiers est /dev/sda1
. Voici les deux lignes où j'ai trouvé cette information:
Disk /dev/sda: 21.5GB
1 1049kB 20.4GB 20.4GB primary ext4 boot
Si vous avez plusieurs lecteurs physiques, vous obtiendrez plus d’une liste comme celle présentée ci-dessus. Mais à moins qu'un autre système de type Unix ne soit installé, vous ne disposerez probablement que d'un lecteur contenant des ext4
partitions, du moins sans les avoir créées intentionnellement sur un autre lecteur. Si vous avez plusieurs lecteurs avec des ext4
partitions, la ext4
partition contenant votre /
système de fichiers se trouve probablement sur un lecteur contenant également une linux-swap
partition.
Il est possible que le système de /
fichiers de votre système Ubuntu se trouve sur une partition d'un type autre que ext4
. Lorsque cela se produit, c'est presque toujours ext3
, et presque toujours sur un système assez ancien. Il est très rare que cela se produise, à moins que vous ne décidiez de le faire vous-même.
Rappelez-vous le nom de périphérique de la partition contenant votre /
système de fichiers (ou écrivez-le). Si c'est différent de /dev/sda1
, alors vous allez le remplacer /dev/sda1
dans les étapes ci-dessous.
(Si vous semblez avoir une /boot
partition séparée , rappelez-vous également le nom du périphérique.)
Montez le /
système de fichiers sur /mnt
et montez son /dev
système de fichiers:
sudo mount /dev/sda1 /mnt
sudo mount --bind /dev /mnt/dev
Vérifiez si le système Ubuntu défectueux que vous réparez a une /boot
partition séparée qui doit être montée séparément. (Si vous êtes sûr que ce n'est pas le cas, vous pouvez ignorer ceci.)
Pour vérifier, lancez:
ls /mnt/boot
S'il y a une sortie (comme grub memtest86+.bin memtest86+_multiboot.bin
, mais pas nécessairement exactement cela), le système en panne se /boot
trouve sur la même partition que la sienne /
et vous n'avez rien à monter pour y accéder.
Mais s'il n'y a pas de sortie, vous devrez alors monter le /boot
système de fichiers:
sudo mount BOOT-PARTITION /mnt/boot
Remplacez-le BOOT-PARTITION
par le nom de périphérique de la /boot
partition (voir l'étape 6 ci-dessus).
chroot
dans le système endommagé, montez les systèmes de fichiers virtuels importants restants et définissez des variables d’environnement importantes:
sudo chroot /mnt
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
export HOME=/root
export LC_ALL=C
Déterminer si l' accès Internet fonctionne à partir du chroot
par ping
ing un hôte fiable qui est connu pour répondre normalement à pings:
ping -c 5 www.google.com
Vous devriez voir quelque chose comme ça:
PING www.l.google.com (74.125.131.147) 56(84) bytes of data.
64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=1 ttl=44 time=61.3 ms
64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=2 ttl=44 time=62.3 ms
64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=3 ttl=44 time=61.8 ms
64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=4 ttl=44 time=63.8 ms
64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=5 ttl=44 time=66.6 ms
--- www.l.google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 61.367/63.212/66.608/1.897 ms
Si cela ressemble généralement à cela et que le nombre précédent % packet loss
est inférieur à 100, la connexion Internet dans le système chroot
fonctionne:
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
Cela fonctionne, vous pouvez donc ignorer l'étape 11 .
Si cela ressemble généralement à cela et que le nombre précédent % packet loss
est 100, la connexion doit être dépannée. Assurez-vous que la connexion sur le système Live CD (par exemple, via un navigateur Web ou en exécutant la même commande dans un chroot
onglet / fenêtre Terminal séparé et non édité) fonctionne. Assurez-vous que vous tapez la commande correctement. Utilisez www.google.com
si vous ne l'avez pas été.
Si le résultat ne ressemble pas du tout à ce qui précède, mais indique plutôt ping: unknown host www.google.com
, la mise en réseau ne fonctionne pas encore dans le chroot
.
Configurez la mise en réseau dans le chroot
. Ignorez cette étape sauf si vous avez une unknown host
erreur à l'étape 10 ci-dessus.
Pour configurer la mise en réseau, sauvegardez le hosts
fichier du système endommagé et copiez le système hosts
et les resolv.conf
fichiers du CD en direct . (Vous n'avez pas besoin de sauvegarder la version du système endommagé resolv.conf
, car ce fichier est automatiquement régénéré à la volée.)
Ouvrez un nouvel onglet Terminal ( Ctrl+ Shift+ T) ou, si vous préférez, une nouvelle fenêtre Terminal ( Ctrl+ Shift+ N, ou simplement Ctrl+ Alt+ T). Exécutez ces commandes:
sudo cp /mnt/etc/hosts /mnt/etc/hosts.old
sudo cp /etc/hosts /mnt/etc/hosts
sudo cp /etc/resolv.conf /mnt/etc/resolv.conf
exit
(La exit
commande à la fin ferme le nouvel onglet / fenêtre.)
Répétez l’étape 10 ci-dessus pour vous assurer que l’accès Internet fonctionne maintenant depuis le chroot
. Cela devrait.
Déterminez quel package de noyau doit être installé. Habituellement, ce sera linux-image-generic
. Mais pas toujours.
Si vous ne savez pas lequel installer, cela dépendra en partie de la version d'Ubuntu que vous avez installée et en partie d'autres informations. Si vous ne savez pas quelle version d'Ubuntu vous avez installée, découvrez-la en exécutant cette commande (dans la fenêtre / onglet du terminal chroot
, pas dans une autre fenêtre):
lsb_release -r
Sur Ubuntu 12.10 (la prochaine version d'Ubuntu, actuellement en développement), ce sera toujours le cas linux-image-generic
. (Voir ceci , ceci et cela .)
Sur Ubuntu 12.04 LTS, les possibilités probables sont linux-image-generic
et linux-image-generic-pae
. (Contrairement aux versions précédentes, 12.04 n'a plus de noyaux de serveur et de bureau séparés.)
Si le système Ubuntu installé (que vous corrigez) est la version 64 bits, utilisez linux-image-generic
. ( linux-image-generic-pae
s'applique uniquement aux systèmes 32 bits.)
Il est possible d'avoir un système Ubuntu 32 bits installé sur un ordinateur 32 bits ou 64 bits. De plus, vous utilisez peut-être un live CD 32 bits ou 64 bits pour réparer un système installé 32 bits. Donc, si vous ne savez pas si le système Ubuntu installé est 32 bits ou 64 bits, vérifiez en exécutant cette commande (dans le chroot
, pas dans une fenêtre / un onglet Terminal séparé):
dpkg-architecture -qDEB_HOST_ARCH_BITS
La sortie sera soit 32
ou 64
.
(Notez que ce uname -m
n’est pas un moyen correct de trouver ces informations, car même lorsqu’il est exécuté dans chroot
, cela vous indiquera l’architecture du noyau en cours d’exécution , c’est-à-dire le noyau du système Live CD et non le noyau du système installé (endommagé).)
Si le système Ubuntu installé (que vous corrigez) est la version 32 bits, le meilleur noyau à utiliser dépendra de la quantité de RAM dont vous disposez. Je recommande:
linux-image-generic
si vous avez moins de 3 Go de RAMlinux-image-generic-pae
si vous avez 3 Go de RAM ou plus.(C’est ainsi que le programme d’installation d’Ubuntu choisit lequel installer, depuis qu’il a désormais la possibilité d’installer des noyaux PAE. Voir la résolution de ce bogue . Si vous voulez savoir ce qu'est PAE, consultez cet article Wikipedia . en savoir plus sur PAE dans Ubuntu, voir cette page wiki Ubuntu .)
Si vous ne savez pas combien de RAM vous avez, exécutez cette commande pour découvrir:
grep MemTotal /proc/meminfo
Cela est répertorié en kilo-octets . Pour convertir en gigaoctets , divisez par 1 048 576 (1024 2 ).
Sur versions d' Ubuntu avant 12.04, les possibilités sont probables linux-image-generic
, linux-image-generic-pae
et linux-image-server
.
linux-image-server
.C'est le moment que vous attendiez! Installez un noyau dans le système en panne.
(Comme auparavant, sauf indication explicite contraire, ces commandes sont exécutées dans chroot
, et non dans une fenêtre / un onglet de terminal séparé.)
apt-get update
apt-get -y install linux-image-generic
Remplacez-le linux-image-generic
par un autre package de noyau que vous avez décidé d'installer à l'étape 12 ci-dessus, s'il est différent.
Si vous deviez exécuter l'étape 11 pour configurer la mise en réseau dans le chroot
, restaurez l'ancien hosts
fichier. Si vous avez ignoré l'étape 11, ignorez également cette étape.
Pour le restaurer, exécutez cette commande:
cp /etc/hosts.old /etc/hosts
Démontez les systèmes de fichiers, exit
en dehors du chroot
:
umount /proc || umount -lf /proc
umount /sys /dev/pts
exit
sudo umount /mnt/dev /mnt
Arrêtez le système Live CD / DVD / USB et retirez le Live CD / DVD ou le lecteur flash USB. Démarrez dans le système installé sur le disque dur, que vous venez de réparer. Vous avez installé un paquet de noyau dans celui-ci (et lors de l'installation, le noyau qu'il fournit sera rajouté dans le menu de démarrage de GRUB2). Si tout fonctionne correctement, votre système devrait démarrer sans problèmes. (Je pense qu'il est possible que cela prenne un peu plus de temps que d'habitude, cette fois.)
AVERTISSEMENT: Je n'ai pas testé la procédure ci-dessus sur tous les systèmes Ubuntu possibles . Il est donc possible qu'il comporte une erreur que je n'ai pas identifiée.
À l'avenir, je recommande de toujours essayer de garder deux noyaux installés. Il est bon d’en avoir deux si l’un d’entre eux cesse de fonctionner pour une raison quelconque (vous pouvez sélectionner l’autre dans le menu de démarrage de GRUB2). De plus, si vous avez l'intention de conserver deux noyaux et que vous en désinstallez accidentellement un de plus que vous ne vouliez et que vous redémarriez, il vous reste encore un noyau pour démarrer.
/etc/resolv.conf
est maintenant géré par resolvconf
, il sera automatiquement généré lors de l’utilisation de NetworkManager et peut être supprimé en toute sécurité en utilisant ce rm /etc/resolv.conf
que vous avez découvert.
Lorsque j'ai retiré mon noyau, j'ai trouvé cette solution sur les forums Ubuntu. J'ai suivi chaque étape et le système a été récupéré. J'espère que cela vous aiderait.
Un chroot peut fonctionner, chroot signifie que lorsque vous démarrez un système, vous modifiez le système de fichiers racine. Par exemple, vous avez commencé à partir d'un CD live, mais vous modifiez la racine "/" pour installer votre ubuntu.
Disons que votre Ubuntu est installé sur / dev / sda2, alors vous pouvez essayer les commandes suivantes:
Code:
sudo mount /dev/sda2 /mnt
sudo cp /etc/resolv.conf /mnt/etc/
sudo cp /etc/hosts /mnt/etc/
sudo mount --bind /dev/ /mnt/dev
sudo chroot /mnt
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
export HOME=/root
export LC_ALL=C
dbus-uuidgen > /var/lib/dbus/machine-id
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl
maintenant vous êtes root "/" sur / dev / sda2, essayez d'installer le noyau
apt-get update
apt-get install linux-image-2.6.32-26-generic
update-initramfs -cv -k all
update-grub
Je devais faire un peu de devinette ici puisque je n'ai jamais eu à faire cela auparavant, mais cela devrait être à propos. Je ne sais pas si vous recevez un avertissement d'erreur fstab (par exemple, impossible de trouver la racine).
Maintenant, vous devez nettoyer certaines choses et démonter les partitions montées: Code:
rm /etc/resolv.conf
rm /etc/hosts
rm /var/lib/dbus/machine-id
rm /sbin/initctl
dpkg-divert --rename --remove /sbin/initctl
umount /proc # if this doesn't work try umount -lf /proc
umount /sys
umount /dev/pts
exit
sudo umount /mnt
Et vous pouvez redémarrer pour voir si cela a fonctionné.
URL du fil de discussion: http://art.ubuntuforums.org/showthread.php?t=1688928
/etc/hosts
et enlever /sbin/initctl
? C'est là pour une raison.
/sbin/initctl
ou dbus-uuidgen
ou dpkg-divert
. Vous devrez peut- être remplacer /etc/hosts
pour vous connecter à Internet, mais pas habituellement, et si vous le faites, vous devriez remettre l'original. Sur un système installé (plutôt que sur un CD live qui démarre, puis décompresse un système de fichiers squashfs), vous n'avez pas à exécuter, update-initramfs
ni même update-grub
après avoir installé le noyau.
linux-image-2.6.32-26-generic
ce ne sera pas le bon noyau à installer pour la plupart des gens.
Après avoir retiré les anciens noyaux de Trusty14.04 hier (FTR: je n’ai pas supprimé les deux plus récents!), Mon système ne démarre plus. GRUB a montré
Error: File not found
Error: You need to load the kernel first
Aucune idée pourquoi.
J'ai ensuite suivi les excellentes instructions d' Eliah Kagan pour l'installation à linux-image-generic
partir d'un CD live. Il a effectivement installé 150 Mo de nouveau noyau, mais malheureusement, cela n'a pas résolu le problème.
Heureusement, j'ai trouvé cette page . L' Boot-Repair
outil a bien fonctionné, mon système fonctionne à nouveau.
Je voulais simplement ajouter à l'expérience que j'ai vécue aujourd'hui la mise à niveau de Willy. J'ai nettoyé un peu et je me suis retrouvé avec seulement memtest. Google m'a fait comprendre que j'avais enlevé les noyaux. Une des contraintes que j'ai eue est la lenteur du réseau et le téléchargement complet de l’ISO n’était donc pas une option. J'ai donc utilisé Ubuntu Minimal CD (40 Mo seulement) et démarré dessus. Après avoir détecté une option matérielle (qui m'a aidé à me connecter au sans fil), je suis passé dans l'option shell. J'ai suivi les instructions de @Lekensteyn et j'ai réussi. quelques choses cependant: vous devez copier resolv.conf
avant d’aller chroot sinon votre DNS sera foutu et depuis l’utilisateur connecté il n’y a plus besoin de root pour sudo.
Je connais l’ancien, mais j’ai pensé que l’ajout de cette réponse ajouterait de la valeur à ceux qui rencontreraient le problème.