この LinuxQuestions の投稿から:
<ブロック引用>Linux は、ハードディスクの数に恣意的な制限を設けません。
また、Debian メーリング リストのこの投稿から:
<ブロック引用>簡単だ。 /dev/sdz の後に /dev/sdaa が続きます。そして、/dev/sdzz が /dev/sdaaa になった後、ラップトップで 800 の ISCSI ターゲットを作成してログインすることでテストしました。 :)
およびこのブログ投稿:
<ブロック引用>最新の Linux カーネルの SATA および SCSI ドライブの場合、名前を導出するコードが sdzzz を超えて (理論上) sd の後に 29 個の z が続く場合を除いて、上記と同じことが適用されます。
したがって、理論的には制限がありますが、実際には到達できません。
実際、Linux の抽象的な SCSI サブシステムによって公開されるドライブの数には制限があり、これには SATA および USB ドライブが含まれます。これは、デバイス ファイルがメジャー/マイナー デバイス番号のペアでマークされており、SCSI サブシステムに割り当てられたスキームにこの暗黙の制限があるためです。
https://www.kernel.org/doc/Documentation/devices.txt
次の主要なオペコードが割り当てられます:8、65 ~ 71、および 128 ~ 135 で、合計 16 個のブロックが割り当てられます。マイナー オペコードは、256 の可能な値 (範囲 0..255) に制限されています。各ディスクは 16 の連続するマイナー オペコードを取得します。最初の 1 つはディスク全体を表し、次の 15 はパーティションを表します。
let major = number of major allocated opcodes = 16
let minor = number of minor opcodes per major opcode = 256
let parts = number of minor opcodes per disk = 16
major * (minor / parts) = 16 * (256 / 16) = 256 possible drives
以前、制限として 128 と書いている人を見たことがあります。最近の Linux は 128..135 であり、これが矛盾を説明していると思います。
命名スキーム (/dev/sdbz7
) は、Linux カーネルではなく、ユーザーランドによって選択されます。ほとんどの場合、これらは udev、eudev、または mdev によって管理されます (ただし、以前は手動で作成されていました)。私は彼らの命名スキームを知りません。システム管理者がデバイスの命名ポリシーを変更できるため、必ずしもすべての Linux ベースのシステムが同じ方法でデバイスに命名することに依存しないでください。