이 명령은 무엇을 합니까?

이 명령은 무엇을 합니까?

어제 Grub 오버레이가 포함된 Windows를 설치해야 했습니다.

글쎄, Grub을 수정한 것은 이번이 처음이 아니었기 때문에 LiveCD를 사용하고 루트 파티션을 마운트한 다음(부팅하지 않고 /및 만 home) 실행했습니다 grub-install --root-directory=/mnt/ /dev/sda. 그러나 이것은 작동하지 않았습니다.

잠시 인터넷 검색을 한 끝에 그가 Linux 파티션을 설치했을 뿐만 mount --bind /mnt/dev /dev아니라 mount --bind /mnt/proc /proc/. 그런 다음 Grub을 chroot설치 /mnt하고 이 방법을 사용하여 성공하세요.

명령의 목적은 무엇입니까 mount --bind? 나는 --bind used사용법(man 페이지)에 익숙하지만 이 예에서 그것이 왜 사용되었는지 모르겠습니다.

답변1

proc파일 시스템은 sys실행 중인 커널에 의해 제공됩니다. 커널이 실행 중이지 않으면 더 이상 존재하지 않습니다. 즉, 다른 운영 체제로 chroot하면 이러한 파일 시스템이 존재하지 않습니다. 많은 프로그램은 실행을 위해 존재를 기대합니다. 예를 들어 실행 중인 시스템에 대한 정보가 필요하거나 커널이 무언가를 처리하는 방식을 수정하려고 할 수 있습니다. 일반적으로 현재 커널을 제공하는 것만으로도 이러한 프로그램이 예상대로 작동하도록 만드는 데 충분합니다 /proc./sys

chroot 작업으로 인해 사용된 파일 경로가 무효화되므로 기호 링크로는 충분하지 않습니다. Linux에서는 디렉토리를 하드 링크할 수도 없습니다( 에서 제공하는 .및 제외 ). 이는 이러한 파일 시스템이 세 번째 옵션인 바인드 마운트를 사용하여 chroot 환경에 미러링되어야 함을 의미합니다. 바인드 마운트는 커널에서 직접 제공되며 chroot에서 예상대로 작동합니다...mkdir

답변2

이 옵션을 사용하면 -ed 환경 --bind에서 마운트 지점을 표시할 수 있습니다 .chroot

관련 정보