Як вирішити імена хостів у chroot?


15

Я намагаюся виправити зламану Ubunu 14.04 chroot. Що я зробив, це завантажувати Ubuntu з USB, встановленої оригінальною системою, яку потрібно відремонтувати і змінити на цю систему з 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 

Це добре працювало, але в chrootсередовищі я не маю доступу до Інтернету, тому aptне можу вирішити імена хостів. Що я повинен робити?

ping www.askubuntu.com

теж не працює.


Я думаю, моя команда повинна бутиfor d in dev sys run proc; do sudo mount -o bind /$d /mnt/$d ; done
Авінаш Радж

спробуйте повернутися до мене найближчим часом :-)
Avinash Raj

Здається, це працює, але я не зовсім впевнений, тому що це є моєю іншою причиною змусити його працювати. В будь-якому випадку, дякую Вам!
user5950

Відповіді:


21

У нових системах Ubuntu роздільною здатністю імен керує служба reslvconf, а /etc/resolv.conf є символічним посиланням на /run/resolvconf/resolv.conf. Ви можете або додати прив’язане кріплення до файлової системи / run разом з іншими прив'язками перед виконанням команди chroot

sudo mount -o bind /run /mnt/run

так що система chroot підбирає налаштування DNS хост-системи або, як тільки ви перебуваєте в системі з системою chroot, тимчасово створюйте статичний /etc/resolv.conf з сервером імен на ваш вибір, наприклад

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

2
Що таке "новіші системи Ubuntu"; інакше кажучи, з якої версії роздільна здатність імені обробляється resoluvconf?
Pro Резервне копіювання

@ProBackup принаймні з 12.04 Я думаю, хоча це, можливо, було підтримано - див DNS в Ubuntu 12.04
steeldriver

1
це sudo mount --bind /run /mnt/runпрацювало для мене, хронізуючи оновлене оновлення 17.10. Дякую за відповідь!
лабіринт

Чи є постійне рішення?
gromit190

1
Це, мабуть, трохи переможе мету chroot, якщо ви зв'язати весь / run каталог з великою кількістю сокетів, тому, ймовірно, прив'язка лише потрібних сокетів є кращою ідеєю (резольконф, можливо, nscd і syslog)
eckes
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.