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

65

J'essayais de supprimer d'anciens noyaux, mais j'ai dû supprimer 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?

    
posée user7242 25.02.2011 - 23:31
la source

5 réponses

87

Démarrez sur un CD en direct (ou sur l’USB en direct), montez certains systèmes, chrootez-le 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ôte ne peuvent 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 requis car vous êtes root après un chroot)
  7. 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
    
  8. Redémarrez et retirez le CD ou l’USB: sudo reboot
réponse donnée Lekensteyn 25.02.2011 - 23:41
la source
52

Cette procédure étendue explique la plupart des complications pouvant survenir, y compris les problèmes de connexion à Internet dans chroot , sans savoir quel package de noyau installer (avant Ubuntu 12.10, il ne toujours pas soit linux-image-generic ), ne sachant pas au départ quelle partition ou quel disque physique contient le système de fichiers / et une partition /boot distincte.

Je n'ai pas écrit ceci en référence à l'une des autres procédures ici, mais vous remarquerez certaines similitudes. Je l’ai simplement inspiré de la procédure ici (bien que ces instructions soient très différentes, je les ai largement adaptées). , et seules certaines commandes, pas de prose, sont copiées).

Vous avez supprimé tous les paquets du noyau, et Ubuntu ne peut pas démarrer sans un noyau installé. Donc, la solution consiste à démarrer depuis un CD / DVD / USB en direct, chroot sur le système installé et à installer un noyau dedans.

  1. Démarrez depuis un CD / DVD en direct Ubuntu ou un lecteur flash USB en direct.

  2. Sélectionnez Essayez Ubuntu (et non Installez Ubuntu ).

  3. Lorsque le bureau s’ouvre, vérifiez que vous êtes connecté à Internet. Si vous ne l'êtes pas, connectez-vous à Internet. Une façon de voir si vous êtes connecté à Internet est d'ouvrir un navigateur Web. Vous pouvez même suivre le reste des instructions en apportant cette réponse à Ask Ubuntu dans votre navigateur Web, dans le système CD / DVD / USB en direct. Je recommande fortement de le faire.

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

  5. Dans la fenêtre Terminal, exécutez cette commande pour répertorier vos partitions:

     sudo parted -l
    

    Vous allez voir quelque chose comme ça (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!
    
  6. 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 partition ext4 , c’est elle.

    • Si vous avez plus d’une partition ext4 , c’est probablement la première. Cependant, si le premier est très petit - moins d’un gigaoctet - alors cela pourrait être une partition /boot distincte (souvenez-vous de celle-là aussi).

      Veuillez noter que si boot est répertorié sous Flags , cela n'a rien à voir avec le fait qu'une partition soit ou non une partition /boot distincte. Mon système, dont les informations sont répertoriées ci-dessus, n'a pas une partition /boot distincte.

    • 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. Ajoutez simplement le numéro de partition à la fin de celui-ci. Le nom de périphérique de la partition contenant mon système de fichiers / est donc /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 fiche comme celle ci-dessus. Mais à moins qu'un autre système de type Unix ne soit installé, vous ne disposerez probablement que d'un seul disque contenant des partitions ext4 , du moins sans les avoir créées intentionnellement sur un autre disque. Si vous avez plusieurs lecteurs avec des partitions ext4 , la partition ext4 qui contient votre système de fichiers / se trouve probablement sur un lecteur que également contient une partition linux-swap .

    • Il est possible que le système de fichiers / de votre système Ubuntu se trouve sur une partition de type autre que ext4 . Lorsque cela se produit, il y a presque toujours ext3 , et presque toujours sur un système assez ancien. Il est très rare que cela soit le cas, à moins que vous ne définissiez intentionnellement les choses de cette façon.

    N'oubliez pas le nom de périphérique de la partition contenant votre système de fichiers / (ou notez-le). S'il est différent de /dev/sda1 , vous devez remplacer /dev/sda1 par celui-ci dans les étapes ci-dessous.

    (Si vous avez l’impression que vous avez une partition /boot distincte, n'oubliez pas le nom du périphérique pour cela aussi.)

  7. Montez le système de fichiers / sur /mnt et montez son système de fichiers /dev :

    sudo mount /dev/sda1 /mnt
    sudo mount --bind /dev /mnt/dev
  8. Vérifiez si le système Ubuntu endommagé que vous réparez a une partition /boot distincte qui doit être montée séparément. (Si vous êtes sûr que ce n’est pas le cas, vous pouvez passer 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 forcément exactement cela), /boot du système cassé se trouve sur la même partition que son / et vous n'avez rien à monter pour y accéder.

    Mais s'il n'y a pas de sortie, vous devrez monter le système de fichiers /boot :

    sudo mount BOOT-PARTITION /mnt/boot

    Remplacez BOOT-PARTITION par le nom de périphérique de la partition /boot (voir l'étape 6 ci-dessus).

  9. chroot dans le système endommagé, montez les fichiers virtuels importants restants systèmes de fichiers, et définir 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
    
  10. Déterminez si l'accès Internet fonctionne à partir de chroot by ping

    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 cela ressemble le plus à cela, et que le nombre avant % packet loss est inférieur à 100, alors la connexion Internet dans chroot fonctionne:

      5 packets transmitted, 5 received, 0% packet loss, time 4006ms

      Cela fonctionne, vous pouvez donc ignorer l'étape 11 .

    • Si cela ressemble le plus à cela, et que le nombre avant % packet loss est égal à 100, la connexion doit être résolue. Assurez-vous que la connexion sur le système CD en direct (par exemple, via un navigateur Web ou en exécutant la même commande dans un autre onglet / fenêtre Terminal différent de chroot ) fonctionne. Assurez-vous de taper correctement la commande. Utilisez www.google.com si vous ne l'avez pas été.

    • Si la sortie ne ressemble en rien à 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 chroot .

  11. Configurez la mise en réseau dans chroot . Ignorez cette étape à moins que vous n'ayez une erreur unknown host à l'étape 10 ci-dessus.

    Pour configurer la mise en réseau, sauvegardez le fichier hosts du système défectueux et copiez les fichiers hosts et resolv.conf du système CD en direct. (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.)

    Ouvrez un nouvel onglet Terminal ( Ctrl + Shift + T ) ou, si vous préférez, un nouvelle fenêtre de terminal ( Ctrl + Shift + N , ou simplement Ctrl + < kbd> Alt + T ). Exécutez ces commandes dedans:

    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 commande 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 depuis chroot . Ça devrait.

  12. Déterminez le paquet de noyau à installer. Habituellement, ce sera linux-image-generic . Mais pas toujours.

    Si vous n’êtes pas certain de l’installer, cela dépendra en partie de la version d’Ubuntu que vous avez installée et d’autres informations. Si vous n'êtes pas sûr de la version d'Ubuntu que vous avez installée, recherchez-la en exécutant cette commande (dans le chroot , pas dans une fenêtre / un onglet de terminal distinct):

    lsb_release -r
    
    • Sur Ubuntu 12.10 (la prochaine version d’Ubuntu, actuellement en développement), always sera linux-image-generic . (Voir ceci , this , et this .)

    • Sur Ubuntu 12.04 LTS, les possibilités sont probablement les suivantes: linux-image-generic et linux-image-generic-pae . (Contrairement aux versions précédentes, la version 12.04 n’a plus de noyaux de serveur et de bureau distincts).

      • 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’installer un système Ubuntu 32 bits sur un ordinateur 32 bits ou 64 bits. De plus, vous utilisez peut-être un live CD 32 ou 64 bits pour réparer un système 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 , not dans un fenêtre / onglet Terminal distinct):

        dpkg-architecture -qDEB_HOST_ARCH_BITS
        

        La sortie sera soit 32 , soit 64 .

        (Notez que uname -m est non une manière correcte de trouver ces informations, car même si elles sont exécutées dans chroot , elles vous indiqueront l’architecture de > exécutant le noyau , qui est le noyau du système CD live et non le noyau du système installé (cassé).

      • Si le système Ubuntu installé (que vous corrigez) est la version 32 bits, le meilleur noyau à utiliser dépendra de la quantité de mémoire vive 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 pu installer les noyaux PAE. Voir la résolution à ce bogue . Si vous voulez apprendre ce qu'est PAE, voir cet article de Wikipedia .Si vous voulez en savoir plus sur PAE dans Ubuntu, consultez cette page wiki Ubuntu .)

        Si vous ne savez pas combien de RAM vous avez, exécutez cette commande pour savoir:

        grep MemTotal /proc/meminfo
        

        Ceci est répertorié dans kilooctets . Pour convertir en gigaoctets , divisez par 1 048 576 (1024 2 ).

        • 3 concerts = 3,145,728 ko
    • Sous Ubuntu les versions avant 12.04, les possibilités probables sont linux-image-generic , linux-image-generic-pae et linux-image-server .

      • Si vous utilisez un système serveur Ubuntu, 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 endommagé.

    (Comme précédemment, sauf indication contraire explicite, ces commandes sont exécutées dans chroot , pas dans une fenêtre / un onglet de terminal distinct.)

    apt-get update
    apt-get -y install linux-image-generic

    Remplacez linux-image-generic par tout autre package de noyau que vous avez décidé d'installer à l'étape 12 ci-dessus, si différent.

  14. Si vous deviez effectuer l’étape 11 pour configurer la mise en réseau dans chroot , restaurez l’ancien fichier hosts . Si vous avez ignoré l’étape 11, ignorez également cette étape.

    Pour le restaurer, exécutez cette commande:

    cp /etc/hosts.old /etc/hosts
    
  15. Démonter les systèmes de fichiers, exit ing sur 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 en direct, en retirant le lecteur de 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 y avez installé un paquet de noyau (et dans le cadre de l'installation, le noyau fourni sera ajouté au menu de démarrage de GRUB2). Si tout fonctionnait correctement, votre système devrait démarrer sans problème. (Je pense qu'il est possible que le démarrage prenne un peu plus de temps que d'habitude, cette fois-ci.)

AVERTISSEMENT: Je n’ai pas testé la procédure ci-dessus sur tous les systèmes possibles, il est donc possible qu’il y ait une erreur que je n’ai pas identifiée.

À l’avenir, je vous recommande de toujours essayer d’installer deux noyaux. Il est bon d'en avoir deux au cas où l'un d'entre 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 conserver deux noyaux et que vous en désinstallez accidentellement un de plus que vous ne le pensiez et que vous redémarrez, il vous en reste un pour démarrer.

    
réponse donnée Eliah Kagan 20.07.2012 - 17:58
la source
0

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

Un chroot pourrait fonctionner, chroot signifie que lorsque vous démarrez un système, vous modifiez le système de fichiers racine. Par exemple, vous avez démarré à partir d’un CD live, mais vous avez remplacé la racine "/" par l’endroit où votre ubuntu est installé.

Disons que votre ubuntu est installé sur / dev / sda2, puis 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 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 devinettes ici, car je n'avais jamais eu à le faire auparavant, mais cela devrait être le cas. Je ne sais pas si vous obtenez un avertissement d'erreur fstab (comme ne peut pas 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 sujet: lien

    
réponse donnée Melvin 26.02.2011 - 13:23
la source
0

Après avoir enlevé hier les anciens noyaux de Trusty14.04 (FTR: je n'ai pas supprimé les deux plus récents!) mon système ne s’amorcerait 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 installer linux-image-generic à partir d'un CD en direct. Il a installé 150 Mo de nouveau noyau, mais cela n'a malheureusement pas résolu le problème.

Heureusement, j'ai trouvé cette page . L'outil Boot-Repair a bien fonctionné, mon système fonctionne à nouveau.

    
réponse donnée leftaroundabout 16.07.2015 - 13:00
la source
0

Je voulais juste ajouter mon expérience passée à évoluer vers Willy. J'ai nettoyé un peu et je me suis retrouvé avec seulement Memtest. google m'a amené à comprendre que j'avais enlevé les noyaux. Une de mes contraintes est la lenteur du réseau et le téléchargement complet d’ISO n’est donc pas une option. J'ai donc utilisé CD Minimal Ubuntu (seulement 40 Mo) et démarré dessus. Après avoir détecté l'option du matériel (ce qui m'a aidé à me connecter au sans fil), je suis entré dans l'option shell. J'ai suivi les instructions de @Lekensteyn et j'ai réussi. peu de choses cependant: vous devez copier resolv.conf avant de partir chroot ou bien votre DNS sera vissé et depuis l'utilisateur connecté il n'y a pas besoin de root où que ce soit.

Je connais son ancienne mais je pensais qu’ajouter cette réponse apporterait une valeur ajoutée à ceux qui rencontreraient le problème.

    
réponse donnée Stefano Mtangoo 14.04.2016 - 22:28
la source

Lire d'autres questions sur les étiquettes