파티션의 메이저 및 마이너 번호

파티션의 메이저 및 마이너 번호
$ stat  new
  File: ‘new’
  Size: 928         Blocks: 8          IO Block: 4096   regular file
Device: 804h/2052d  Inode: 28188755    Links: 1
Access: (0622/-rw--w--w-)  Uid: ( 1000/       t)   Gid: ( 1000/       t)
Access: 2015-12-19 06:33:07.842559147 -0500
Modify: 2013-06-11 12:54:44.944836000 -0400
Change: 2015-03-25 11:15:20.778708140 -0400
 Birth: -

맨페이지에는 16진수 또는 10진수 형식으로 "장치 번호" stat가 나와 있습니다 .Device

샤둘은 이렇게 말했습니다.

장비id는 특정 블록 장치를 식별하는 주 장치 번호와 부 장치 번호의 조합입니다. 귀하의 경우 "804"는 다음을 식별합니다.네번째분할첫 번째BIOS에 따라 위치하는 SCSI와 유사한 드라이브입니다. 전통적인 용어로는 /dev/sda4입니다.

Device파일이 있는 파티션의 주 번호와 부 번호의 조합인 것 같습니다 new.

$ ls -l /dev/sda4
brw-rw---- 1 root disk 8, 4 Oct 12 15:44 /dev/sda4

내 말이 맞다면 주요 장치 번호는 8파티션의 드라이버를 식별하고 보조 장치 번호는 4파티션의 장치를 식별합니다.

Device: 804h 하지만 식별하는 방법 을 어떻게 알 수 있나요?네번째분할첫 번째scsi 같은 드라이브?

답변1

16 진수 804는 실제로 2바이트이며 일반적 으로 0x0804. 그것들을 십진수로 변환하면 그것이 나오는 곳입니다 .0x080x048, 4

8이 무엇을 의미하는지 알 수 있습니다 /proc/devices. 여기서 블록 장치 8은 sdSCSI 디스크입니다. 그게 첫 번째입니다. 그래서 그것이 첫 번째라는 것을 알 수 있습니다. 8,0은 sda, 8,1은 sda1, 8,2는 sda2 등입니다.

커널 문서를 보면 -Documentation/devices.txt——sd 드라이버는 실제로 15개의 파티션만 허용하는 것으로 나타났습니다. 8과 16은 /dev/sdb입니다(8과 17은 /dev/sdb1, 8과 32는 /dev/sdc 등). 이 제한을 초과하면 추가 번호가 동적으로 할당됩니다.

실제로 /dev항목 이름은 에 의해 결정 udev되고 udev 구성에 의해 제어됩니다(커널에서는 기본값 사용을 권장하고 거의 모든 사람이 이를 사용하지만). 장치 번호의 정적 할당은 대부분 역사적으로 이상한 일입니다. running system 몇 가지 부팅에 중요한 장치를 제외하고는 udev에 실제로 필요합니다.

관련 정보