18 votes

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

J'essaie de réparer une Ubunu 14.04 cassée avec chroot. Ce que j'ai fait, c'est de démarrer Ubuntu à partir d'une clé USB montée sur le système d'origine qui doit être réparé et de passer à 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 en chroot environnement Je n'ai pas accès à l'internet, donc apt n'est pas en mesure de résoudre les noms d'hôtes. Que dois-je faire ?

ping www.askubuntu.com

ne fonctionne pas non plus.

30voto

steeldriver Points 118154

Sur les systèmes Ubuntu les plus récents, la résolution de noms 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 bind au système de fichiers /run avec vos autres montages bind avant d'exécuter la commande chroot

sudo mount -o bind /run /mnt/run

afin que le système chroot prenne les paramètres DNS du système hôte ou, une fois que vous êtes dans le système chrooté, créez temporairement un /etc/resolv.conf statique avec le(s) serveur(s) de noms de votre choix, par ex.

echo 'nameserver 8.8.4.4' | sudo tee -a /etc/resolv.conf

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X