【LVM完全マスター第2回】新品ディスクをLVMの素材に!物理ボリューム(PV)作成とfdisk完全ガイド

「素材」がなければ、料理は始まらない。

こんにちは!「LINUX工房」管理人の「リナックス先生」です。
前回は、LVM(論理ボリュームマネージャー)が「複数のディスクを束ねて、自由自在に切り分けられる技術」であることを学びました。

概念を理解したら、いよいよ手を動かして構築していきましょう。
LVM構築の最初のステップは、「新しいディスクを用意し、LVM用の素材(PV:物理ボリューム)に加工すること」です。

コウ君

先生、買ってきましたよ!
1TBの新品ハードディスクです!
これをサーバーに繋げば、すぐにLVMで容量が増やせるんですよね?

リナックス先生

気が早いわね、コウ君。
買ってきたばかりのディスクは、まだLinuxにとって「異物」よ。
まずは正しく認識させ、パーティションを切り、「これはLVMの素材ですよ」というラベル(PV)を貼らないと使えないの。
今回はその「下処理」の手順を、コマンド一つ一つ丁寧に解説するわ!

本記事では、Linuxにおけるディスク管理の基礎コマンド(lsblk, fdisk)から、LVM独自のコマンド(pvcreate)まで、実務で使う操作を網羅します。
黒い画面(ターミナル)を開いて、一緒に進めていきましょう。

📚 LVM完全マスター(全8回)目次

現在地:【第2回】物理ボリューム(PV)の作成とディスクの追加

  • 【第1回】LVMの仕組みとメリットを完全図解
  • 【第2回】物理ボリューム(PV)の作成とディスクの追加
  • 【第3回】ボリュームグループ(VG)の作成と管理
  • 【第4回】論理ボリューム(LV)の切り出しとフォーマット
  • 【第5回】【核心】稼働中にディスク容量を増やす(lvextend)
  • 【第6回】ディスク容量の縮小と物理ディスクの交換
  • 【第7回】スナップショット機能で一瞬でバックアップを取る
  • 【第8回】LVMトラブルシューティングとRAID構成

第1章:Linuxにおける「ディスク」の正体を知る

作業を始める前に、Linuxがハードディスクをどう扱っているかを知る必要があります。
Windowsでは「Cドライブ」「Dドライブ」と呼びますが、Linuxでは「デバイスファイル」として扱われます。

1. デバイスファイル名のルール

ディスクは /dev/ ディレクトリの下に、特定のルールで名前が付けられます。

  • SATA / SCSI接続のディスク: /dev/sda, /dev/sdb, /dev/sdc …(aから順に割り当て)
  • NVMe接続のSSD: /dev/nvme0n1, /dev/nvme1n1
  • 仮想ディスク(KVMなど): /dev/vda, /dev/vdb

今回は一般的なSATA接続や仮想環境を想定し、「現在は /dev/sda があり、新しく /dev/sdb を追加する」というシナリオで進めます。

2. 現状確認の最強コマンド「lsblk」

ディスクの状態を確認するコマンドはいくつかありますが、LVMを扱うなら lsblk が最も見やすく便利です。
List Block Devicesの略です。

lsblk

実行すると、以下のようなツリー構造が表示されます。

🔍 出力の見方

  • NAME: デバイス名。sda が物理ディスク本体、sda1 がその中のパーティションを表します。
  • SIZE: 容量。
  • TYPE: disk(ディスク本体)、part(パーティション)、lvm(論理ボリューム)などの種類。
  • MOUNTPOINT: 現在どこにマウントされているか。

まずは、何もしていない状態で lsblk を打ち、現在の構成をメモしておきましょう。


第2章:新しいディスクを接続・確認する

それでは、物理的(または仮想的)にディスクを追加します。

ケースA:物理サーバーの場合

サーバーの電源を切り、空いているベイにHDDを挿入します。
(※ホットスワップ対応の高級サーバーなら電源ONのままでもOKですが、基本は停止推奨です)

ケースB:VPS / 仮想マシンの場合

KAGOYA CLOUD VPSやVirtualBoxの管理画面から、「ディスクの追加」を行い、容量(例えば20GB)を指定してアタッチします。
これは電源ONのままでも認識されることが多いですが、認識されない場合は再起動するか、以下のコマンドでSCSIバスをスキャンさせます。

# SCSIバスの再スキャン(認識されない場合のみ)
echo "- - -" | sudo tee /sys/class/scsi_host/host*/scan

接続確認

もう一度 lsblk を実行してみましょう。

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   50G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
└─sda2   8:2    0   49G  0 part 
  ├─cl-root 253:0    0   40G  0 lvm  /
  └─cl-swap 253:1    0    9G  0 lvm  [SWAP]
sdb      8:16   0   20G  0 disk  ←★これが増えている!

新しい sdb というディスク(20GB)が表示されました。
まだパーティション(sdb1など)がなく、TYPEが disk だけの状態です。
これでLinuxが新しいディスクを認識しました。


第3章:【重要】パーティションを切る?切らない?

ここでLVMにおける一つの論争があります。
「ディスク(/dev/sdb)をそのまま使うか、パーティション(/dev/sdb1)を切ってから使うか」です。

方法 対象 メリット デメリット
パーティションを切る
(/dev/sdb1)
推奨 他のOSやツールが見た時に「これはLVMだ」と識別できる(ID: 8e)。誤ってフォーマットされるリスクが減る。 作業が1ステップ増える。
ディスク丸ごと
(/dev/sdb)
可能 作業が楽。最大容量を無駄なく使える。 他のOSから見ると「空のディスク」に見えるため、誤って上書きされる危険がある。

