J'essayais de supprimer les anciens noyaux, mais j'ai dû supprimer tous les noyaux de mon ordinateur portable Ubuntu 11.04. Y a-t-il un moyen de réparer cela via un démarrage USB ou en montant le disque dur sur un autre système ?
Réponses
Trop de publicités?Démarrez sur un CD live (ou une USB live), montez certains systèmes, chrootez dessus et installez le noyau. Après une installation réussie du noyau, démontez les systèmes de fichiers.
-
Terminal ouvert
-
Montez la partition Ubuntu :
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ôtes peuvent éventuellement ne pas être résolus) :
cp /etc/resolv.conf /mnt/etc/resolv.conf
-
Chroot dans le
/mnt
:sudo chroot /mnt
-
Installez le noyau Linux :
apt-get install linux-image-generic
(pas de sudo nécessaire puisque vous êtes root après un chroot) -
Après une installation réussie du noyau, sortez du chroot et démontez quelques systèmes de fichiers :
exit sudo umount /mnt/sys sudo umount /mnt/proc sudo umount /mnt/dev sudo umount /mnt
-
Redémarrez et retirez le CD ou la clé USB :
sudo reboot
Ce site procédure élargie est à l'origine de la plupart des complications qui pourraient survenir, notamment des problèmes de connexion à l'Internet dans le cadre de la chroot
ne pas savoir quel paquetage de noyau installer (avant Ubuntu 12.10, il n'est pas possible d'installer un paquetage de noyau). toujours être linux-image-generic
), sans savoir dès le départ quelle partition ou même quel disque physique contient l'objet de l'opération. /
et avoir un système de fichiers séparé /boot
partition.
Je n'ai pas écrit ce document en me référant aux autres procédures présentées ici, même si vous remarquerez certaines similitudes. Je l'ai basé, en gros, sur la procédure ici (bien que ces instructions soient pour quelque chose de très différent, je les ai largement adaptées, et seules certaines commandes, et non la prose, sont copiées).
Vous avez supprimé tous les paquets du noyau, et Ubuntu ne peut pas démarrer sans noyau installé. La solution est donc de démarrer à partir d'un CD/DVD/USB live, chroot
dans le système installé, et y installer un noyau.
-
Démarrez à partir d'un CD/DVD Ubuntu live ou d'une clé USB live.
-
Sélectionnez Essayez Ubuntu (pas Installer Ubuntu ).
-
Lorsque le bureau s'affiche, assurez-vous que vous êtes connecté à l'Internet. Si ce n'est pas le cas, connectez-vous à Internet. Une façon de vérifier si vous êtes connecté à Internet est d'ouvrir un navigateur Web. Vous pouvez même suivre le reste des instructions en affichant cette réponse de Ask Ubuntu dans votre navigateur Web, dans le système CD/DVD/USB live. Je vous recommande vivement de le faire.
-
Ouvrez une fenêtre Terminal avec Ctrl + Alt + T .
-
Dans la fenêtre du Terminal, exécutez cette commande pour lister vos partitions :
sudo parted -l
Vous verrez quelque chose comme ça (mais ce ne sera pas le cas). exactement comme ceci) :
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 la sortie que vous avez obtenue, afin de déterminer le nom du périphérique de la partition qui contient le fichier
/
système de fichiers du système Ubuntu qui est installé sur le disque dur (que vous êtes en train de réparer).-
Si vous n'avez qu'un seul
ext4
partition, c'est celle-là. -
Si vous avez plus d'un
ext4
partition, c'est probablement la première. Cependant, si la première est très petite - moins d'un gigaoctet - alors il peut s'agir d'une partition séparée./boot
partition (rappelez-vous aussi de celle-là).Veuillez noter que, que ce soit ou non
boot
est répertorié sousFlags
n'a pas grand-chose à voir avec le fait qu'une partition soit ou non un élément séparé/boot
partition. Mon système, dont les informations sont listées ci-dessus, fait no ont une/boot
partition. -
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 le nom de périphérique de la partition.
Disk
dans la deuxième ligne. Puis ajoutez le numéro de la partition à la fin de celle-ci. Donc, le nom du périphérique pour la partition qui contient mon/
Le 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 plus d'un disque physique, vous obtiendrez plus d'une liste comme celle présentée ci-dessus. Mais à moins que vous n'ayez installé un autre système de type Unix, vous n'aurez probablement qu'un seul disque contenant les éléments suivants
ext4
du moins sans les avoir créées intentionnellement sur un autre disque. Si vous avez plusieurs disques avec desext4
les partitions, alors leext4
qui contient votre/
est probablement sur un disque qui également contient unlinux-swap
partition. -
C'est possible que votre système Ubuntu
/
Le système de fichiers se trouve sur une partition de type autre queext4
. Quand cela arrive, c'est presque toujoursext3
et presque toujours sur un système assez ancien. Il est très rare que ce soit le cas, à moins que vous n'ayez intentionnellement configuré les choses de cette façon vous-même.
Rappelez-vous le nom du périphérique de la partition qui contenait votre
/
système de fichiers (ou l'écrire). Si c'est différent de/dev/sda1
alors vous remplacerez/dev/sda1
avec elle en suivant les étapes ci-dessous.(Si vous avez l'air d'avoir une
/boot
partition, n'oubliez pas le nom du périphérique pour cela aussi). -
-
Monter le
/
vers le système de fichiers/mnt
et de monter son/dev
système de fichiers :sudo mount /dev/sda1 /mnt sudo mount --bind /dev /mnt/dev
-
Vérifiez si le système Ubuntu cassé que vous réparez dispose d'un système séparé.
/boot
qui doivent être montés séparément. (Si vous êtes sûr si ce n'est pas le cas, vous pouvez sauter cette étape).Pour vérifier, exécutez :
ls /mnt/boot
S'il y a une sortie (comme
grub memtest86+.bin memtest86+_multiboot.bin
mais pas nécessairement exactement cela), alors le système brisé du/boot
est sur la même partition que son/
et vous n'avez pas besoin de monter quoi que ce soit pour y accéder.Mais s'il n'y a pas de sortie, alors vous devrez monter la
/boot
système de fichiers :sudo mount BOOT-PARTITION /mnt/boot
交換
BOOT-PARTITION
avec le nom du dispositif de l/boot
(voir l'étape 6 ci-dessus). -
chroot
dans le système cassé, monter les systèmes de fichiers virtuels importants restants, et définir quelques 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éterminez si l'accès à l'Internet fonctionne à partir de l'intérieur de l'entreprise.
chroot
porping
d'un hôte fiable qui est connu pour répondre normalement aux pings :ping -c 5 www.google.com
Vous devriez voir quelque chose comme ceci :
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 ça ressemble à ça, et que le nombre avant
% packet loss
est inférieure à 100, alors la connexion Internet dans le réseau de lachroot
fonctionne :5 packets transmitted, 5 received, 0% packet loss, time 4006ms
Ça marche, donc vous pouvez passez l'étape 11 .
-
Si ça ressemble surtout à ça, et que le nombre avant
% packet loss
est égal à 100, la connexion doit être dépannée. Assurez-vous que la connexion sur le système de CD live (par exemple, par le biais d'un navigateur Web ou en exécutant la même commande dans un ordinateur distinct, non connecté à l'ordinateur) est correcte.chroot
ed Terminal tab/fenêtre) fonctionne. Assurez-vous que vous tapez la commande correctement. Utilisezwww.google.com
si vous n'y êtes pas allé. -
Si la sortie ne ressemble pas du tout à ce qui précède, mais dit plutôt
ping: unknown host www.google.com
alors la mise en réseau ne fonctionne pas encore dans le système de gestion de l'information.chroot
.
-
-
Mettre en place un réseau dans le
chroot
. Passez cette étape, sauf si vous avez obtenu ununknown host
erreur à l'étape 10 ci-dessus.Pour mettre en place une mise en réseau, sauvegardez le système cassé
hosts
et copier sur le système CD en direct le fichierhosts
yresolv.conf
des fichiers. (Vous n'avez pas besoin de sauvegarder la version du système cassé deresolv.conf
car ce fichier est automatiquement régénéré à la volée).Ouvrir un nouvel onglet "Terminal ( Ctrl + Shift + T ) ou, si vous préférez, un nouvelle fenêtre du terminal ( Ctrl + Shift + N ou simplement Ctrl + Alt + T ). Exécutez les commandes suivantes :
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
(Le
exit
à 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 à partir de l'intérieur de l'ordinateur.
chroot
. Il devrait. -
Déterminer quel paquetage du noyau doit être installé. Habituellement, ce sera
linux-image-generic
. Mais pas toujours.Si vous n'êtes pas sûr de ce que vous devez installer, cela dépendra en partie de la version d'Ubuntu que vous avez installée, et en partie d'autres informations. Si vous n'êtes pas sûr de la version Ubuntu que vous avez installée, découvrez-la en exécutant cette commande (dans le répertoire
chroot
, no dans une fenêtre ou un onglet séparé du terminal) :lsb_release -r
-
Sur Ubuntu 12.10 (la prochaine version d'Ubuntu, actuellement en cours de développement), elle toujours sera
linux-image-generic
. (Voir ce , ce y ce .) -
Sur Ubuntu 12.04 LTS, les possibilités probables sont les suivantes
linux-image-generic
ylinux-image-generic-pae
. (Contrairement aux versions précédentes, la 12.04 n'a plus de noyaux séparés pour le serveur et le bureau).-
Si le système Ubuntu installé (que vous êtes en train de réparer) est la version 64 bits, utilisez
linux-image-generic
. (linux-image-generic-pae
ne s'applique qu'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 pouvez utiliser un live CD 32 ou 64 bits pour réparer un système installé en 32 bits. Donc, si vous ne savez pas si le Système Ubuntu installé est de 32 ou 64 bits, vérifiez en exécutant cette commande (dans l'onglet
chroot
, no dans une fenêtre ou un onglet séparé du terminal) :dpkg-architecture -qDEB_HOST_ARCH_BITS
La sortie sera soit
32
o64
.(Veuillez noter que
uname -m
es no un moyen correct de trouver cette information, car même lorsqu'elle est exécutée dans le cadre de l'initiativechroot
qui vous indiquera l'architecture de la Noyau en fonctionnement qui est le noyau du système du CD live et non le noyau du système installé (cassé)). -
Si le système Ubuntu installé (que vous êtes en train de réparer) 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 RAM -
linux-image-generic-pae
si vous avez 3 Go de RAM ou plus.
(C'est ainsi que l'installateur d'Ubuntu choisit lequel installer, depuis que l'installateur a acquis la capacité d'installer des noyaux PAE. Voir la résolution a ce bug . Si vous voulez apprendre ce qu'est le PAE, voir cet article de Wikipedia . Si vous voulez en savoir plus sur le PAE dans Ubuntu, voir cette page du wiki Ubuntu .)
Si vous ne savez pas combien de RAM vous avez, exécutez cette commande pour le savoir :
grep MemTotal /proc/meminfo
Cela figure dans kilo-octets . Pour convertir en gigaoctets divisé par 1 048 576 (1024) 2 ).
- 3 gigs = 3 145 728 kB
-
-
-
Sur les versions Ubuntu avant 12.04, les possibilités probables sont
linux-image-generic
,linux-image-generic-pae
ylinux-image-server
.- Si vous utilisez un système Ubuntu Server, utilisez
linux-image-server
. - Sinon, suivez les conseils ci-dessus pour les systèmes 12.04.
- Si vous utilisez un système Ubuntu Server, utilisez
-
-
C'est le moment que vous attendiez ! Installez un noyau dans le système en panne.
(Comme précédemment, sauf indication contraire explicite, ces commandes sont exécutées dans le répertoire de l'utilisateur.
chroot
et non dans une fenêtre ou un onglet séparé du terminal).apt-get update apt-get -y install linux-image-generic
交換
linux-image-generic
avec l'autre paquetage du noyau que vous avez décidé d'installer à l'étape 12 ci-dessus, s'il est différent. -
Si vous avez dû effectuer l'étape 11 pour configurer la mise en réseau dans l'application
chroot
restaurer l'ancienhosts
fichier. Si vous avez sauté l'étape 11, sautez aussi cette étape.Pour le restaurer, exécutez cette commande :
cp /etc/hosts.old /etc/hosts
-
Démonter les systèmes de fichiers,
exit
en dehors de lachroot
:umount /proc || umount -lf /proc umount /sys /dev/pts exit sudo umount /mnt/dev /mnt
-
Arrêtez le système CD/DVD/USB live, en retirant le CD/DVD live ou la clé USB. Démarrez dans le système installé sur le disque dur, que vous venez de réparer. Vous y avez installé un paquetage de noyau (et dans le cadre de l'installation, le noyau qu'il fournit sera ajouté au menu de démarrage de GRUB2). Si tout a fonctionné correctement, votre système devrait démarrer sans problème. (Je pense qu'il est possible qu'il prenne un peu plus de temps que d'habitude pour démarrer, cette fois).
AVERTISSEMENT : Je n'ai pas testé la procédure ci-dessus sur toutes les possibilités Système Ubuntu, il est donc possible qu'il y ait une erreur que je n'ai pas identifiée.
A l'avenir, je recommande de toujours essayer de garder deux noyaux installés. Il est bon d'en avoir deux au cas où l'un d'eux cesserait 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 garder deux et que vous désinstallez accidentellement un noyau de plus que prévu et que vous redémarrez, il vous en reste un pour démarrer.
Je voulais juste ajouter l'expérience que j'ai vécue aujourd'hui en passant à Willy. J'ai nettoyé un peu et je me suis retrouvé avec seulement memtest. google m'a amené à comprendre que j'avais supprimé les noyaux. Une contrainte que j'avais est un réseau lent et donc télécharger l'ISO complet n'était pas une option. J'ai donc utilisé CD Ubuntu Minimal (40MB seulement) et j'ai démarré dessus. Après avoir détecté l'option matérielle (qui m'a aidé à me connecter au sans fil), je suis allé dans l'option Shell. J'ai suivi les instructions de @Lekensteyn et j'ai réussi. Quelques petites choses cependant : vous devez copier resolv.conf
avant d'aller en chroot ou sinon votre DNS sera foutu et puisque l'utilisateur connecté est root, pas besoin de sudo nulle part.
Je sais que c'est vieux mais j'ai pensé qu'ajouter cette réponse apporterait une valeur ajoutée à ceux qui rencontreraient ce problème.
Lorsque j'ai retiré mon noyau, j'ai trouvé cette solution sur les Forums Ubuntu. J'ai suivi toutes les étapes et le système a été récupéré. J'espère que cela vous aidera.
Un chroot pourrait fonctionner, chroot signifie que lorsque vous démarrez un système, vous changez le système de fichiers racine. Par exemple, vous avez démarré à partir d'un CD live, mais vous avez changé la racine "/" pour l'endroit où votre ubuntu est installé.
Supposons que votre ubuntu soit installé sur /dev/sda2, 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 que la racine "/" est 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
J'ai dû faire un peu de supposition ici car je n'ai jamais eu à le faire auparavant mais cela devrait être suffisant. Je ne sais pas si vous obtenez un avertissement d'erreur fstab (comme "can't find root").
Maintenant vous devez nettoyer quelques trucs 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 ça a marché.
URL pour le fil de discussion : http://art.ubuntuforums.org/showthread.php?t=1688928
Après avoir supprimé les anciens noyaux de Trusty14.04 hier (FTR : j'ai fait no supprimer les deux plus récents !) mon système ne démarrait plus. Grub a montré
Error: File not found
Error: You need to load the kernel first
Je ne sais pas pourquoi.
J'ai ensuite suivi Les excellentes instructions d'Eliah Kagan pour installer linux-image-generic
à partir d'un CD live. Il a installé 150 Mo de nouveau noyau, mais malheureusement, cela n'a pas résolu le problème.
Heureusement, j'ai trouvé cette page . El Boot-Repair
L'outil a eu raison, mon système fonctionne à nouveau.