chroot를 사용할 때 중첩 마운트를 수행하는 방법은 무엇입니까?

chroot를 사용할 때 중첩 마운트를 수행하는 방법은 무엇입니까?

이 질문은 내가 (Xl1NntniNH7F로) 설명한 상황에 의해 촉발되었습니다.http://www.linuxquestions.org/questions/linux-desktop-74/boot-failure-upon-updating-e2fsprogs-in-ubuntu-10-10-a-947328/. 따라서 부팅 실패의 근본 원인을 해결해 주시면 매우 감사하겠습니다.

. make uninstall​라이브 CD를 사용하고 있습니다.

한 파티션의 디렉토리를 마운트된 다른 파티션의 디렉토리로 마운트하는 방법은 무엇입니까? 그렇게 했지만 chroot /mnt/sda2sda3를 /home에 마운트하는 방법을 모르고 다양한 시도가 작동하지 않았습니다. chroot에 대해 잘 모르기 때문에 접근 방법이 틀릴 수도 있으니, 제 상황에 맞게 어떻게 해야 하는지 조언해주시면 감사하겠습니다.

답변1

나는 chroot를 사용하여 마운트를 많이 바인딩하므로 chroot에 이미 마운트된 특정 디렉토리 바인드가 있는지 확인하고 그렇지 않은 경우 chroot하기 전에 설정하는 스크립트를 설정하는 경향이 있습니다.

예를 들어, 저는 파일 시스템 /dev으로 설정 tmpfs하고 마운트 mdev했습니다 :/dev/ptsdevpts

$ mount | grep /dev
devpts /dev/pts devpts rw 0 0
mdev /dev tmpfs rw,nosuid 0 0

그런 다음 내 스크립트에서 다음을 수행합니다.

d=/mnt/chroot
for m in dev dev/pts ; do
    grep -sq $d/$m /proc/mounts || mount --bind /$m $d/$m
done
exec chroot $d /bin/bash

현재 SVN Busybox 트렁크에서는 at 과 at 대신에 두 /dev번 마운트된 것 같습니다./mnt/chroot/dev/mnt/chroot/dev/pts/dev/mnt/chroot/dev/dev/pts/mnt/chroot/dev/pts

관련 정보