パーティションのメジャー番号とマイナー番号

パーティションのメジャー番号とマイナー番号
$ 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。それらを10進数に変換すると、それが出てくるところです。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エントリ名はによって決定され、udevudev設定によって制御されます(カーネルではデフォルト値を使用することをお勧めし、ほとんどすべての人がそれを使用します)。デバイス番号の静的割り当ては、ほとんど歴史的に奇妙なことです。 running system いくつかの起動に重要なデバイスを除いて、実際にはudevに必要です。

関連情報