Bagaimana cara mengatasi nama host di chroot?

15

Saya mencoba untuk memperbaiki Ubunu 14,04 yang rusak dengan chroot. Apa yang saya lakukan, adalah mem-boot Ubuntu dari USB yang terpasang pada sistem asli yang harus diperbaiki dan diubah ke sistem ini dengan 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 

Itu bekerja dengan baik, tetapi di chrootlingkungan saya tidak memiliki akses ke internet, jadi apttidak dapat menyelesaikan nama host. Apa yang harus aku lakukan?

ping www.askubuntu.com

juga tidak bekerja.

pengguna5950
sumber
Saya pikir perintah saya seharusnyafor d in dev sys run proc; do sudo mount -o bind /$d /mnt/$d ; done
Avinash Raj
coba dan segera kembali padaku :-)
Avinash Raj
Tampaknya bekerja, tetapi saya tidak begitu yakin, karena itu menjadi alasan lain saya membuatnya bekerja. Bagaimanapun, terima kasih!
user5950

Jawaban:

21

Pada sistem Ubuntu yang lebih baru, resolusi nama ditangani oleh layanan resolvconf, dan /etc/resolv.conf adalah tautan simbolis ke /run/resolvconf/resolv.conf. Anda bisa menambahkan bind mount ke / jalankan filesystem bersama bind mounts Anda yang lain sebelum menjalankan perintah chroot

sudo mount -o bind /run /mnt/run

sehingga sistem chroot mengambil pengaturan DNS sistem host atau, begitu Anda berada di sistem chroot, untuk sementara membuat /etc/resolv.conf untuk sementara dengan nameserver pilihan Anda, mis.

echo 'nameserver 8.8.4.4' | sudo tee -a /etc/resolv.conf
Steeldriver
sumber
1
Apa itu "sistem Ubuntu yang lebih baru"; dengan kata lain sejak versi mana resolusi nama ditangani oleh resolvconf?
Pro Backup
@ ProBackup setidaknya dari 12,04 Saya pikir, meskipun mungkin telah di-backport - lihat DNS di Ubuntu 12.04
steeldriver
1
melakukan sudo mount --bind /run /mnt/runbekerja untuk saya chroot ke upgrade 17.10 yang gagal. Terima kasih atas jawabannya!
labirin
Apakah ada solusi permanen?
gromit190
1
Ini mungkin sedikit mengalahkan tujuan chroot jika Anda mengikat seluruh direktori / run dengan banyak soket, jadi mungkin mengikat hanya soket yang diperlukan adalah ide yang lebih baik (resolvconf, mungkin nscd dan syslog)
eckes