Problème au démarrage / affichage de initramfs

Lee -  
 drom -
Bonjour,

J'ai voulu me lancer dans le grand bain de linux, il y a de celà un mois. Et j ai installé Zorin Os sur mon dd. Tout allait bien jusqu'à ce matin.
Depuis ce matin, mon écran affiche le message suivant :

BusyBox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3.2) built-in shell a(ash)
Enter 'help' for a list ogf built-in commands.

(initramfs)


Donc voulant trouver ma solution moi même et ne voulant pas perdre mes données, j'ai lu un peu sur le sujet et j'ai trouvé que le problème est que

1/je n'aurais pas dû forcer la fermeture (appui de 3s+ ) (mais alors que faire quand mon ordinateur bug? et aussi pourquoi bugge-t'il subitement?)

2/ c'est un problème de démarrage si je peux m'exprimer ainsi. Cependant, j'ai lu que je pouvais essayer la commande
fsck
. Sauf qu'elle n'apparaît pas quand j'écris
help
au démarrage.

Heureusement, j'ai ma clé USB bootable qui me permet d'essayer Zorin Os avant de l'installer /de l'installer.

J'ai lu aussi que depuis ma clé usb je pourrais réparer mon OS avec la commande
fsck -y /dev/sdb1
(j'ai conclu que c'était le
sdb
car sda semble être la clé USB bootable)

Sauf que pour faire les choses bien, j'avais crypté mon dd (une option que Zorin propose / je ne sais pas si tous les linux Os le proposent) et je crois (je n'en suis pas certain vu que je débute sur linux) que ca bloque entre autres choses.

J'ai essayé cette commande
sudo fdisk -l mount
pour essayer une réparation voir une réinstallation sans perte de données si possible, mais ca ne donne rien.

J'ai aussi essayé la commande
sudo fsck /dev/sdb1
, encore une fois sans plus de succès.

Donc j'ai finalement opté pour boot repair en suivant les lignes de codes pour l'installer et l'update // je l'ai lancé et il m'a sorti un rapport qui est ici. http://paste.ubuntu.com/p/8x3pSzjQSj/

Donc deux questions : selon le rapport de boot repair, mon problème est il réglé? Si non que puis je faire d'autre svp, sachant que j'aimerai ne pas perdre mes données.

Configuration: Linux / Firefox 73.0

