Làm thế nào để giải quyết tên máy chủ trong chroot?


15

Tôi cố gắng sửa chữa một chiếc Ubunu 14.04 bị hỏng bằng chroot. Những gì tôi đã làm là khởi động Ubuntu từ USB gắn hệ thống ban đầu phải sửa chữa và thay đổi hệ thống này bằng 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 

Điều đó đã làm việc tốt, nhưng trong chrootmôi trường tôi không có quyền truy cập vào internet, vì vậy aptkhông thể giải quyết tên máy chủ. Tôi phải làm gì bây giờ?

ping www.askubuntu.com

cũng không hoạt động.


Tôi nghĩ rằng lệnh của tôi phải làfor d in dev sys run proc; do sudo mount -o bind /$d /mnt/$d ; done
Avinash Raj

hãy thử và quay lại với tôi sớm :-)
Avinash Raj

Có vẻ như để làm việc, nhưng tôi không chắc chắn lắm, bởi vì đó là một lý do khác khiến nó hoạt động. Dù sao cũng cảm ơn bạn
dùng5950

Câu trả lời:


21

Trên các hệ thống Ubuntu mới hơn, độ phân giải tên được xử lý bởi dịch vụ phân giải và /etc/resolv.conf là một liên kết tượng trưng đến /run/resolvconf/resolv.conf. Bạn có thể thêm gắn kết liên kết vào hệ thống tập tin / chạy cùng với các liên kết gắn kết khác của bạn trước khi thực hiện lệnh chroot

sudo mount -o bind /run /mnt/run

để hệ thống chroot chọn cài đặt DNS của hệ thống máy chủ hoặc, khi bạn đang ở trong hệ thống chroot, hãy tạm thời tạo /etc/resolv.conf với máy chủ tên bạn chọn, ví dụ:

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

1
"Các hệ thống Ubuntu mới hơn" là gì; nói cách khác, từ phiên bản nào là độ phân giải tên được xử lý bởi Nghị quyết?
Sao lưu chuyên nghiệp

@ProBackup ít nhất từ 12.04 Tôi nghĩ rằng, mặc dù nó có thể đã được backported - xem DNS trong Ubuntu 12.04
steeldriver

1
làm sudo mount --bind /run /mnt/runviệc cho tôi chroot vào một bản nâng cấp 17.10 bị hỏng. Cảm ơn câu trả lời!
mê cung

Có một giải pháp lâu dài?
gromit190

1
Đây có thể là một chút đánh bại mục đích của chroot nếu bạn bind thư mục / chạy toàn với rất nhiều ổ cắm, vì vậy có thể ràng buộc chỉ có ổ cắm cần thiết là một ý tưởng tốt hơn (resolvconf, có lẽ nscd và syslog)
eckes
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.