Intento reparar un Ubunu 14.04 roto con chroot. Lo que hice fue arrancar Ubuntu desde USB montado en el sistema original que debe ser reparado y cambiado a este sistema con 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
Eso funcionó bien, pero en un chroot
entorno no tengo acceso a Internet, por apt
lo que no puedo resolver los nombres de host. ¿Que se supone que haga?
ping www.askubuntu.com
tampoco funciona
for d in dev sys run proc; do sudo mount -o bind /$d /mnt/$d ; done
Respuestas:
En los sistemas Ubuntu más nuevos, la resolución de nombres es manejada por el servicio resolvconf, y /etc/resolv.conf es un enlace simbólico a /run/resolvconf/resolv.conf. Puede agregar un montaje de enlace al sistema de archivos / run junto con sus otros montajes de enlace antes de ejecutar el comando chroot
para que el sistema chroot recoja la configuración DNS del sistema host o, una vez que esté en el sistema chroot, cree temporalmente un /etc/resolv.conf estático con los servidores de nombres que elija, p. ej.
fuente
sudo mount --bind /run /mnt/run
funcionó para mí chrooting en una actualización fallida 17.10. ¡Gracias por la respuesta!