Forum Linux.debian/ubuntu [Résolu] Comment charger un module ubifs absent de l'initrd ?

Posté par . Licence CC by-sa
Tags : aucun
2
5
juil.
2017

Bonjour,

je craque: j'ai mis à jour mon serveur sheevaplug depuis jessie vers stretch et c'est la catastrophe.

Le système de mon sheevaplug est stocké sur la mémoire flash utilisant UBIFS.
Or, lors de la mise à jour vers stretch, l'initramfs-tools a eu la bonne idée de modifier ses paramètres et de ne plus inclure le module correspondant dans l'initrd.

Du coup je me retrouve avec un système à jour dans la mémoire flash, mais impossible de booter dessus parce que le module ubifs qui permettrait de le monter au démarrage n'est pas présent.

Dans le shell de l'initramfs, j'ai bien essayé de copier à la main le module en question et de le charger, mais insmod m'envoie paître parce que les symboles du modules ne sont pas reconnus.

C'est très frustrant, et j'aimerais vraiment pouvoir éviter de tout réinstaller from scratch.

N'ayant pas réussi à trouver de cas similaire et résolu sur la toile, je me tourne vers vous: que faut il que je fasse pour pouvoir charger ce module ubifs afin de me chrooter dans le système pour le corriger ?

merci

  • # et hop !

    Posté par . Évalué à 5.

    Le module ne voulait pas se charger parce que j'avais oublié un module dont il dépendait: ubi

    Pour ceux qui se retrouveraient dans la même situation:

    1. sur une clé usb formatée en ext4, copier le module ubifs.ko et ubi.ko, ainsi le contenu de /usr/sbin/ubiattach du package mtd-utils
    2. booter votre sheevaplug, connectez vous au port série et attendez de tomber sur le shell de l'initramfs
    3. monter votre clé usb où cela vous chante
    4. copier ubifs.ko dans /lib/modules/VOTRE_VERSION_DU_KERNEL/kernel/fs/ubifs/
    5. copier ubi.ko dans /lib/modules/VOTRE_VERSION_DU_KERNEL/kernel/drivers/mtd/
    6. cd /lib/modules/VOTRE_VERSION_DU_KERNEL/kernel/drivers/mtd/ && insmod ubi.ko
    7. cd /lib/modules/VOTRE_VERSION_DU_KERNEL/kernel/fs/ubifs && insmod ubifs.ko
    8. mkdir mount
    9. /CHEMIN_CLE_USB/ubiattach -p /dev/mtd2
    10. mount -t ubifs /dev/ubi0_0 /mount
    11. chroot /mount
    12. echo -e 'ubi\nubifs\n' >> /etc/initramfs-tools/modules
    13. mount -t proc null /proc && mount -t sys null /sys
    14. mkdir /var/tmp && mount -t tmpfs null /var/tmp
    15. mkdir /var/lib/initramfs-tools
    16. update-initramfs -u -t

    et si tout se passe bien, vous pouvez redémarrer le cœur léger !

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.