커널이 initramfs의 /dev에 있는 항목을 삭제합니까?

커널이 initramfs의 /dev에 있는 항목을 삭제합니까?

나는 initramfs 이미지에서 부팅되는 완전히 사용자 정의된 최소 임베디드 Linux(바닐라, 3.3.8, i486, Vortex86dx) 시스템을 가지고 있습니다. 표준 배포 스크립트는 사용되지 않으며 단일 rcS 파일만 초기화에 사용됩니다.

나는 /dev/hda1과 /dev/hda2라는 두 개의 파티션이 있는 IDE 플래시 드라이브를 가지고 있습니다.

이는 고정 시스템을 위한 최소 임베디드 배포판이므로 /dev/hda1 및 /dev/hda2를 포함하는 정적 /dev 디렉토리가 있고 UDEV는 없습니다.

init가 rcS를 호출하면 /dev/hda1 항목이 더 이상 존재하지 않습니다. 현재 다른 스크립트, 사용자 응용 프로그램 또는 데몬은 실행되고 있지 않습니다. /dev/hda1나타나다커널에 의해 삭제(?)

개발 중에 NFS 루트 파일 시스템을 통해 대상을 시작하면 동일한 문제가 발생하지 않습니다.

나는 Buildroot를 사용하여 device_table_dev.txt 파일을 통해 /dev 디렉토리를 생성합니다. 예를 들어

# IDE Devices
/dev/hda    b   640 0   0   3   0   0   0   -
/dev/hda    b   640 0   0   3   1   1   1   4

Buildroot 출력/이미지에서 rootfs.tar.gz를 확인했습니다. /dev 디렉토리에는 /dev/hda1이 포함되어 있습니다:

brw-r-----  1 root root  3,   0 Jul  2 13:44 hda
brw-r-----  1 root root  3,   1 Jul  2 13:44 hda1
brw-r-----  1 root root  3,   2 Jul  2 13:44 hda2
brw-r-----  1 root root  3,   3 Jul  2 13:44 hda3
brw-r-----  1 root root  3,   4 Jul  2 13:44 hda4

대상의 실행 후 디렉터리 목록(스크립트 상단의 rcS 내에서 수행됨)은 다음과 같습니다.

brw-r-----   1 root   root    3,   0 Jul  2 12:44 hda
brw-r-----   1 root   root    3,   2 Jul  2 12:44 hda2
brw-r-----   1 root   root    3,   3 Jul  2 12:44 hda3
brw-r-----   1 root   root    3,   4 Jul  2 12:44 hda4

/dev/hda1이 없습니다. /dev/hda2는 동일한 디스크에 있는 파티션이지만 여전히 존재합니다. 이상한.

Busybox 유틸리티 "mdev -s"를 실행하면 대상에서 /dev/hda1을 복원하고 제대로 작동합니다. 예를 들어 설치할 수 있습니다.

전에 이런 행동을 본 사람이 있나요?

커널이 /dev의 항목을 삭제합니까?

답변1

하위 시스템은 부팅 시 파일 시스템을 udev생성하고 마운트합니다 . 장치가 감지되면 커널이 콘텐츠를 채웁니다. 가상 메모리에 상주 하므로 지속성이 없으므로 재부팅 후에도 변경 사항이 유지되지 않습니다. 이미 하나가 있더라도 새 파일 시스템을 설치하면 해당 디렉토리가 숨겨지고 모든 장치별 정보가 제거된 것처럼 보이게 됩니다. 그렇지 않지만 최종 결과는 동일합니다. 특별 상품은 기대했던 것과 다릅니다.tmpfs/devtmpfs/dev

hda귀하의 및 항목이 및 항목 hdaX으로 대체되었음을 알게 될 것입니다 . 또는 드라이브에 할당된 이름을 확인 하고 얻으십시오 .sdasdaX/proc/devices/proc/partitionsudev

때로는 이와 같은 빠르고 지저분한 솔루션이 fdisk -l /dev/[sh]d[a-z]도움이 됩니다(각 유형의 디스크가 26개 미만인 경우 더욱 좋습니다).

그런데 사용된 명명 체계 udev는 표준화되어 있으므로 정적은 /dev규칙을 따르는 것보다 더 나쁠 수 있습니다. udev그렇게 생각한다면 그렇게 /dev/sda하세요. 나중에 잠재적인 이상함과 오해를 피할 수 있습니다.

관련 정보