나는 매우 기본적인 의심이 있습니다. 어느 부분이 이러한 모든 디렉토리를 생성하고 새 OS를 설치할 때 디렉토리를 생성하는 구성이 어디에 저장되어 있습니까?
이러한 디렉터리는 어떤 순서로 생성되나요? /boot
커널이 마운트된 후에 생성되며, 커널의 어느 부분에서 생성 됩니까 ?
답변1
루트 파일 시스템먼저 설치(읽기 전용)시작 시, 부팅 로그에서 다음을 알 수 있습니다.
[kernel] [ 2.242830] VFS: Mounted root (ext4 filesystem) readonly on device 8:24.
그러면 다시 설치됩니다초기화 중:
[kernel] [ 2.266181] Run /sbin/init as init process
...
[kernel] [ 6.882156] EXT4-fs (sdb8): re-mounted. Opts: (null)
[kernel] [ 6.882160] ext4 filesystem being remounted at /
그런데 거기에서인구가 밀집된(적어도) 모든 표준 기본 디렉토리(/bin, /usr, /dev, /etc...)는 비어 있을 수 있고 마운트 지점 역할을 할 수 있으며 여전히 init 프로세스의 일부일 수 있습니다.
기타 디스크 파일 시스템다음 지침이 설치됩니다 /etc/fstab
.
[kernel] [ 7.155270] EXT4-fs (sdb9): mounted filesystem with writeback data mode. Opts: data=writeback,commit=120
[kernel] [ 7.155274] ext4 filesystem being mounted at /var
[kernel] [ 7.222851] EXT4-fs (sdb10): mounted filesystem with writeback data mode. Opts: data=writeback
[kernel] [ 7.222855] ext4 filesystem being mounted at /home
이는 일부 초기화 서비스(예:로컬로 마운트openrc에서), 우연히 모든 *x 시스템의 모든 표준 디렉토리를 채우고 아마도...그 이상일 수도 있습니다.
그건 그렇고, 이후커널에는 /boot
파일 시스템이 필요하지 않으며 마운트되지 않을 가능성이 높습니다.. 초기화 시 항목에 따라 달라질 수 있습니다 /etc/fstab
.
네트워크 파일 시스템 할 수 있는(vg 반드시 그럴 필요는 없음)도 설치됩니다.초기화 중, 어느 정도 초기화 시스템에 따라 다릅니다(예:네트워크 마운트openrc의 서비스)는 명백한 전제 조건으로, 네트워크 서비스가 이전에 성공적으로 시작되었는지 주의해야 합니다.
특별한파일 시스템(procfs/sysfs/configfs 또는 기타가상?가짜? 운영 체제의 파일이 아닌 요소를 파일로 렌더링하는 파일 시스템)은 적절한 CONFIG_* 커널 튜너블에 따라 설치됩니다.초기화 중, init 시스템(예: /lib/rc/sh/init.sh
openrc 실행)에 따라 달라지므로 자동으로인구가 밀집된.
임시 파일 시스템(데이터는 영구 저장소가 아닌 휘발성 메모리에 저장됨) 마운트도 가능초기화 중다음 지침은 /etc/fstab
예를 들어 다음에서 찾을 수 있습니다.
tmpfs /tmp tmpfs rw,nosuid,noatime,nodev,size=4G,mode=1777
/dev 특별한 경우:
이 /dev
디렉토리는 초기 부팅 시 커널에 필요한 두 개의 노드( 및 /
)와 함께 설치에 따라 존재합니다 . 커널은 디렉터리에 새 노드를 추가 합니다./dev/console
/dev/null
/dev
시작 시다음 장치의 열거입니다.
커널이 임시 파일 시스템을 활성화하도록 구성된 경우 루트 파티션에 노드가 생성되지 않습니다.
커널은 먼저 디렉터리에 빈 임시 파일 시스템을 마운트하고 /dev
해당 내용을 덮어씁니다.
[kernel] [ 2.262470] devtmpfs: mounted
따라서 장치가 감지(또는 액세스)될 때 해당 파일 시스템에 장치가 동적으로 생성될 수 있습니다.
물론 Linux는 플러그 앤 플레이 운영 체제이므로 런타임 시 숫자가 변경될 수 있습니다.