linuxfromscratch:12.1:060-preparing_virtual_kernel_file_systems

Linux From Scratch - Version 12.1-systemd
Chapter 7. Entering Chroot and Building Additional Temporary Tools
이전 위로 / 처음으로 다음
소유권 변경 가상 루트 환경

사용자 공간에서 실행되는 애플리케이션은 커널에서 생성한 다양한 파일 시스템을 활용하여 커널과 통신합니다. 이러한 파일 시스템은 가상이므로 디스크 공간이 사용되지 않습니다. 이러한 파일 시스템의 구성물은 메모리에 상주합니다. 이러한 파일 시스템은 애플리케이션이 루트 환경에서 찾을 수 있도록 $LFS 디렉토리 트리에 마운트해야 합니다.

먼저 이러한 가상 파일 시스템을 마운트할 디렉터리를 만듭니다.

mkdir -pv $LFS/{dev,proc,sys,run}


LFS 시스템을 정상적으로 부팅하는 동안 커널은 /dev 디렉터리에 devtmpfs 파일 시스템을 자동으로 마운트하고, 부팅 프로세스 중 또는 디바이스가 처음 감지되거나 액세스할 때 커널은 해당 가상 파일 시스템에 디바이스 노드를 생성합니다. udev 데몬은 커널이 생성한 장치 노드의 소유권 또는 권한을 변경하고 새 장치 노드 또는 심볼릭 링크를 생성하여 배포판 관리자 및 시스템 관리자의 작업을 용이하게 할 수 있습니다. (자세한 내용은 9.3.2.2절 "디바이스 노드 생성"을 참조하세요.) 호스트 커널이 devtmpfs를 지원하는 경우, 단순하게 $LFS/devdevtmpfs를 마운트하고 커널이 알아서 사용하도록 하면됩니다.

그러나 일부 호스트 커널은 devtmpfs를 지원하지 않으며, 이러한 호스트 배포판은 다른 방법을 사용하여 /dev의 콘텐츠를 생성합니다. 따라서 호스트에 구애받지 않고 $LFS/dev 디렉터리를 채울 수 있는 유일한 방법은 호스트 시스템의 /dev 디렉터리를 바인드 마운트하는 것입니다. 바인드 마운트는 디렉터리 하위 트리 또는 파일을 다른 위치에서 볼 수 있도록 하는 특수한 유형의 마운트입니다. 이 작업을 수행하려면 다음 명령을 사용합니다.

mount -v --bind /dev $LFS/dev


이제 나머지 가상 커널 파일 시스템을 마운트합니다.

mount -vt devpts devpts -o gid=5,mode=0620 $LFS/dev/pts
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
mount -vt tmpfs tmpfs $LFS/run

마운트 옵셧 설명

  • gid=5
    devpts로 생성된 모든 디바이스 노드가 그룹 ID 5를 소유하게 됩니다. 이것은 나중에 LFS에서 tty 그룹에 사용할 ID입니다. 호스트 시스템에서 tty 그룹이 다른 ID를 사용할 수 있으므로 이름 대신 그룹 ID를 사용합니다.
  • mode=0620
    이렇게 하면 devpts로 생성된 모든 디바이스 노드가 모드 06201)을 갖도록 합니다. 위의 옵션과 함께 사용하면 devpts가 grantpt()의 요구 사항을 충족하는 장치 노드를 생성하므로 기본적으로 설치되지 않는 Glibc pt_chown 보조 실행파일이 필요하지 않습니다.

일부 호스트 시스템에서 /dev/shm은 디렉터리에 대한 심볼릭 링크(일반적으로 /run/shm)입니다. 위에 /run tmpfs가 마운트되었으므로 이 경우에는 올바른 권한으로 디렉터리만 만들면 됩니다.

다른 호스트 시스템에서는 /dev/shm이 tmpfs의 마운트 지점입니다. 이 경우 위의 /dev를 마운트하면 루트 환경의 디렉터리로 /dev/shm만 생성됩니다. 이 상황에서는 명시적으로 tmpfs를 마운트해야 합니다.

if [ -h $LFS/dev/shm ]; then
  install -v -d -m 1777 $LFS$(realpath /dev/shm)
else
  mount -vt tmpfs -o nosuid,nodev tmpfs $LFS/dev/shm
fi


1)
rw–w—사용자 읽기 및 쓰기 가능, 그룹 쓰기 가능
  • linuxfromscratch/12.1/060-preparing_virtual_kernel_file_systems.txt
  • 마지막으로 수정됨: 2024/06/15 10:13
  • 저자 baecy