77 votes

Comment restaurer un système après avoir accidentellement supprimé tous les noyaux ?

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 ?

109voto

Lekensteyn Points 162346

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.

  1. Terminal ouvert

  2. Montez la partition Ubuntu : sudo mount /dev/sdXY /mnt

  3. Monter des partitions spéciales :

    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /proc /mnt/proc
    sudo mount --bind /sys /mnt/sys
  4. (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
  5. Chroot dans le /mnt : sudo chroot /mnt

  6. Installez le noyau Linux : apt-get install linux-image-generic (pas de sudo nécessaire puisque vous êtes root après un chroot)

  7. 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
  8. Redémarrez et retirez le CD ou la clé USB : sudo reboot

63voto

Eliah Kagan Points 111731

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.

  1. Démarrez à partir d'un CD/DVD Ubuntu live ou d'une clé USB live.

  2. Sélectionnez Essayez Ubuntu (pas Installer Ubuntu ).

  3. 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.

  4. Ouvrez une fenêtre Terminal avec Ctrl + Alt + T .

  5. 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!
  6. 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é sous Flags 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 des ext4 les partitions, alors le ext4 qui contient votre / est probablement sur un disque qui également contient un linux-swap partition.

    • C'est possible que votre système Ubuntu / Le système de fichiers se trouve sur une partition de type autre que ext4 . Quand cela arrive, c'est presque toujours ext3 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).

  7. 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
  8. 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).

  9. 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
  10. Déterminez si l'accès à l'Internet fonctionne à partir de l'intérieur de l'entreprise. chroot por ping 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 la chroot 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. Utilisez www.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 .

  11. Mettre en place un réseau dans le chroot . Passez cette étape, sauf si vous avez obtenu un unknown 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 fichier hosts y resolv.conf des fichiers. (Vous n'avez pas besoin de sauvegarder la version du système cassé de resolv.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.

  12. 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 y linux-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 o 64 .

        (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'initiative chroot 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 y linux-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.
  13. 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.

  14. Si vous avez dû effectuer l'étape 11 pour configurer la mise en réseau dans l'application chroot restaurer l'ancien hosts 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
  15. Démonter les systèmes de fichiers, exit en dehors de la chroot :

    umount /proc || umount -lf /proc
    umount /sys /dev/pts
    exit
    sudo umount /mnt/dev /mnt
  16. 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.

1voto

Stefano Mtangoo Points 2730

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.

0voto

Melvin Points 111

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

0voto

leftaroundabout Points 756

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.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X