Je ne peux plus allumer mon pc

KAREX -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, je suis sur ubuntu 16 . 04 je ne peux plus allumer mon ordi cela m'indique : Fichier /initrd.img-4.13.0-45-generic non disponible
je l'avais supprimer sans le vouloir et j'avais redémarrer mon pc ce qu'il ne fallait pas faire pouvez vous m'aider merci encore

1 réponse

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    Bonjour,

    Pour le supprimer tu as dû y aller fort car il faut être en root et se promener dans
    /boot
    ! Je ne pense pas que
    boot-repair
    soit capable de réinstaller le noyau pour toi donc tu vas devoir faire une bonne partie de ce que
    boot-repair
    fait à la main.

    L'approche la plus simple consiste à réinstaller (attention à ne pas formater
    /home
    si tu ne veux pas perdre tes documents).

    Si tu veux réparer, attention ça va être un peu technique. Pour cela, il faut un un live CD ou un live USB (e.g. le CD ou la clé d'installation qui t'a permis d'installer ubuntu) et démarrer dessus. Une fois le live lancé, fait les étapes d'installation jusqu'à configurer le réseau, puis interromps l'installation. Tu auras alors l'opportunité de lancer un terminal à partir duquel on va faire la réparation.

    Dans ce terminal, il faut à préparer l'arborescence linux du disque dur de sorte dans un répertoire arbitraire (disons
    /linux
    ) et faire en sorte que dans ce dossier, on ait monté
    /
    ,
    /boot
    (si
    /boot
    est une partition dédiée),
    /sys
    et
    /proc
    comme si on avait démarré normalement. Toutes ces conditions sont nécessaires pour avoir un chroot suffisant redéployer le noyau et réinstaller grub.

    Si tu as fait une installation LVM (en particulier si tu as chiffré ton disque dur) il y a quelques étapes supplémentaires, donc précise-nous si tu es dans cette situation. Dans ce qui suit, je donne la procédure en supposant que tu n'utilises pas LVM et à pour ma propre installation. Dans ton cas les nom de device devront être adaptés en fonction du résultat de la commande
    parted -l
    .

    Étape 1 : analyser comment est installé ton linux

    Cette étape permet de préparer un terminal, lancé depuis le live CD ou USB et faire en sorte qu'il se comporte comme si on avait démarré normalement. C'est ce que fait en arrière boutique un outil comme
    boot-repair
    .

    Examine la table des partitions :

    sudo parted -l


    Exemple :

    (mando@aldur) (~) $ sudo parted -l
    [sudo] Mot de passe de mando :
    Model: WDC PC SN520 SDAPNUW-512G-1002 (nvme)
    Disk /dev/nvme0n1: 512GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    Disk Flags:

    Number Start End Size File system Name Flags
    1 1049kB 274MB 273MB fat32 EFI system partition boot, esp
    2 274MB 290MB 16,8MB Microsoft reserved partition msftres
    3 290MB 407GB 406GB ntfs Basic data partition msftdata
    5 407GB 411GB 3999MB linux-swap(v1) swap
    6 411GB 441GB 30,0GB ext4
    7 441GB 511GB 70,9GB ext4
    4 511GB 512GB 682MB ntfs Basic data partition hidden, diag


    Ici le disque intéressant est /dev/nvme0n1 (dans ton cas ce sera peut-être
    /dev/sdb
    ). Attention car dans ton cas l'un des disques correspondra au live USB.

    La partition
    /
    est généralement formatée en ext4. Ici il y en a deux. La taille permet de deviner que la partition 6 correspond à
    /
    et la partition 7 correspond à
    /home
    .

    Examine les noms des devices associés aux partitions du disque en tapant la commande (à adapter avec le nom de ton disque) :

    sudo -1 /dev/nvme0n1*


    Exemple :

    (mando@aldur) (~) $ ls -1 /dev/nvme0n1*
    /dev/nvme0n1
    /dev/nvme0n1p1
    /dev/nvme0n1p2
    /dev/nvme0n1p3
    /dev/nvme0n1p4
    /dev/nvme0n1p5
    /dev/nvme0n1p6
    /dev/nvme0n1p7


    Le device associé à la partition
    /
    est donc
    /dev/nvme0n1p6
    dans cet exemple (dans ton cas ce sera peut être
    /dev/sdb5
    ). Ensuite on monte le device dans un répertoire vide créé pour l'occasion

    Étape 2 : préparer le
    chroot


    sudo mkdir -p /linux
    sudo mount /dev/nvme0n1p6 /linux
    ls /linux


    Si tu as bien visé, la commande
    ls
    devrait afficher des répertoires qui correspondent à une arborescence linux (boot, etc, lib, home, var, usr...). Sinon, lance sudo
    umount /linux
    et essaye avec un autre device.

    A présent il faut répliquer
    /dev
    dans
    /linux/dev
    :

    sudo mount -o bind /dev /linux/dev


    Si /boot est sur une partition dédiée du disque dur, il faut la monter dans
    /linux/boot
    (même procédure que pour / en adaptant le device et le répertoire cible).

    On doit alors pouvoir déplacer
    /
    au niveau de
    /linux
    , et dedans on monte
    /sys
    et
    /proc
    :

    sudo chroot /linux
    mount -t proc proc /proc
    mount -t sysfs sysfs /sys


    Étape 3 : réparer

    Dans ton cas il faut réinstaller le paquet associé à ton noyau. Tu peux retrouver cette information avec la commande
    dpkg -l | grep linux-image
    . Dans ton cas c'est probablement le paquet
    linux-image-amd64
    qui t'intéresse, donc on lancera :

    sudo apt update
    sudo apt install linux-image-amd64


    Note que grub devrait être automatiquement régénéré.

    Étape 4 : quitter le
    chroot
    et redémarrer

    On démonte dans le sens inverse des mount (comme pour des poupées russes) et on redémarre :

    sudo umount /proc
    sudo umount /sys
    exit # quitte le chroot
    cd /
    sudo umount /linux/dev
    sudo umount /linux
    sudo reboot


    et au redémarre du PC, on enlève la clé USB pour démarrer sur le disque dur...

    Bonne chance
    0