Ana bilgisayar adlarını chroot'ta nasıl çözebilirim?


15

Kırık bir Ubunu 14.04'ü chroot ile onarmaya çalışıyorum. Yaptığım şey, Ubuntu'yu USB'den önyüklemek ve onarılması ve bu sisteme chroot ile değiştirilmesi gereken orijinal sistemi kurmaktır:

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 

Bu iyi çalıştı, ancak chrootortamda internete erişimim yok, bu yüzden aptana bilgisayar adlarını çözemezsiniz. Ne yapmam gerekiyor?

ping www.askubuntu.com

de çalışmıyor.


Bence for d in dev sys run proc; do sudo mount -o bind /$d /mnt/$d ; done
emrim

deneyin ve yakında bana geri dön :-)
Avinash Raj

Çalışıyor gibi görünüyor, ama tam olarak emin değilim, çünkü bu benim çalışmamın başka bir nedeni olabilir. Yine de teşekkürler!
user5950

Yanıtlar:


21

Daha yeni Ubuntu sistemlerinde ad çözümlemesi resolvconf hizmeti tarafından işlenir ve /etc/resolv.conf /run/resolvconf/resolv.conf için sembolik bir bağlantıdır. Chroot komutunu çalıştırmadan önce / run dosya sistemine diğer bağlama bağlarınızla birlikte bir bağlama bağlaması ekleyebilirsiniz

sudo mount -o bind /run /mnt/run

böylece chroot sistemi ana bilgisayar sisteminin DNS ayarlarını alır veya chrootlu sisteme girdiğinizde geçici olarak seçtiğiniz ad sunucularıyla statik /etc/resolv.conf oluşturun.

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

2
"Daha yeni Ubuntu sistemleri" nelerdir; başka bir deyişle ad çözümlemesi hangi sürümden beri resolvconf tarafından işlenir?
Pro Backup

@ProBackup en azından 12.04'ten itibaren sanırım, rapor edilmesine rağmen - Ubuntu'da DNS'ye
steeldriver

1
yapıyor sudo mount --bind /run /mnt/runbana botched 17.10 yükseltme chrooting çalıştı. Cevap için teşekkürler!
labirent

Kalıcı bir çözüm var mı?
gromit190

1
Tüm / run dizinini çok fazla soketle bağlarsanız, muhtemelen krootun amacını yener, bu yüzden muhtemelen sadece gerekli soketleri bağlamak daha iyi bir fikirdir (resolvconf, belki nscd ve syslog)
9
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.