web-dev-qa-db-fra.com

Comment résoudre les noms d'hôtes dans chroot?

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.

15
user5950

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
20
steeldriver