/sys에 대한 바인드 마운트(특히 rbind)의 목적은 무엇입니까?

/sys에 대한 바인드 마운트(특히 rbind)의 목적은 무엇입니까?

내 시스템에 젠투를 설치하기 위한 준비로 젠투 매뉴얼을 읽고 있습니다.

Chrooting 섹션에는 다음 명령이 제공됩니다.

mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev

이 부분에 대한 질문은 다음과 같습니다.

  1. 저는 Linux 전문가는 아니지만 검색을 통해 바인드 마운트를 발견했습니다.

    기존 디렉터리 트리를 가져와 다른 지점에 복사합니다. 바인드 마운트의 디렉터리와 파일은 원본과 동일합니다. 두 보기 모두 동일한 데이터를 표시하므로 한 쪽의 수정 사항은 다른 쪽에도 즉시 반영됩니다.

    제가 이해하지 못하는 것은 /mnt/gentoo/sys에 바인드 마운트가 어떻게 도움이 되는지 입니다. 원래 디렉터리 트리는 설치 미디어에 있으며 삭제됩니다. 따라서 미디어에서 변경된 내용은 여기에 반영되지 않습니다. 대신에 이 명령을 사용하는 목적은 무엇입니까?

    mount -t sysfs sysfs /mnt/gentoo/sys 
    
  2. rbind를 사용하는 목적은 무엇입니까? 바인드 마운트의 목적이 바인드 마운트의 반사 기능을 사용하는 것이 아니라 /mnt/gentoo에 /sys 파일을 생성하는 것이라고 가정할 때, 왜 rbind를 사용합니까? 또한, 내가 아는 한, rbind는 바인드 마운트된 원래 디렉토리에 마운트 지점이 있을 때 사용됩니다. 그런데 /sys 아래에 마운트 지점이 없나요?

답변1

1.) /sys실제 디스크 파일 시스템이 아닙니다. 가상 파일 시스템의 형태로 커널의 내부 상태를 표현하고 액세스하는 수단입니다. 완전히 RAM 기반이므로 /sys디스크에 저장할 필요가 없습니다 .

/sys어떤 의미에서는 커널이 부팅되고 하드웨어가 감지될 때마다 처음부터 다시 생성된다고 말할 수도 있고 , 다른 의미에서는 /sys파일 시스템의 내용이 실제로 전혀 지속되지 않으며 요청에 따라 생성된다고 말할 수도 있습니다. 액세스하려고 할 때 표시해야 하는 실제 커널 상태입니다.

젠투를 설치할 때 새 설치는 아직 자체 커널을 실행하지 않으므로 새 설치는 아직 자체 커널을 가질 수 없습니다 /sys. 그러나 설치 프로그램 환경에는 자체 가 있으며 /sys바인드 마운트를 수행하면 "구축 중인 시스템"이 /sys설치 환경의 파일 시스템 트리를 차용하게 됩니다. 이렇게 하면 설치의 일부 작업이 기존 시스템을 업그레이드할 때와 정확히 동일하게 되므로 두 경우 모두 동일한 스크립트를 사용할 수 있습니다. 업그레이드에서는 그대로 사용되지만 설치 중에는 chroot를 실행하기만 하면 됩니다. /mnt/gentoo.

2.) UEFI 가변 저장 의사 파일 시스템 으로 설치 /sys되거나 설치되지 않을 수 있는 에서는 다양한 관리를 위한 다중 RAM 기반 파일 시스템이 있을 수 있습니다 .debugfs/sys/kernel/debugefivarfs/sys/firmware/efi/efivars대조군아래에 /sys/fs/cgroup/*.

아래에는 /dev최소한 /dev/pts, /dev/shm, /dev/hugepages및/또는 /dev/mqueue모든 종류의 전용 RAM 기반 파일 시스템이 있을 수 있습니다.

따라서 rbind를 사용하면 분명히 작업이 단순화됩니다.

관련 정보