🐧 Linux 総合学習プラットフォーム
ストレージ/ファイルシステム ・ 中級

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

ハードディスクやSSD、USBメモリは「ブロックデバイス」として扱われ、/dev/sda や /dev/nvme0n1 のような名前で表されます。1台のディスクは複数の「パーティション」に分割でき、/dev/sda1 のように末尾の数字で区別します。まず lsblk でデバイスとパーティションの構成をツリー表示して全体像をつかむのが基本です。パーティション操作は fdisk や parted で行いますが、対象を間違えると既存データを失うため、必ずデバイス名を確認してから実行します。

Linuxはストレージの扱いがとても素直だ。ハードディスクもSSDもUSBメモリも、ほとんど同じやり方で使える。

見た目はまるで違うのに同じように扱えるのは、Linuxがこれらを「ブロックデバイス」という一つの種類として見ているからだ。

ブロックデバイスとは、データを512バイトや4096バイトといった一定サイズの「ブロック」単位でまとめて読み書きし、任意の位置へrandom(ランダム)にアクセスできる装置のことだ。1文字ずつ流れてくるキーボードやシリアルポートのような「キャラクタデバイス」と対比される。

ファイルを置いて保存する用途の装置は、ほぼすべてこのブロックデバイスにあたる。

🔗
たとえブロックデバイスは「好きなページからすぐ開ける本」。キャラクタデバイスは「先頭から順に流れてくるテープ」。だから保存用の装置は前者の仲間だ。

Linuxでは、こうした装置も /dev ディレクトリの下に1つのファイルとして現れる。これをデバイスファイルと呼ぶ。種類の違う記憶装置を同じ作法で扱える土台が、この「ブロックデバイスというファイル」だ。

物理ディスク/dev/sdaブロック装置パーティション/dev/sda1/dev/sda2ファイルシステムext4 / xfsmkfs で作るマウント/mntツリーに接ぐ区切る → 骨組みを作る → ツリーに繋ぐ、の順で使えるようになる

🏷 デバイスファイルの名前の付き方

デバイスファイルは、名前を見れば「どの装置か」が分かる。名前の付き方に規則があるからだ。

SATA接続のディスクやUSBメモリは /dev/sda、/dev/sdb、/dev/sdc のように、接続された順に末尾のアルファベットが振られる。最近主流のNVMe接続のSSDは /dev/nvme0n1 のような名前になる(nvme0 が何番目のコントローラか、n1 がその中の何番目の名前空間か、を表す)。

SATA/USBディスク/dev/sda(ディスク全体)sda1パーティション1sda2パーティション22台目のディスクは sdb、3台目は sdc …NVMe SSD/dev/nvme0n1(ディスク全体)nvme0n1p1パーティション1nvme0n1p2パーティション2パーティションは p1・p2 のように p が付く
/dev/sda /dev/sdb /dev/sdc ……SATAやUSBの装置。/dev/nvme0n1 ……NVMe接続のSSD。

ここで大事なのは、これらの名前が「装置そのもの」を指している点だ。たとえば /dev/sda は1台目のディスク全体を表す。この一枚岩のディスクをどう使い分けるか――そこで次の「区切る」という話につながる。

✂ ディスクは、どう区切られるのか

1台のディスクは、そのまま丸ごと使うこともできる。だが多くの場合は、複数の領域に区切って使う。この区切られた1つ1つの領域がパーティションだ。

わざわざ区切るのは利点があるからだ。パーティションに分けると、OS用とデータ用を分離したり、領域ごとに別々のファイルシステムを置いたりできる。片方がいっぱいになっても、他方に影響しにくい。

パーティションのデバイス名は、元になったディスク名の末尾に番号を付けて表す。たとえば /dev/sda というディスクを3つに区切ると、/dev/sda1・/dev/sda2・/dev/sda3 という3つのパーティションになる。NVMeの場合は /dev/nvme0n1p1 のように、間に p が挟まる点が少し異なる。

💡
ポイントパーティション名は「ディスク名+番号」。/dev/sda → /dev/sda1。NVMeだけは /dev/nvme0n1p1 と間に p が入る。

どこをどう区切ったかという情報は、ディスクの先頭にあるパーティションテーブルという領域に記録される。その方式には、古くからのMBRと、大容量に対応した新しいGPTの2種類がある。

では、この区切り具合を、自分の目でどう確かめればよいのか。

