어제 Grub 재정의로 Windows를 설치해야했습니다.
글럽을 고쳐야하는 것은 이번이 처음이 아니므로 LiveCD를 사용하고 루트 파티션을 마운트하고 (부팅이없고 /
, home
) 실행했습니다 grub-install --root-directory=/mnt/ /dev/sda
. 그러나 작동하지 않았습니다.
내가 대신 리눅스 파티션을 설치, 그는 또한 한있는 튜토리얼을 발견하면서 인터넷 검색을 한 후 mount --bind /mnt/dev /dev
와 mount --bind /mnt/proc /proc/
. 그 후 chroot
에 /mnt
다음 브를 설치하고,이 방법을 사용, 그것은했다.
어떤 mount --bind
명령이 있습니까? --bind used
(man page) 사용법에 익숙 하지만이 예제에서 왜 사용되었는지 모르겠습니다.
답변
proc
그리고 sys
커널이 실행되지 않을 때, 그들은 멸망 – 파일 시스템은 실행중인 커널에 의해 제공됩니다. 이것은 다른 운영 체제로 chroot 할 때 이러한 파일 시스템이 존재하지 않음을 의미합니다. 많은 프로그램들이 그것들이 존재하기를 기대합니다. 예를 들어, 실행중인 시스템에 대한 정보가 필요하거나 커널이 무언가를 처리하는 방식을 수정하고 싶을 수도 있습니다. 이러한 프로그램이 예상대로 작동하기 위해서는 현재 커널 을 제공 /proc
하고 /sys
현재 커널에서 제공하는 것만으로도 충분 합니다.
chroot를 사용하면 사용 된 파일 경로가 무효화되므로 symlink는 충분하지 않습니다. Linux에서는 디렉토리 ( .
및 ..
에서 제공 한 것 이외)를 하드 링크 할 수 없습니다 mkdir
. 이는 세 번째 옵션을 사용하여 이러한 파일 시스템을 chroot 환경에 바인딩하는 것입니다. 바인드 마운트. 바인드 마운트는 커널에서 직접 제공하며 chroot 내에서 예상대로 작동합니다.
답변
이 --bind
옵션을 사용하면 마운트 지점을 chroot
-ed 환경 에 표시 할 수 있습니다.