2 réponses

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

    Plusieurs élément de réponses.

    Explication de l'erreur

    Par rapport à l'erreur busybox : grub est le menu qui permet de choisir sur quel système (et pour linux, avec quel noyaux et quelles options) on démarre. Quand grub plante, tu vois typiquement un terminal "busybox". Il peut planter pour de multiple raison (typiquement, un disque dur manquant, un noyau pas trouvé, des partitions incohérentes par rapport à sa configuration, etc).

    En pratique, busybox ne permet pas de faire grand chose. La plupart du temps, il faut passer par une réparation à l'aide d'une clé USB bootable. Depuis celle-ci il faut alors lancer un linux permettant de lancer un "vrai" terminal à partir, à partir duquel on pourra faire la réparation. En soit un disque (USB ou CD) d'installation linux suffit. Mais ça n'est pas évident quand on débute.

    C'est pour cela que boot-repair a été créé. C'est un linux bootable sur une clé usb, mais celui-ci a été personnalisé pour un débutant à faire la réparation. Donc, tu es sur la bonne voie :)

    Ensuite je ne sais pas qui t'a dit de faire un
    fsck
    (filesystem check) mais je doute fortement que ça te débloque. En terminologie windows, cela correspond à un scandisk, mais ça n'est pas ça qui corrigera ta configuration grub pour la rendre cohérente avec ton ou tes disques durs. Des commandes telles que
    sudo update-grub
    , lancées depuis ton linux "chrooté" ont beaucoup plus de sens.

    Quelques pré-requis


    Alors qu'est ce qu'un
    chroot
    .

    Sous linux, il n'y a pas de notion de lecteur comme sous windows. Pas de C: ou autre. Il y a une arborescence, dont la racine est
    /
    qui contient tout. La notion la plus proche est ce qu'on appelle sous linux les "devices" (voir /dev). Sur les linux modernes, les disques ont typiquement un nom qui suit cette nomenclature :
    • /dev/sda
      identifie le premier disque (USB, disque dur, autre...)
    • /dev/sdb
      identifie le second disque (USB, disque dur, autre...)
    • /dev/sda1
      identifie la 1ere partition du disque sda.
    • /dev/md0
      désigne un disque RAID


    Les devices en eux-mêmes ne sont pas directement lisibles. Il faut monter un device pour voir le contenu de la partition qu'il représente. C'est ce que fait la commande
    mount
    .

    En particulier, certains de ces devices seront monté (comme des poupées russes) de sorte à constituer le contenu exposé dans l'arborescence
    /
    . Typiquement :
    • /
      contient (si on omet les éléments qui suivent) la partition du système linux sur lequel tu as démarré
    • /home
      contient la partition linux contenant tes documents
    • les éventuels périphériques, partitions windows, partages distants, etc sont généralement montées dans un sous-dossier de
      /media
      ou de
      /mnt
      .


    Bref, comme
    /
    correspond au système linux sur lequel tu as démarré, il n'a pas le même sens quand tu démarres sur un linux USB ou sur le linux de ton disque dur.
    /
    correspond au système sur lequel tu as démarré. Mais par contre, si tu démarres sur ton linux USB, tu peux monter la partition du linux du disque dur dans un répertoire (disons
    /media/linux
    ).

    Ainsi, si tu démarres sur ton linux USB et que tu montes ton linux disque dur dans
    /media/linux
    , la configuration de grub sera à ce stade dans
    /media/linux/etc/default/grub
    et non
    /etc/default/grub
    .

    Par contre, linux permet de "déplacer"
    /
    (sous certaines conditions), dans mon exemple, au niveau de
    /media/linux
    . C'est ce qu'on appelle faire un
    chroot
    .. Donc si tu fais en sorte que dans ce répertoire, tout le nécessaire soit présent et que tu te chrootes dedans, alorstout se passera dès lors dans ce terminal "comme si" tu avais démarré sur le linux du disque dur. Et de là, en particulier tu pourras réinstaller/reconfigurer tout ce qui est cassé.

    Réparer grub (en temps normal)

    L'essentiel de la procédure indiquée dans boot-repair consistent à réaliser ce
    chroot
    . Vu que tu es arrivé à faire un rapport boot repair, c'est que tu y es arrivé.

    Idéalement, il suffit alors de lancer dans l'environnement chrooté
    sudo update-grub
    ce qui doit ressembler à ceci :

    (mando@aldur) (~) $ sudo update-grub
    [sudo] Mot de passe de mando :
    Generating grub configuration file ...
    Found background image: /usr/share/images/desktop-base/desktop-grub.png
    Found linux image: /boot/vmlinuz-5.4.0-4-amd64
    Found initrd image: /boot/initrd.img-5.4.0-4-amd64
    Found linux image: /boot/vmlinuz-5.4.0-3-amd64
    Found initrd image: /boot/initrd.img-5.4.0-3-amd64
    Found linux image: /boot/vmlinuz-5.3.0-3-amd64
    Found initrd image: /boot/initrd.img-5.3.0-3-amd64
    Found linux image: /boot/vmlinuz-4.19.0-6-amd64
    Found initrd image: /boot/initrd.img-4.19.0-6-amd64
    Found Windows Boot Manager on /dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi
    Adding boot menu entry for EFI firmware configuration
    done


    Première question, que se passe-t'il dans ton cas ? (copie colle le résultat)

    Dans ton cas

    Si on regarde ton rapport boot repair, tu as des erreurs bizarre :

    ERROR: pdc: reading /dev/dm-0[Input/output error]
    ERROR: pdc: reading /dev/dm-0[Input/output error]
    ERROR: pdc: reading /dev/dm-0[Input/output error]
    ERROR: pdc: reading /dev/dm-0[Input/output error]
    ERROR: pdc: reading /dev/dm-0[Input/output error]
    ERROR: pdc: reading /dev/dm-0[Input/output error]


    Ça c'est pas bon, ça veut dire qu'un disque RAID (logiciel ?) est bancale. Je ne sais pas si tu t'es amusé à configuré du RAID mais c'est mauvais signe ce genre d'erreur.

    De plus, tu dis que tu as chiffré ton disque. Ce qui signifie que
    mount
    seul ne suffit pas, il faut d'abord déchiffrer la partition. L'idée reste la même mais ça complexifie légèrement car il y a du LVM et de LUKS qui s'en mêlent. Et dans ton cas probablement du RAID en prime...

    Méthode 1 : la plus simple

    Tu réinstalles, tu oublies le chiffrement et le RAID sauf si tu sais ce que tu fais.

    Méthode 2 : si tu as du courage

    Partitionnement supposé (à adapter dans ton cas)
    • /dev/sda1
      is
      /boot
    • /dev/sda5
      is an encrypted with LUKS containing a LVM partition, where reside
      /
      and the swap.


    Étape 1 : Monter le système

    sudo -s
    mkdir -p /mnt/linux
    cryptsetup luksOpen /dev/sda5 sda5_crypt # This creates /dev/mapper/sda5_crypt
    # Enter the LUKS password
    apt-get install lvm2
    modprobe dm-mod
    vgchange -ay
    lvscan # À ce stade on devrait voir /dev/Ubuntu/{root, swap_1} ACTIVE


    Maintenant on monte tout.

    mount /dev/mapper/Ubuntu-root /mnt/linux
    mount /dev/sda1 /mnt/linux/boot
    mount --bind /dev /mnt/linux/dev
    chroot /mnt/linux
    mount -t proc proc /proc
    mount -t sysfs sys /sys
    mount -t devpts devpts /dev/pts
    /etc/init.d/lvm2 start
    /etc/init.d/lvm2-lvmetad start
    /etc/init.d/lvm2-lvmpolld start


    De là on peut lancer
    update-grub
    (ouf).

    Étape 2 : Réparer
    grub


    On vérifie les paramètres de
    cryptsetup
    en se basant sur ce tutoriel.

    1) Vérifier que la ligne concernant
    sda5
    est présente dans
    /etc/crypttab
    (on peut ouvrir ce fichier avec
    nano /etc/crypttab
    , ctrl x pour sauver et quitter).

    Exemple : (attention, ces valeurs dépendent de ton système) :

    sda5_crypt UUID=8af9859f-9922-4ed3-9f9b-bc31f0c9aeb4 none luks,retry=1,lvm=Ubuntu
    storage_crypt UUID=f4e689ec-fda1-450e-8787-61c081c0bee7 none luks


    2) Vérifier également
    /etc/initramfs-tools/conf.d/cryptroot
    .

    Exemple : (attention, ces valeurs dépendent de ton système) :

    CRYPTROOT=target=sda5_crypt,source=/dev/disk/by-uuid/8af9859f-9922-4ed3-9f9b-bc31f0c9aeb4


    3) Si tout est référencé, on peut alors lancer :

    update-initramfs -k all -c


    4) Maintenant, on contrôle
    /etc/default/grub
    .

    Exemple : (attention, ces valeurs dépendent de ton système) :

    GRUB_CMDLINE_LINUX="cryptopts=target=sda5_crypt,source=/dev/disk/by-uuid/8af9859f-9922-4ed3-9f9b-bc31f0c9aeb4,lvm=Ubuntu"

    5) Enfin, on réinstalle grub

    update-grub


    6) ... et on quitte proprement

    /etc/init.d/lvm2 stop
    /etc/init.d/lvm2-lvmetad stop
    /etc/init.d/lvm2-lvmpolld stop
    umount /sys
    umount /proc
    umount /dev/pts
    exit
    umount /mnt/linux/boot
    umount /mnt/linux/dev
    umount /mnt/linux
    reboot


    Bonne chance :-)
    0