🔍 まず lsblk で全体像をつかむ

ストレージ作業の出発点は、いま自分のマシンにどんなブロックデバイスが、どう区切られて存在するのかを把握することだ。これに最適なのが lsblk(list block devices)である。

lsblk ……ディスクとパーティションを親子ツリーで一覧。blkid /dev/sda1 ……そのパーティションのUUIDとファイルシステム種別を表示。

引数なしで lsblk と打つだけで、ディスクとその下のパーティションが、親子関係のツリー構造で一覧表示される。出力にはデバイス名(NAME)・サイズ(SIZE)・種別(TYPE:disk か part か)・マウント先(MOUNTPOINT)などが並ぶ。たとえば sda という disk の下に sda1・sda2 という part がぶら下がる、という構成が一目で読み取れる。

「いまどのディスクが何ギガで、どこに接続されていて、どう使われているか」を最初に lsblk で確認する。この習慣が、後のすべての操作の土台になる。

もう一歩踏み込んで、そのパーティションの中身は何なのかを知りたくなったら、blkid を使う。blkid は各パーティションの UUID(世界で一意な識別子)やファイルシステム種別(TYPE)、ラベル(LABEL)を表示する。

たとえば blkid /dev/sda1 とすると、そのパーティションが ext4 なのか xfs なのか、UUID は何かが分かる。この UUID は、後で /etc/fstab に永続マウントを書くときに、安定した指定方法として重要な役割を果たす。

コツ役割を分けて覚える。「lsblk で全体像、blkid で中身の正体」。どちらも見るだけのコマンドなので何度打っても安全だ。

🛠 パーティションは、何で作り変えるのか

パーティションを新しく作ったり削除したりするには、fdisk または parted を使う。

fdisk /dev/sda のように対象のディスクを引数に渡して起動し、対話形式でコマンドを打って操作する。fdisk 内では p で現在のパーティション表を表示、n で新規作成、d で削除、そして w で変更を書き込んで終了、q で書き込まずに終了する。

fdisk /dev/sda ……対話で p(表示)/n(新規)/d(削除)/w(書込み終了)/q(破棄終了)。parted /dev/sda print ……パーティション表を直接表示。

parted はより新しいツールで、GPT形式や大容量ディスクの扱いに優れる。parted /dev/sda print のようにコマンドを直接渡す使い方もできる。

どちらを使う場合も、操作の対象はパーティション(/dev/sda1)ではなく、それを含むディスク全体(/dev/sda)を指定する点に注意したい。この「全体を指定する」というひと癖が、次に語る事故と背中合わせになっている。

⚠ つまずいたら、まず確認

パーティション操作は、ストレージ作業の中でもとりわけ慎重さが求められる領域だ。fdisk や parted で対象のディスク名を1文字間違えるだけで、まったく別のディスクの区切りを書き換えてしまう。そこに入っていた既存データを、まるごと失う恐れがある。

つまずきfdisk の w(書き込み)や parted の変更確定は、実行した瞬間にディスク構造を上書きする。やり直しがきかないので、対象のディスク名を必ず二度確認する。

とくに fdisk の w(書き込み)や parted での変更確定は、実行した瞬間にディスクの構造を上書きするため、やり直しがきかない。

事故を防ぐ作法はシンプルだ。操作の前に必ず lsblk と blkid でデバイス名・サイズ・現在の中身を確認し、「いま自分が触ろうとしているのは本当にこのディスクか」を声に出して確かめるくらいの慎重さで臨む。

サイズ表示を見れば、512GBのシステムディスクと32GBのUSBメモリを取り違える、といった事故にも気づける。USBメモリのように後から挿した装置は、挿し直すと /dev/sdb が /dev/sdc に変わることもある。思い込みで作業せず、その都度 lsblk で確認する癖をつけたい。

つまずいたら、まず lsblk と blkid。これが鉄則だ。

この項目に出てくる用語

ブロックデバイスぶろっくでばいす
データを一定サイズの「ブロック」単位で読み書きする記憶装置。ディスクやSSD、USBメモリが該当し、/dev/sda などの名前で扱う。
パーティションぱーてぃしょん
1台のディスクを論理的に区切った領域。/dev/sda1 のように番号で区別し、領域ごとに別のファイルシステムを置ける。

関連コマンド

lsblkfdiskpartedblkid

▶ 学習アプリでこの続きを学ぶ・演習する