chroot에서 호스트 이름을 확인하는 방법?


15

chroot로 깨진 Ubunu 14.04를 복구하려고합니다. 내가 한 것은 수리하고 chroot를 사용 하여이 시스템으로 변경 해야하는 원래 시스템을 마운트 한 USB에서 Ubuntu를 부팅하는 것입니다.

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 라즈에게

시도하고 곧 다시 연락 :-)
Avinash Raj

작동하는 것 같지만 잘 작동하지 않는 다른 이유가 있기 때문에 확실하지 않습니다. 어쨌든 감사합니다!
user5950

답변:


21

최신 Ubuntu 시스템에서 이름 확인은 resolvconf 서비스에서 처리하며 /etc/resolv.conf는 /run/resolvconf/resolv.conf에 대한 심볼릭 링크입니다. chroot 명령을 실행하기 전에 다른 바인드 마운트와 함께 / run 파일 시스템에 바인드 마운트를 추가 할 수 있습니다

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
"새로운 우분투 시스템"은 무엇입니까? 즉, 어떤 버전부터 resolvconf가 이름 확인을 처리합니까?
프로 백업

@ProBackup 적어도 12.04부터는 생각합니다. 비록 백 포트되었을 수도 있습니다- 우분투 12.04의 DNS
steeldriver

1
하고 sudo mount --bind /run /mnt/run나에게 서투르게 수선 17.10 업그레이드에 chroot로 일했다. 답변 해주셔서 감사합니다!
미로

영구적 인 해결책이 있습니까?
gromit190

1
전체 / run 디렉토리를 많은 소켓으로 바인드하면 chroot의 목적을
어기
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.