J'essaie de réparer un Ubunu 14.04 cassé avec chroot. Ce que j’ai fait, c’est de démarrer Ubuntu à partir de l’USB monté sur le système original qui doit être réparé et remplacé par ce système avec chroot:
Sudo mount /dev/sdXY /mnt
Sudo mount -o bind /dev /mnt/dev
Sudo mount -o bind /sys /mnt/sys
Sudo mount -t proc /proc /mnt/proc
Sudo cp /proc/mounts /mnt/etc/mtab
Sudo chroot /mnt /bin/bash
Cela a bien fonctionné, mais dans l'environnement chroot
, je n'ai pas accès à Internet. Par conséquent, apt
n'est pas en mesure de résoudre les noms d'hôte. Qu'est-ce que je suis supposé faire?
ping www.askubuntu.com
ne fonctionne pas non plus.
Sur les systèmes Ubuntu plus récents, la résolution de nom est gérée par le service resolvconf et /etc/resolv.conf est un lien symbolique vers /run/resolvconf/resolv.conf. Vous pouvez soit ajouter un montage de liaison au système de fichiers/run avec vos autres montages de liaison avant d'exécuter la commande chroot.
Sudo mount -o bind /run /mnt/run
de sorte que le système chroot collecte les paramètres DNS du système hôte ou, une fois que vous êtes dans le système chrooté, créez temporairement un fichier /etc/resolv.conf statique avec le ou les serveurs de noms de votre choix, par exemple.
echo 'nameserver 8.8.4.4' | Sudo tee -a /etc/resolv.conf