Ich versuche ein defektes Ubunu 14.04 mit chroot zu reparieren. Was ich getan habe, ist, Ubuntu von einem USB-fähigen System zu booten, das repariert und mit chroot auf dieses System umgestellt werden muss:
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
Das hat gut funktioniert, aber in chroot
Umgebung habe ich keinen Zugang zum Internet und kann daher apt
keine Hostnamen auflösen. Was soll ich machen?
ping www.askubuntu.com
geht auch nicht.
for d in dev sys run proc; do sudo mount -o bind /$d /mnt/$d ; done
Antworten:
Auf neueren Ubuntu-Systemen wird die Namensauflösung vom Dienst resolvconf übernommen, und /etc/resolv.conf ist eine symbolische Verknüpfung zu /run/resolvconf/resolv.conf. Sie können entweder dem Dateisystem / run zusammen mit Ihren anderen Bindemounts einen Bindemount hinzufügen, bevor Sie den Befehl chroot ausführen
Damit das Chroot-System die DNS-Einstellungen des Host-Systems übernimmt oder, sobald Sie sich im Chroot-System befinden, vorübergehend eine statische Datei /etc/resolv.conf mit einem oder mehreren Nameservern Ihrer Wahl erstellt, z
quelle
sudo mount --bind /run /mnt/run
hat bei mir funktioniert, als ich in ein verpfuschtes 17.10-Upgrade geraten bin. Danke für die Antwort!