リナックス先生の結論としては、「管理の安全性のため、パーティションを切る」ことを強く推奨します。
今回は、基本に忠実に fdisk コマンドを使ってパーティションを作成します。

fdiskコマンド実践(対話モード完全ガイド)

fdisk は対話形式(チャットボットのような感じ)で進みます。
初心者には呪文に見えるので、入力するキーを一つずつ解説します。

1. fdiskを起動

sudo fdisk /dev/sdb

「コマンド (m でヘルプ):」と表示され、入力待ちになります。

2. 新規パーティション作成(n)

コマンド (m でヘルプ): n
  • n は New(新規作成)の意味です。
  • パーティションタイプ:p(基本パーティション)を選びます(デフォルトならEnter)。
  • パーティション番号:1 を選びます(Enter)。
  • 最初のセクタ:そのまま Enter(ディスクの先頭から)。
  • 最後のセクタ:そのまま Enter(ディスクの最後まで全て)。

これで「ディスク全体を使ったパーティション1」が仮作成されました。

3. パーティションタイプをLVMに変更(t)

コマンド (m でヘルプ): t
  • t は Type(タイプ変更)の意味です。
  • 16進数コード:8e と入力します。

💡 「8e」って何?

パーティションには「これはWindows用」「これはLinux用」といったID番号があります。
「8e」「Linux LVM」を表す特別なIDです。
これを設定しておくと、管理ツールが「ああ、これはLVM用の場所だな」と一目で分かります。

4. 変更を書き込んで終了(w)

コマンド (m でヘルプ): w
  • w は Write(書き込み)の意味です。
  • これを押すまではディスクに何も書き込まれません。途中で「やっぱりやめたい」と思ったら q(Quit)を押せば無傷で終了できます。

「パーティションテーブルは変更されました」と表示されれば成功です。
lsblk で確認すると、sdb の下に └─sdb1 ができているはずです。


第4章:物理ボリューム(PV)の作成「pvcreate」

さあ、いよいよLVM独自のコマンドが登場します。
作成したパーティション /dev/sdb1 に、「LVM管理用ラベル」を貼り付けます。

使うコマンドは pvcreate です。

1. コマンド実行

sudo pvcreate /dev/sdb1

実行結果:

  Physical volume "/dev/sdb1" successfully created.

たったこれだけです。
これで、普通のパーティションだった /dev/sdb1 が、LVMの素材である「物理ボリューム(PV)」に昇格しました。

2. 作成されたか確認する

PVの状態を確認するコマンドは2つあります。

  • pvs:簡易表示(一覧を見るのに便利)
  • pvdisplay:詳細表示(サイズやUUIDなどを見る)
sudo pvs

出力例:

  PV         VG        Fmt  Attr PSize   PFree 
  /dev/sda2  cl        lvm2 a--  <49.00g    0 
  /dev/sdb1            lvm2 ---   20.00g 20.00g

新しく作った /dev/sdb1 が表示されていますね。
まだどこのグループ(VG)にも所属していないので、VG欄は空欄です。
これが「未使用の素材」の状態です。


第5章:もし間違えたら?PVの削除「pvremove」

「パーティションを切り間違えた!」などで、PVのラベルを剥がして元のただのパーティションに戻したい時は、pvremove を使います。

sudo pvremove /dev/sdb1

これでLVMの管理情報が消去されます。
※ただし、すでにVG(グループ)に組み込んでデータが入っている場合は、エラーが出て削除できません。LVMにはこういった安全装置がしっかり組み込まれています。


第6章:トラブルシューティング Q&A

初心者がPV作成時によくハマるポイントをまとめました。

Q1. "Device /dev/sdb1 not found" と言われる

A. パーティション情報の更新が遅れている可能性があります。
fdiskw を押した直後は、OSがまだ変更を認識していないことがあります。
以下のコマンドでカーネルに「パーティションテーブルを読み直せ!」と命令してください。

sudo partprobe

Q2. "Device /dev/sdb1 excluded by a filter." と言われる

A. 過去に別のRAIDやファイルシステムで使われていた痕跡(署名)が残っている可能性があります。
wipefs コマンドを使って、ディスクの署名情報を完全に消去してから再度 pvcreate してください。

sudo wipefs -a /dev/sdb1

まとめ:素材の準備完了!次は「混ぜる」作業へ

お疲れ様でした!
これで新しいディスクをサーバーに追加し、LVMの素材(PV)として使える状態になりました。

今回の作業フロー(復習):

  1. ディスクを追加する
  2. lsblk で認識を確認する
  3. fdisk でパーティション(8e)を作成する
  4. pvcreate でPVにする
  5. pvs で確認する

今はまだ「小麦粉(PV)」を買ってきてボウルに入れただけの状態です。
次回、第3回は「ボリュームグループ(VG)の作成と管理」です。
この素材を既存のシステムと混ぜ合わせて、巨大なディスクプールを作り上げる工程に入ります。

いよいよLVMの面白さが出てくるところです。お楽しみに!

▼ エンジニアとしてのキャリアを加速させる ▼

LVMを実践練習
「VPS」で環境構築

おすすめVPSを見る

インフラ技術を仕事に
「ITエンジニア転職」

転職エージェントを見る

コメント