양쪽 이전 판 이전 판 다음 판 | 이전 판 |
linuxfromscratch:12.1:060-preparing_virtual_kernel_file_systems [2024/06/10 08:27] – baecy | linuxfromscratch:12.1:060-preparing_virtual_kernel_file_systems [2024/06/15 10:13] (현재) – [7.3.2. 가상 커널 파일 시스템 마운트] baecy |
---|
^ Linux From Scratch - Version 12.1-systemd ^^^ | ^ Linux From Scratch - Version 12.1-systemd ^^^ |
^ Chapter 7. Entering Chroot and Building Additional Temporary Tools ^^^ | ^ Chapter 7. Entering Chroot and Building Additional Temporary Tools ^^^ |
|[[.:059-changing_ownership|이전]] | [[.:06-cross_compiling_temporary_tools|위로]] / [[.:12.1|처음으로]] | [[.:061-entering_the_chroot_environment|다음]]| | |[[.:059-changing_ownership|이전]] | [[.:07-entering_chroot_and_building_additional_tempory_tools|위로]] / [[.:12.1|처음으로]] | [[.:061-entering_the_chroot_environment|다음]]| |
| |
|소유권 변경 | 가상 루트 환경| | |소유권 변경 | 가상 루트 환경| |
먼저 이러한 가상 파일 시스템을 마운트할 디렉터리를 만듭니다. | 먼저 이러한 가상 파일 시스템을 마운트할 디렉터리를 만듭니다. |
| |
<code lang=bash> | <code bash> |
mkdir -pv $LFS/{dev,proc,sys,run} | mkdir -pv $LFS/{dev,proc,sys,run} |
</code> | </code> |
---- | ---- |
| |
==== 7.3.1. dev 마운트 및 생성 ==== | ==== 7.3.1. /dev 마운트 및 생성 ==== |
| |
LFS 시스템을 정상적으로 부팅하는 동안 커널은 ''/dev'' 디렉터리에 //devtmpfs// 파일 시스템을 자동으로 마운트하고, 부팅 프로세스 중 또는 디바이스가 처음 감지되거나 액세스할 때 커널은 해당 가상 파일 시스템에 디바이스 노드를 생성합니다. ''udev'' 데몬은 커널이 생성한 장치 노드의 소유권 또는 권한을 변경하고 새 장치 노드 또는 심볼릭 링크를 생성하여 배포판 관리자 및 시스템 관리자의 작업을 용이하게 할 수 있습니다. (자세한 내용은 [[.:156-overview_of_device_and_module_handling#디바이스 노드 생성|9.3.2.2절 "디바이스 노드 생성"]]을 참조하세요.) 호스트 커널이 //devtmpfs//를 지원하는 경우, 단순하게 ''$LFS/dev''에 //devtmpfs//를 마운트하고 커널이 알아서 사용하도록 하면됩니다. | LFS 시스템을 정상적으로 부팅하는 동안 커널은 ''/dev'' 디렉터리에 //devtmpfs// 파일 시스템을 자동으로 마운트하고, 부팅 프로세스 중 또는 디바이스가 처음 감지되거나 액세스할 때 커널은 해당 가상 파일 시스템에 디바이스 노드를 생성합니다. ''udev'' 데몬은 커널이 생성한 장치 노드의 소유권 또는 권한을 변경하고 새 장치 노드 또는 심볼릭 링크를 생성하여 배포판 관리자 및 시스템 관리자의 작업을 용이하게 할 수 있습니다. (자세한 내용은 [[.:156-overview_of_device_and_module_handling#9.3.2.2. 장치 노드 생성|9.3.2.2절 "디바이스 노드 생성"]]을 참조하세요.) 호스트 커널이 //devtmpfs//를 지원하는 경우, 단순하게 ''$LFS/dev''에 //devtmpfs//를 마운트하고 커널이 알아서 사용하도록 하면됩니다. |
| |
그러나 일부 호스트 커널은 //devtmpfs//를 지원하지 않으며, 이러한 호스트 배포판은 다른 방법을 사용하여 ''/dev''의 콘텐츠를 생성합니다. 따라서 호스트에 구애받지 않고 ''$LFS/dev'' 디렉터리를 채울 수 있는 유일한 방법은 호스트 시스템의 ''/dev'' 디렉터리를 바인드 마운트하는 것입니다. 바인드 마운트는 디렉터리 하위 트리 또는 파일을 다른 위치에서 볼 수 있도록 하는 특수한 유형의 마운트입니다. 이 작업을 수행하려면 다음 명령을 사용합니다. | 그러나 일부 호스트 커널은 //devtmpfs//를 지원하지 않으며, 이러한 호스트 배포판은 다른 방법을 사용하여 ''/dev''의 콘텐츠를 생성합니다. 따라서 호스트에 구애받지 않고 ''$LFS/dev'' 디렉터리를 채울 수 있는 유일한 방법은 호스트 시스템의 ''/dev'' 디렉터리를 바인드 마운트하는 것입니다. 바인드 마운트는 디렉터리 하위 트리 또는 파일을 다른 위치에서 볼 수 있도록 하는 특수한 유형의 마운트입니다. 이 작업을 수행하려면 다음 명령을 사용합니다. |
| |
<code lang=bash> | <code bash> |
mount -v --bind /dev $LFS/dev | mount -v --bind /dev $LFS/dev |
</code> | </code> |
이제 나머지 가상 커널 파일 시스템을 마운트합니다. | 이제 나머지 가상 커널 파일 시스템을 마운트합니다. |
| |
<code lang=bash> | <code bash> |
mount -vt devpts devpts -o gid=5,mode=0620 $LFS/dev/pts | mount -vt devpts devpts -o gid=5,mode=0620 $LFS/dev/pts |
mount -vt proc proc $LFS/proc | mount -vt proc proc $LFS/proc |
| |
* //gid=5// \\ devpts로 생성된 모든 디바이스 노드가 그룹 ID 5를 소유하게 됩니다. 이것은 나중에 LFS에서 //tty// 그룹에 사용할 ID입니다. 호스트 시스템에서 //tty// 그룹이 다른 ID를 사용할 수 있으므로 이름 대신 그룹 ID를 사용합니다. | * //gid=5// \\ devpts로 생성된 모든 디바이스 노드가 그룹 ID 5를 소유하게 됩니다. 이것은 나중에 LFS에서 //tty// 그룹에 사용할 ID입니다. 호스트 시스템에서 //tty// 그룹이 다른 ID를 사용할 수 있으므로 이름 대신 그룹 ID를 사용합니다. |
* //mode=0620// \\ 이렇게 하면 devpts로 생성된 모든 디바이스 노드가 모드 0620((rw-r-----사용자 읽기 및 쓰기 가능, 그룹 쓰기 가능))을 갖도록 합니다. 위의 옵션과 함께 사용하면 devpts가 grantpt()의 요구 사항을 충족하는 장치 노드를 생성하므로 기본적으로 설치되지 않는 Glibc ''pt_chown'' 보조 실행파일이 필요하지 않습니다. | * //mode=0620// \\ 이렇게 하면 devpts로 생성된 모든 디바이스 노드가 모드 0620((rw--w---사용자 읽기 및 쓰기 가능, 그룹 쓰기 가능))을 갖도록 합니다. 위의 옵션과 함께 사용하면 devpts가 grantpt()의 요구 사항을 충족하는 장치 노드를 생성하므로 기본적으로 설치되지 않는 Glibc ''pt_chown'' 보조 실행파일이 필요하지 않습니다. |
| |
일부 호스트 시스템에서 /dev/shm은 디렉터리에 대한 심볼릭 링크(일반적으로 /run/shm)입니다. 위에 /run tmpfs가 마운트되었으므로 이 경우에는 올바른 권한으로 디렉터리만 만들면 됩니다. | 일부 호스트 시스템에서 ''/dev/shm''은 디렉터리에 대한 심볼릭 링크(일반적으로 ''/run/shm'')입니다. 위에 /run tmpfs가 마운트되었으므로 이 경우에는 올바른 권한으로 디렉터리만 만들면 됩니다. |
| |
다른 호스트 시스템에서는 /dev/shm이 tmpfs의 마운트 지점입니다. 이 경우 위의 /dev를 마운트하면 루트 환경의 디렉터리로 /dev/shm만 생성됩니다. 이 상황에서는 명시적으로 tmpfs를 마운트해야 합니다. | 다른 호스트 시스템에서는 ''/dev/shm''이 tmpfs의 마운트 지점입니다. 이 경우 위의 /dev를 마운트하면 루트 환경의 디렉터리로 /dev/shm만 생성됩니다. 이 상황에서는 명시적으로 tmpfs를 마운트해야 합니다. |
<code lang=bash> | <code bash> |
if [ -h $LFS/dev/shm ]; then | if [ -h $LFS/dev/shm ]; then |
install -v -d -m 1777 $LFS$(realpath /dev/shm) | install -v -d -m 1777 $LFS$(realpath /dev/shm) |