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 0、Disk 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のアプローチがそれぞれ適している。

