우리는 chroot가 아래와 같이 chroot 디렉토리에 일부 파일 시스템을 설치해야 한다는 것을 알고 있습니다:
chroot_dir=/some/where
cd $chroot_dir/
mount -t proc proc proc/
mount --rbind /sys sys/
mount --rbind /dev dev/
내가 원하는 것은 이러한 디렉토리를 절대 경로로 마운트하는 것입니다
이것은 시스템과 개발자에게 매우 분명합니다! 다음과 같이 보일 수 있습니다:
chroot_dir=/some/where
mount --rbind /sys $chroot_dir/sys/
mount --rbind /dev $chroot_dir/dev/
하지만 그걸로 무엇을 해야할지 모르겠습니다. proc
아니면
mount -t $chroot_dir/proc $chroot_dir/proc $chroot_dir/proc/
뭐든지!
이 문제를 해결하는 방법을 아는 사람이 있나요?
답변1
"절대 경로"는 chroot 내부에 표시된 것과 같습니다. 그러나 절대 경로 이름 설정에 대한 걱정 없이 chroot를 준비하기 위해 이러한 파일 시스템을 마운트할 수 있습니다.
이 질문은 귀하의 예와 비교하는 데 도움이 됩니다.
- 외부에서 /proc 파일 시스템을 마운트하는 것과 chroot 내부에 /proc 파일 시스템을 마운트하는 것 사이에 차이점이 있습니까?
- chroot 환경에 dev, proc 및 sys를 마운트하시겠습니까?
특히,답변두 번째 질문에서는 Arch Wiki가 인용되었습니다.루트 디렉터리 변경)은 파일 시스템 유형만 사용하기 때문에 가장 간단합니다(루트가 아닌 파일 시스템의 특수 장치 없음). 다른 답변은 --bind
마운트 옵션을 사용합니다.
답변2
에서 man mount
:
-t, --types vfstype -t 다음의 매개변수는 다음을 나타내는 데 사용됩니다. 파일 시스템 유형. 현재 파일 시스템 유형 현재 지원되는 항목은 다음과 같습니다: adfs, affs, autofs, cifs, [. . . ]
그리고 proc
무엇보다도. 따라서 -t
인수는 대신 여러 파일 시스템 유형 중 하나를 사용합니다 /a/directory/name
. 평소와 같이 마운트하면 마운트하려는 시스템 이름과 시스템이 마운트된 디렉터리가 이어집니다. 따라서 명령은 다음과 같습니다.
마운트 --rbind /sys $chroot_dir/sys/ 마운트 --rbind /dev $chroot_dir/dev/ 마운트 -t proc /proc $chroot_dir/proc/
나는 두 번째이다도마, 다음에서 이 주제에 대한 자세한 내용을 읽을 수 있습니다.아치 위키 기사그는 지적합니다(일부 실행 계획은 수행하려는 작업에 따라 시스템마다 다를 수 있음).