이 명령들은 무엇입니까?


10

어제 Grub 재정의로 Windows를 설치해야했습니다.

글럽을 고쳐야하는 것은 이번이 처음이 아니므로 LiveCD를 사용하고 루트 파티션을 마운트하고 (부팅이없고 /, home) 실행했습니다 grub-install --root-directory=/mnt/ /dev/sda. 그러나 작동하지 않았습니다.

내가 대신 리눅스 파티션을 설치, 그는 또한 한있는 튜토리얼을 발견하면서 인터넷 검색을 한 후 mount --bind /mnt/dev /devmount --bind /mnt/proc /proc/. 그 후 chroot/mnt다음 브를 설치하고,이 방법을 사용, 그것은했다.

어떤 mount --bind명령이 있습니까? --bind used(man page) 사용법에 익숙 하지만이 예제에서 왜 사용되었는지 모르겠습니다.

답변:


10

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

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


proc그리고 sys이렇게 여러 위치에 장착 할 수 있습니다 --bind(단지 그들을 두 번 마운트) 필요하지 않습니다. 그러나 /dev/내부 커널이 아닌 udev에 의해 관리됩니다.
Maciej Piechotka

@MaciejPiechotka 나는 / dev를 언급하지 않았는데, 그것은 질문에 없기 때문에 반드시 udev에 의해 관리 될 필요는 없습니다.
Chris Down

내가 이상 언급했다 procsys수 있습니다 파일 시스템으로 (이중 장착 mount -t proc none /mnt/proc) 당신에게 필요하지 않습니다 필요 할 수 있도록 mount --bind그들을. dev일반적으로 사용자 공간 (udev, busybox 또는 다른 것)에 의해 관리되므로 그렇게해야합니다. 어쨌든 사소한 점.
Maciej Piechotka

0

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.