【Linux】sda・sdbとは?Linuxのディスク名の意味と違いをわかりやすく解説

【Linux】sda・sdbとは?Linuxのディスク名の意味と違いをわかりやすく解説

Linuxのディスク管理はとっつきづらい点がある。この記事ではパーティション分割からLVMまでWindowsとの比較を行いLinuxのディスクについての概要を把握する。

物理ドライブの認識と命名規則

LinuxとWindowsでは、物理ドライブの認識方法が根本的に異なる。

Linux

  • 物理ドライブ(HDDやSSDなど)は/dev/sd[a-z]として認識される
  • 1本目のドライブ:/dev/sda
  • 2本目のドライブ:/dev/sdb
  • 3本目のドライブ:/dev/sdc(以降アルファベット順)
graph TB
    subgraph "物理的なハードディスク"
        HDD1["`**HDD 1**
        1台目の物理ディスク
        500GB`"]
        
        HDD2["`**HDD 2**
        2台目の物理ディスク
        1TB`"]
        
        HDD3["`**HDD 3**
        3台目の物理ディスク
        2TB`"]
    end
    
    subgraph "Linuxでのデバイス名"
        SDA["`**/dev/sda**
        SCSI disk a`"]
        
        SDB["`**/dev/sdb**
        SCSI disk b`"]
        
        SDC["`**/dev/sdc**
        SCSI disk c`"]
    end
    
    HDD1 -.->|"`**認識**`"| SDA
    HDD2 -.->|"`**認識**`"| SDB
    HDD3 -.->|"`**認識**`"| SDC
    
    style HDD1 fill:#e6f3ff,stroke:#87ceeb,stroke-width:3px
    style HDD2 fill:#ffe6e6,stroke:#ffb3b3,stroke-width:3px
    style HDD3 fill:#e6ffe6,stroke:#b3ffb3,stroke-width:3px
    
    style SDA fill:#e6f3ff,stroke:#4682b4,stroke-width:2px
    style SDB fill:#ffe6e6,stroke:#ff6b6b,stroke-width:2px
    style SDC fill:#e6ffe6,stroke:#4caf50,stroke-width:2px

最近ではNVMe接続のSSDがあり、そちらは1本目nvme0n1、2本目nvme1n1といった形で命名される。

詳しい命名についてはArchWikiに解説が載っているのでそちらを参照されたい。
https://wiki.archlinux.jp/index.php/%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB

Windows

  • 物理ドライブは内部的にはDisk 0Disk 1と数字で管理
  • ユーザーには論理ドライブとしてC:D:などのドライブレターで表示

パーティション分割の違い

Linux(/dev/sdaを分割する場合)

パーティションは数字で識別される:

  • /dev/sda1:1番目のパーティション
  • /dev/sda2:2番目のパーティション
  • /dev/sda3:3番目のパーティション

MBRの場合、基本パーティションは4つまで。拡張パーティションを作成すると論理パーティションは/dev/sda5から始まる(4は拡張パーティション用に予約)。

graph TB
    subgraph "物理的なハードディスク"
        HDD1["`**HDD 1**
        1台目の物理ディスク
        500GB`"]
        
        HDD2["`**HDD 2**
        2台目の物理ディスク
        1TB`"]
        
        HDD3["`**HDD 3**
        3台目の物理ディスク
        2TB`"]
    end
    
    subgraph "Linuxでのデバイス名"
        SDA["`**/dev/sda**
        SCSI disk a`"]
        
        SDB["`**/dev/sdb**
        SCSI disk b`"]
        
        SDC["`**/dev/sdc**
        SCSI disk c`"]
    end
    
    subgraph "パーティション"
        subgraph "sdaのパーティション"
            SDA1["`**/dev/sda1**
            200MB`"]
            SDA2["`**/dev/sda2**
            16GB`"]
            SDA3["`**/dev/sda3**
            483.8GB`"]
        end
        
        subgraph "sdbのパーティション"
            SDB1["`**/dev/sdb1**
            500GB`"]
            SDB2["`**/dev/sdb2**
            500GB`"]
        end
        
        subgraph "sdcのパーティション"
            SDC1["`**/dev/sdc1**
            2TB`"]
        end
    end
    
    HDD1 -.->|"`**認識**`"| SDA
    HDD2 -.->|"`**認識**`"| SDB
    HDD3 -.->|"`**認識**`"| SDC
    
    SDA -->|"`**分割**`"| SDA1
    SDA --> SDA2
    SDA --> SDA3
    
    SDB -->|"`**分割**`"| SDB1
    SDB --> SDB2
    
    SDC -->|"`**分割**`"| SDC1
    
    style HDD1 fill:#e6f3ff,stroke:#87ceeb,stroke-width:3px
    style HDD2 fill:#ffe6e6,stroke:#ffb3b3,stroke-width:3px
    style HDD3 fill:#e6ffe6,stroke:#b3ffb3,stroke-width:3px
    
    style SDA fill:#e6f3ff,stroke:#4682b4,stroke-width:2px
    style SDB fill:#ffe6e6,stroke:#ff6b6b,stroke-width:2px
    style SDC fill:#e6ffe6,stroke:#4caf50,stroke-width:2px
    
    style SDA1 fill:#f0f8ff,stroke:#4682b4
    style SDA2 fill:#f0f8ff,stroke:#4682b4
    style SDA3 fill:#f0f8ff,stroke:#4682b4
    style SDB1 fill:#fff0f0,stroke:#ff6b6b
    style SDB2 fill:#fff0f0,stroke:#ff6b6b
    style SDC1 fill:#f0fff0,stroke:#4caf50

Windows

  • パーティションに直接ドライブレターを割り当て(C:、D:、E:など)
  • ディスクの管理ツールでは「ディスク0 パーティション1」のような表示

LVM(Logical Volume Manager)について

LVMはLinux独自の論理ボリューム管理システムで、Windowsのダイナミックディスクに相当する。

LVMのメリット

  • 動的なサイズ変更:稼働中でもボリュームサイズの拡張が可能
  • スナップショット:ある時点の状態を保存
  • 物理ドライブをまたぐボリューム:複数のドライブを1つの論理ボリュームとして扱える

図で表すとこのような形になる。

graph TB
    subgraph "物理ドライブ (500GB)"
        HDD["`**物理HDD**
        /dev/sda
        500GB`"]
    end
    
    HDD --> P1["`**/dev/sda1**
    200MB`"]
    
    HDD --> P2["`**/dev/sda2**
    16GB`"]
    
    HDD --> P3["`**/dev/sda3**
    50GB`"]
    
    HDD --> P4["`**/dev/sda4**
    433.8GB`"]
    
    subgraph "LVM使用時"
        HDD2["`**物理HDD**
        /dev/sda
        500GB`"]
    end
    
    HDD2 --> L1["`**/dev/sda1**
    200MB
    通常パーティション`"]
    
    HDD2 --> L2["`**/dev/sda2**
    499.8GB
    LVM物理ボリューム`"]
    
    L2 --> VG["`**ボリュームグループ**
    vg_system
    499.8GB`"]
    
    VG --> LV1["`**lv_swap**
    論理ボリューム
    16GB`"]
    
    VG --> LV2["`**lv_root**
    論理ボリューム
    50GB`"]
    
    VG --> LV3["`**lv_home**
    論理ボリューム
    400GB`"]
    
    VG --> LV4["`**未割り当て**
    33.8GB
    (後で使用可能)`"]
    
    style HDD fill:#e6f3ff,stroke:#87ceeb,stroke-width:3px
    style HDD2 fill:#e6f3ff,stroke:#87ceeb,stroke-width:3px
    style P1 fill:#ffe6e6,stroke:#ffb3b3
    style P2 fill:#f0e6ff,stroke:#d4b3ff
    style P3 fill:#e6ffe6,stroke:#b3ffb3
    style P4 fill:#fff9e6,stroke:#ffd966
    style L1 fill:#ffe6e6,stroke:#ffb3b3
    style L2 fill:#e6e6ff,stroke:#b3b3ff,stroke-width:2px
    style VG fill:#f0e6ff,stroke:#c299ff,stroke-width:2px
    style LV1 fill:#ffe6f3,stroke:#ffb3d9
    style LV2 fill:#e6fff9,stroke:#b3ffe6
    style LV3 fill:#fff0e6,stroke:#ffcc99
    style LV4 fill:#f5f5f5,stroke:#d9d9d9,stroke-dasharray: 5 5

Windowsとの比較

Windowsのダイナミックディスクも似た機能を提供するが、LVMほど柔軟ではない。Storage Spacesが近い概念だが、エンタープライズ向けの機能として位置づけられている。

実際の運用例

1本の500GB HDDを以下のように分割する場合:

従来のパーティション方式

/dev/sda1  200MB  /boot  (ext4)
/dev/sda2  16GB   swap
/dev/sda3  50GB   /      (ext4)
/dev/sda4  434GB  /home  (ext4)

LVM使用時

/dev/sda1  200MB  /boot  (ext4) ※LVMは使わない
/dev/sda2  499.8GB LVM物理ボリューム
  └─ vg_system(ボリュームグループ)
      ├─ lv_swap   16GB   swap
      ├─ lv_root   50GB   /     (ext4)
      └─ lv_home   400GB  /home (ext4)
        ※33.8GBは未割り当て(後で必要に応じて拡張可能)

2本目のドライブ(/dev/sdb)を追加した場合、既存のボリュームグループに追加して論理ボリュームを拡張できる。これはWindowsの基本ディスクでは不可能な操作である。

まとめ

LinuxのディスクがWindowsより優れている点:

  • デバイス名が明確で一貫性がある
  • マウントポイントによる柔軟なディレクトリ構造
  • LVMによる高度な論理ボリューム管理

一方で、Windowsのドライブレターはシンプルでわかりやすいというメリットもある。サーバー用途ではLinuxのアプローチが、デスクトップ用途ではWindowsのアプローチがそれぞれ適している。

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *