ブロックデバイスとパーティション

LinuxBeginner
オンラインで実践に進む

はじめに

オフィスビルの設計図を見ているところを想像してください。

  • 建物:ディスクドライブ(物理ストレージ)
  • 部屋:パーティション(論理的な区画)
  • 部屋の名前:マウントポイント(/home のようなアクセスパス)

この実験では、lsblk を使ってこの設計図を可視化します。

この階層的な見方が重要なのは、Linux のストレージが段階的に構成されているためです。物理デバイスまたは仮想デバイスにはパーティションが含まれる場合があり、パーティションにはファイルシステムが含まれる場合があります。そして、そのファイルシステムがメインのディレクトリツリーにマウントされます。

すべてのブロックデバイスを一覧表示する(lsblk)

lsblk(List Block Devices)を使って、ストレージの設計図を表示します。

lsblk

出力例:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0     4K  1 loop /snap/bare/5
...
vda    252:0    0    40G  0 disk
├─vda1 252:1    0     1M  0 part
└─vda3 252:3    0  39.8G  0 part /

ツリーの見方:

  • NAME:vda はディスク、vda1 はパーティションです。loopX は仮想デバイスなので、ここでは無視してください。
  • SIZE:容量です(例:40G)。
  • TYPE:disk(ディスク)、part(パーティション)、loop のいずれかです。
  • MOUNTPOINTS:データにアクセスする場所です(/ はルートディレクトリを表します)。

lsblk が初心者にとって便利なのはこのためです。単に名前を表示するだけでなく、ストレージオブジェクト同士の関係も表示されるため、どのストレージオブジェクトが別のオブジェクト上に構成されているかを確認できます。

設計図を保存します。

lsblk > devices.txt

物理ディスクだけを表示する(lsblk -d)

情報が多すぎる場合は、パーティションを非表示にしてディスクだけを表示します。

-d(device)オプションを使います。

lsblk -d

出力例:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0     4K  1 loop ...
vda    252:0    0    40G  0 disk

vda1 や vda2 などのパーティションは表示されません。

このコマンドでは、最上位のデバイスだけが一覧表示されます。

ストレージのトラブルシューティングでは、「どのディスクが存在するか」と「このディスクはどのように分割されているか」を切り替えて確認することがよくあります。そのため、完全なツリービューと最上位デバイスだけのビューを切り替えて確認できると便利です。

一覧を保存します。

lsblk -d > disks.txt

ファイルシステムを確認する(lsblk -f)

パーティションはどの形式で構成されているのでしょうか。

-f(filesystem)オプションを使うと、ファイルシステムの種類と UUID を確認できます。

lsblk -f

出力例:

NAME   FSTYPE   FSVER LABEL UUID                                 ...
vda
├─vda2 vfat     FAT32       8E24-7BB2                            ...
└─vda3 ext4     1.0         7504cd7e-f775...                     ...
  • FSTYPE:ファイルシステムの種類です。例として、ext4 は Linux 用、vfat は EFI 用です。
  • UUID:一意の ID(フィンガープリント)です。自動マウントに不可欠です。

デバイス名は、起動順序や接続されているハードウェアによって変わることがあります。そのため、設定で使用する識別子としては、UUID のほうが安定しています。

詳細を保存します。

lsblk -f > filesystems.txt

正確なサイズを確認する(lsblk -b)

スクリプトで正確なバイト数が必要な場合はどうすればよいでしょうか。

-b(bytes)オプションを使うと、G や M などの単位を付けずにサイズを表示できます。

バイト単位の出力は、人間にとっての読みやすさよりも正確な数値が重要になるスクリプトや自動化で特に役立ちます。

lsblk -b

出力例:

NAME   ... SIZE ...
vda    ... 42949672960 ...

生のデータを保存します。

lsblk -b > sizes.txt

まとめ

この実験では、lsblk コマンドを使って Linux ストレージの「設計図」を読み取る方法を学びました。

  • lsblk:ディスク(建物)とパーティション(部屋)のツリー構造を、仮想の loop デバイスも含めて表示しました。
  • **lsblk -d**:パーティションを除外し、最上位のデバイスだけを表示しました。
  • **lsblk -f**:ストレージの「内装」にあたるファイルシステムの種類と、一意の ID である UUID を表示しました。
  • **lsblk -b**:正確なサイズをバイト単位で表示しました。

これらのストレージデバイスを理解することは、ストレージを管理するための第一歩です。新しいハードドライブの追加、パーティションのサイズ変更、サーバーの容量が不足した原因の確認などに役立ちます。