本記事には広告(アフィリエイトリンク)が含まれます。

ディスクとファイルシステム LinuC101 第12回

広告

新卒インフラエンジニア向けLinuC 101 試験対策シリーズの最終回・第12回です。シリーズの締めくくりとして、サーバーの根幹に関わる ストレージを扱います。物理ディスクからパーティション、ファイルシステム、マウント、そして LVM までを順に積み上げます。

「ディスクが満杯」「ボリュームを追加した」「データ用パーティションを切り直したい」── こうした作業は仮想・物理を問わず常に発生します。本記事を通して、空のディスクからファイルが置けるマウントポイントが立ち上がるまでの一連を、自分の手で経験してみてください。

環境前提

  • ディストリビューション: AlmaLinux 9.6(Sage Margay)
  • ユーザー: developer(sudo NOPASSWD設定済み)
  • 関連VM: linuc-alma(10.0.10.132)
  • 既存ディスク: /dev/sda(50GB、GPT、LVM 構成)── 触らない
  • 本回演習用: /dev/sdb(5GB の追加ディスク)を新規アタッチ
  • 演習で作るパーティション・LVM・/etc/fstab エントリは末尾でクリーンアップ
広告

今ここマップ

LinuC 101 試験対策シリーズ(全12回)

  第1回 Linuxの起動・接続・停止
  第2回 ブートプロセスの仕組み
  第3回 systemdマスター講座
  第4回 プロセス管理とハードウェア基礎
  第5回 仮想マシンとコンテナの基礎
  第6回 パッケージ管理マスター
  第7回 ファイル操作の実践
  第8回 パーミッション・所有者・特殊権限
  第9回 コマンドライン・リダイレクト・パイプ
  第10回 テキスト処理(grep / sed / awk)
  第11回 vi/vim 入門
▶ 第12回 ディスク・パーティション・ファイルシステム    ← いまここ

この記事で身につくこと

  1. MBR と GPT の違い(最大パーティション数・最大ディスクサイズ・対応ファームウェア)を説明できる
  2. fdisk / parted でパーティションを作成・削除でき、lsblk blkid で構造を確認できる
  3. mkfs.xfs mkfs.ext4 でファイルシステムを作成し、mkswap でスワップを作成できる
  4. mount umount でマウント・アンマウントでき、/etc/fstab に UUID 指定で永続化できる
  5. LVM の PV / VG / LV の階層を説明し、lvextend + resize2fs で論理ボリュームを拡張できる

第1章:ストレージの全体像

1つのファイルが書き出せるまでには、複数の階層が積み重なっています。

Linuxストレージの全体階層を5層で示す縦長概念図。最上位の「ファイル」(人間が扱う対象)から、マウントポイント(/, /home, /mnt/data)、ファイルシステム(XFS, ext4, vfat, btrfs)、パーティション(/dev/sda1 など、LVMの場合はLV)、最下位の「物理(または仮想)ディスク」(/dev/sda, /dev/sdb 等。実際のハードウェア/VHDX)までの階層関係を下向き矢印で示す
図 12-01. ストレージの全体階層

本記事ではこの階層を、空の /dev/sdb から順に組み上げていきます。

linuc-almaで実行:

$ lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS

実行結果:

NAME                SIZE TYPE FSTYPE      MOUNTPOINTS
sda                  50G disk
├─sda1              600M part vfat        /boot/efi
├─sda2                1G part xfs         /boot
└─sda3             48.4G part LVM2_member
  ├─almalinux-root 44.5G lvm  xfs         /
  └─almalinux-swap  3.9G lvm  swap        [SWAP]
sdb                   5G disk
sr0                1024M rom

既存の /dev/sda(50GB)は AlmaLinux のシステムディスクで、ESP(/boot/efi、vfat)+ /boot(XFS)+ LVM(root と swap)という現代の標準構成です。/dev/sdb(5GB)が今回の演習対象。空っぽの状態から始めます。

第2章:MBR と GPT

パーティションテーブルには2つの方式があります。古典的な MBR と現代の GPT。

項目MBR (Master Boot Record)GPT (GUID Partition Table)
登場時期1980年代2000年代後半
最大ディスクサイズ2TB(2^32 × 512B)ペタバイト級(事実上無制限)
最大パーティション数4 基本(または 3 基本+1 拡張+論理)既定 128
セクタ数の管理32bit(512B 換算)64bit
典型的な組み合わせBIOSUEFI
バックアップ1箇所のみ(先頭)2箇所(先頭と末尾、自動冗長化)

現代のサーバー・PC は UEFI + GPT が標準。第2回(ブートプロセス)で確認した /boot/efi(ESP = EFI System Partition)も GPT 上に作られたパーティションです。

linuc-almaで実行:

$ lsblk -o NAME,SIZE,TYPE,PTTYPE

実行結果:

NAME                SIZE TYPE PTTYPE
sda                  50G disk gpt
├─sda1              600M part gpt
├─sda2                1G part gpt
└─sda3             48.4G part gpt
  ├─almalinux-root 44.5G lvm
  └─almalinux-swap  3.9G lvm
sdb                   5G disk
sr0                1024M rom

PTTYPE 列で パーティションテーブル形式が分かります。/dev/sdagpt/dev/sdb はまだ何も作られていないので空欄。LVM 上の論理ボリューム(root / swap)はパーティションではないので空欄です。

📖 試験Tipsボックス:MBR と GPT

主題:1.05.2(重要度:高)
出題パターン:「MBR の最大基本パーティション数は?」「GPT の最大パーティション数は?」「GPT が必要となる条件は?」

暗記ポイント

  • MBR:最大 4 基本(または 3 基本+1 拡張+論理)/ 最大 2TB / BIOS との組み合わせ
  • GPT:既定 128 パーティション / ペタバイト級 / UEFI との組み合わせ
  • GPT が必要:2TB 超のディスク、UEFI ブート、多数のパーティション
  • 確認:lsblk -o PTTYPE または parted /dev/sdX print
  • GPT は先頭と末尾の 2箇所にバックアップ(自動冗長化)

第3章:パーティション操作

3.1 パーティション操作の道具

ツール対応形式操作スタイル用途
fdiskMBR / GPT 両対応(util-linux 2.26+)対話型(メニュー)定番。手作業で1つ作るとき
gdiskGPT 専用対話型fdisk と似た操作感、GPT 専用機能あり
partedMBR / GPT 両対応対話 or スクリプト自動化スクリプトに組み込みやすい
lsblk確認のみツリー表示、サイズ・種別の俯瞰
blkid確認のみUUID と FS 種別の取得

3.2 fdisk -l でディスク情報を見る

linuc-almaで実行:

$ sudo fdisk -l /dev/sdb

実行結果:

ディスク /dev/sdb: 5 GiB, 5368709120 バイト, 10485760 セクタ
ディスク型式: Virtual Disk
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト

空のディスクなのでパーティション情報は出ません。論理セクタ 512B、物理セクタ 4096B という Advanced Format。現代のディスクの標準です。

3.3 parted で GPT ラベル + 2 パーティション作成

本記事では parted でスクリプト的に進めます。--script オプションで対話プロンプトを抑制。linuc-almaで実行:

$ sudo parted /dev/sdb mklabel gpt --script
$ sudo parted /dev/sdb mkpart primary 1MiB 1GiB --script
$ sudo parted /dev/sdb mkpart primary 1GiB 100% --script
$ sudo partprobe /dev/sdb
  • mklabel gpt:パーティションテーブルを GPT で初期化
  • mkpart primary 1MiB 1GiB:1MiB から 1GiB までを /dev/sdb1 として確保
  • mkpart primary 1GiB 100%:残り(1GiB から末尾まで)を /dev/sdb2
  • partprobe:カーネルにパーティションテーブルの再読み込みを通知

linuc-almaで実行:

$ sudo parted /dev/sdb print

実行結果:

モデル: Msft Virtual Disk (scsi)
ディスク /dev/sdb: 5369MB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
ディスクフラグ:

番号  開始    終了    サイズ  ファイルシステム  名前     フラグ
 1    1049kB  1074MB  1073MB                    primary
 2    1074MB  5368MB  4294MB                    primary

パーティション 1 と 2 が作成されました。「ファイルシステム」列が空なのに注目 ── パーティションを切っただけで、まだファイルシステムは作っていません。

linuc-almaで実行:

$ lsblk /dev/sdb

実行結果:

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sdb      8:16   0    5G  0 disk
├─sdb1   8:17   0 1023M  0 part
└─sdb2   8:18   0    4G  0 part

📖 試験Tipsボックス:パーティション操作コマンド

主題:1.05.2(重要度:高)
出題パターン:「対話形式でパーティション編集するコマンドは?」「スクリプト向きのパーティションツールは?」「カーネルにパーティション変更を伝えるは?」

暗記ポイント

  • fdisk 対話型(MBR/GPT 両対応) / gdisk 対話型(GPT 専用) / parted 対話&スクリプト両対応
  • fdisk サブコマンド:m ヘルプ / n 新規 / d 削除 / p 表示 / w 書き込み終了 / q 破棄終了
  • partprobe でカーネルにパーティション変更を通知
  • lsblk ツリー / blkid UUID 確認 / cat /proc/partitions 簡易一覧

第4章:ファイルシステムを作る

4.1 mkfs ファミリー

コマンドファイルシステム典型用途
mkfs.xfsXFSRHEL/AlmaLinux 系の既定。大容量に強い、縮小不可
mkfs.ext4ext4汎用。Debian/Ubuntu 系の既定。縮小可能
mkfs.btrfsBtrfsスナップショット・サブボリュームに対応
mkfs.vfatFAT32ESP(/boot/efi)や USB メモリ
mkswapスワップ領域仮想メモリ用

4.2 XFS でフォーマット

linuc-almaで実行:

$ sudo mkfs.xfs /dev/sdb1

実行結果(抜粋):

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=65472 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=1 inobtcount=1
data     =                       bsize=4096   blocks=261888, imaxpct=25
log      =internal log           bsize=4096   blocks=16384, version=2
realtime =none                   extsz=4096   blocks=0, rtextents=0
Discarding blocks...Done.

crc=1(チェックサム)、reflink=1(参照リンクによる効率化)、bigtime=1(2038年問題回避)など、現代の XFS 機能が既定で有効になっています。

4.3 UUID の取得

ファイルシステム作成後、blkid で UUID が見えるようになります。linuc-almaで実行:

$ sudo blkid /dev/sdb1

実行結果:

/dev/sdb1: UUID="c9475d25-11d1-43d6-8fc2-46de01e8bbaf" TYPE="xfs" PARTLABEL="primary" PARTUUID="605f7037-66a5-4158-92f7-2e64c9c62ab3"
  • UUID:ファイルシステムごとに割り振られる識別子。/etc/fstab で使う本命
  • PARTUUID:パーティションそのものの識別子(GPT 機能)
  • TYPE:ファイルシステム種別(xfs / ext4 / vfat 等)

UUID は ファイルシステムを再作成すると変わるので、本番ではフォーマット直後に控えておきます。

第5章:マウントと /etc/fstab

5.1 mount コマンド ── 一時的な接続

linuc-almaで実行:

$ sudo mkdir -p /mnt/data
$ sudo mount /dev/sdb1 /mnt/data
$ df -h /mnt/data

実行結果:

ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/sdb1        959M   39M  921M    5% /mnt/data

linuc-almaで実行:

$ mount | grep sdb1

実行結果:

/dev/sdb1 on /mnt/data type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)

マウントオプションも見えます。rw(読み書き)、relatime(atime更新を最小化)、seclabel(SELinux ラベル対応)など。一時的なマウントを解除するには umount

linuc-almaで実行:

$ sudo umount /mnt/data

5.2 /etc/fstab ── 永続化

再起動するとマウントは消えます。永続化するには /etc/fstab に追記。

# /etc/fstab の構造(6列)
# <デバイス>     <マウント先>  <FS種別>  <オプション>  <dump>  <fsck順>
UUID=c9475d25-11d1-43d6-8fc2-46de01e8bbaf  /mnt/data  xfs  defaults  0  0
意味
1. デバイスUUID=... 推奨。/dev/sdb1 でも書けるが、デバイス名は順序が変わる可能性がある
2. マウント先マウントポイントの絶対パス
3. FS 種別xfs ext4 swap vfat nfs など
4. オプションdefaults(=rw,suid,dev,exec,auto,nouser,async)/ noexec / nosuid / ro など
5. dump古い dump コマンド用。通常 0
6. fsck 順序起動時 fsck の順序。/1、その他は 2、不要なら 0

5.3 mount -a で構文チェック&即時反映

fstab を編集したら 必ず mount -a で動作確認します。エラーがあればここで気付ける ── 再起動してから気付くと起動失敗で復旧が大変です。

$ sudo blkid /dev/sdb1     # UUID を控える
$ sudo vi /etc/fstab       # 末尾に1行追加
$ sudo mount -a            # 構文チェック+即時マウント
$ df -h /mnt/data          # 反映確認

📖 試験Tipsボックス:mount と /etc/fstab

主題:1.05.3(重要度:高)
出題パターン:「全 fstab エントリを反映するコマンドは?」「fstab で UUID 指定する書式は?」「6列目の意味は?」

暗記ポイント

  • mount /dev/sdb1 /mnt/data 一時マウント / mount -t xfs ... FS種別明示 / mount -o ro ... 読取専用
  • umount /mnt/data 解除(または umount /dev/sdb1
  • mount -a 全 fstab エントリを反映(構文チェックを兼ねる)
  • fstab 6列:デバイス・マウント先・FS種別・オプション・dump・fsck順
  • UUID 指定が安全(デバイス名は SCSI ID 順序が変わる可能性)
  • 典型オプション:defaults / ro / noexec / nosuid / noatime

第6章:LVM ── 論理ボリューム管理

6.1 なぜ LVM か

素のパーティションには制限があります。「サイズを後から大きくしたい」「複数ディスクをまとめて1つの大きな領域として扱いたい」「スナップショットが欲しい」── これらを解決するのが LVM(Logical Volume Manager)です。

  • オンライン拡張:マウントしたまま LV のサイズを拡大できる
  • 複数ディスクの集約:3 本のディスクを 1 つの VG にまとめて、その上に LV を切る
  • スナップショット:バックアップ前に整合性のあるコピーを瞬時に作成
  • オンラインでの追加:実機に新ディスクを足して、即時 VG 拡張

6.2 PV / VG / LV の階層

LVM は物理ディスクを直接使わず、PV・VG・LV という3つの層を重ねて構成します。まずは全体像を図で押さえます。

LVM (Logical Volume Manager) の3層モデル概念図。最下段の物理ディスク(/dev/sdb, /dev/sdc, /dev/sdd)からpvcreateでPV(Physical Volume)化し、vgcreateで集約してVG(Volume Group: datavg)というストレージのプールを構成。lvcreateで複数のLV(例: app 10G, db 50G)に切り出し、mkfs.xfsやmkfs.ext4でファイルシステム化してマウントポイント(/mnt/app, /mnt/db)に到達
図 12-02. LVM の3層モデル ── PV / VG / LV

6.3 PV → VG → LV を作る

linuc-almaで実行:

$ sudo pvcreate /dev/sdb2

実行結果:

  Physical volume "/dev/sdb2" successfully created.

linuc-almaで実行:

$ sudo vgcreate datavg /dev/sdb2
$ sudo lvcreate -n datalv -L 1G datavg

実行結果:

  Volume group "datavg" successfully created
  Logical volume "datalv" created.

状態確認は pvs vgs lvs の3コマンド。linuc-almaで実行:

$ sudo pvs
$ sudo vgs
$ sudo lvs

実行結果:

  PV         VG        Fmt  Attr PSize  PFree
  /dev/sda3  almalinux lvm2 a--  48.41g     0
  /dev/sdb2  datavg    lvm2 a--  <4.00g <3.00g

  VG        #PV #LV #SN Attr   VSize  VFree
  almalinux   1   2   0 wz--n- 48.41g     0
  datavg      1   1   0 wz--n- <4.00g <3.00g

  LV     VG        Attr       LSize  ...
  root   almalinux -wi-ao---- 44.46g
  swap   almalinux -wi-ao---- <3.95g
  datalv datavg    -wi-a-----  1.00g

既存の almalinux VG(root と swap)と並んで、新しい datavg(datalv 1GB)が見えます。VG には残り 3GB の空きがあり、ここから後で LV を拡張できます。

6.4 LV にファイルシステムを作ってマウント

LV は通常のブロックデバイスとして扱えます。デバイス名は /dev/datavg/datalv または /dev/mapper/datavg-datalv

linuc-almaで実行:

$ sudo mkfs.ext4 /dev/datavg/datalv
$ sudo mount /dev/datavg/datalv /mnt/data
$ df -h /mnt/data

実行結果:

ファイルシス              サイズ  使用  残り 使用% マウント位置
/dev/mapper/datavg-datalv   974M   24K  907M    1% /mnt/data

6.5 オンライン拡張 ── LVM 最大の見どころ

このマウントしたままの状態で、LV を 500MB 拡張してみます。linuc-almaで実行:

$ sudo lvextend -L +500M /dev/datavg/datalv

実行結果:

  Size of logical volume datavg/datalv changed from 1.00 GiB (256 extents) to <1.49 GiB (381 extents).
  Logical volume datavg/datalv successfully resized.

LV のサイズは増えましたが、上に乗っているファイルシステムはまだ 1GB のまま。resize2fs(ext4 用、XFS なら xfs_growfs)で広げます。linuc-almaで実行:

$ sudo resize2fs /dev/datavg/datalv

実行結果:

resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/datavg/datalv is mounted on /mnt/data; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/datavg/datalv is now 390144 (4k) blocks long.

linuc-almaで実行:

$ df -h /mnt/data

実行結果:

ファイルシス              サイズ  使用  残り 使用% マウント位置
/dev/mapper/datavg-datalv   1.5G   24K  1.4G    1% /mnt/data

974M(≒1GB)が 1.5G に拡張されました。マウントしたまま、サービスを止めず、ユーザーへの影響なし。これが LVM の代表的な強みです。

XFS で同じことをするなら lvextend + xfs_growfs /mnt/data。XFS は拡張のみ可能で縮小不可な点に注意してください。

📖 試験Tipsボックス:LVM の階層

主題:1.05.3(重要度:高)
出題パターン:「PV / VG / LV の関係は?」「LV を拡張するコマンドは?」「拡張後にファイルシステムをオンラインで広げるコマンドは?」

暗記ポイント

  • 物理 → PV (pvcreate) → VG (vgcreate) → LV (lvcreate) → FS マウント
  • 確認の3点セット:pvs vgs lvs(簡易)/ pvdisplay vgdisplay lvdisplay(詳細)
  • 拡張:lvextend -L +N /dev/vg/lvxfs_growfs <mountpoint>(XFS)/ resize2fs /dev/vg/lv(ext4)
  • 削除:lvremovevgremovepvremove(逆順)
  • LV のデバイス名:/dev/<vg>/<lv> または /dev/mapper/<vg>-<lv>
  • XFS は拡張のみ。縮小したいなら ext4

第7章:現場での使いどころ

  • ディスク逼迫対応df -h で / が満杯 → du -sh /var/* | sort -h で犯人特定 → 不要ログ削除 or LV 拡張
  • 新規ディスクの追加:物理ディスク差し込み or クラウドでボリュームアタッチ → fdisk/parted でパーティション → mkfs/etc/fstab で永続マウント
  • クラウドでのボリューム拡張:AWS EBS をオンライン拡張 → growpartxfs_growfs または resize2fs(同じ流れ)
  • LVM スナップショット:本番 DB バックアップ前に lvcreate -s で整合性のあるスナップショットを取得 → 安全にバックアップ
  • 緊急時のレスキューモード:起動失敗 → レスキューイメージで起動 → /etc/fstab を vi で修正 → 復旧
  • ディスク監査lsblk + blkid + pvs/vgs/lvs の組み合わせで「サーバーのストレージ構成スナップショット」を取得し、構成管理ツールに反映
  • 中古ディスクの再利用wipefs -a /dev/sdX で旧 FS/LVM 署名を消去 → 安全に再フォーマット

第8章:ヒヤリハット ── /etc/fstab のミスで起動不能

⚠️ /etc/fstab タイポで再起動後に緊急モード突入

新人 L 君は新規ボリュームを追加するため、/etc/fstab に行を追記しました。blkid で控えた UUID を貼り付けたつもりが、UUID の最後の数文字が抜けていたことに気付かず保存。動作確認の mount -a も飛ばして、メンテナンス後にサーバーを再起動。

結果、起動時の自動マウントで該当 UUID が見つからず緊急モード(emergency mode)に突入。SSH も上がらず、Hyper-V コンソールから root パスワードでレスキューモードにログイン → vi /etc/fstab で該当行を修正 → 再起動 で復旧。リモートワーク中だったため、コンソールアクセス手段が無ければ復旧不能でした。

教訓

  • /etc/fstab 編集後は必ず sudo mount -a で構文チェック&即時反映。エラーがその場で出る
  • UUID は blkid の出力をコピー&ペーストする(手書きで間違える)
  • 致命的にしないオプション:fstab エントリに nofail を付けると、マウント失敗しても起動は続く(重要度の低いボリューム向け)
  • 本番作業時はコンソールアクセス手段を必ず確保(IPMI / Hyper-V / クラウドのシリアルコンソール)
  • fstab を変更する作業は再起動テストまでが1セット。「次の再起動でしか問題が出ない」のが厄介

類似事例:FS 種別の指定ミス(ext4 のはずが xfs と書いた)、必須列の欠落(fsck 順を書き忘れて 6 列にならない)、デバイス名指定で SCSI 順序がズレて別のディスクをマウント。fstab は1行のミスでサーバーを停止させると心得てください。

やってみよう

linuc-alma に /dev/sdb(5GB)が接続されている前提で、演習1〜4を順に実行してください。

演習1:ディスクとパーティション形式の把握

  1. lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS
  2. lsblk -o NAME,SIZE,TYPE,PTTYPE
  3. sudo fdisk -l /dev/sdb(ディスク情報、空のはず)
  4. cat /proc/partitions

演習2:parted で /dev/sdb に2パーティション作成

  1. sudo parted /dev/sdb mklabel gpt --script
  2. sudo parted /dev/sdb mkpart primary 1MiB 1GiB --script
  3. sudo parted /dev/sdb mkpart primary 1GiB 100% --script
  4. sudo partprobe /dev/sdb
  5. sudo parted /dev/sdb print でパーティション確認
  6. lsblk /dev/sdb で sdb1 と sdb2 を確認

演習3:XFS 作成・マウント・/etc/fstab

  1. sudo mkfs.xfs /dev/sdb1
  2. sudo mkdir -p /mnt/data
  3. sudo mount /dev/sdb1 /mnt/data
  4. df -h /mnt/data で 959M 程度が見える
  5. sudo blkid /dev/sdb1 で UUID をコピー(メモ帳に貼る)
  6. sudo umount /mnt/data
  7. sudo vi /etc/fstab で末尾に追記:
    UUID=<先ほどの UUID> /mnt/data xfs defaults 0 0
  8. sudo mount -a で構文チェック&再マウント(エラーが出ないことを確認)
  9. df -h /mnt/data で再マウント反映確認
  10. クリーンアップsudo umount /mnt/datasudo vi /etc/fstab で追加した行を削除 → sudo mount -a でエラー無し確認

演習4:LVM で /dev/sdb2 を拡張可能ボリュームに

  1. sudo pvcreate /dev/sdb2
  2. sudo vgcreate datavg /dev/sdb2
  3. sudo lvcreate -n datalv -L 1G datavg
  4. sudo pvs && sudo vgs && sudo lvs で 3 階層を確認
  5. sudo mkfs.ext4 /dev/datavg/datalv
  6. sudo mount /dev/datavg/datalv /mnt/data
  7. df -h /mnt/data(974M ≒ 1GB)
  8. sudo lvextend -L +500M /dev/datavg/datalv
  9. sudo resize2fs /dev/datavg/datalv
  10. df -h /mnt/data(1.5G に拡張されている)
  11. クリーンアップ
    sudo umount /mnt/data
    sudo lvremove -f /dev/datavg/datalv
    sudo vgremove -f datavg
    sudo pvremove /dev/sdb2
    sudo wipefs -a /dev/sdb1 /dev/sdb2 /dev/sdb
    sudo rmdir /mnt/data

分からないオプションは man partedman fdiskman mkfs.xfsman lvm で調べてください。LVM は man lvextend man lvcreate など個別 man も充実しています。

理解度チェック

○か×で答えてください。

  1. MBR の基本パーティションは最大 4 個までだが、GPT は既定 128 個まで作成できる。
  2. parted /dev/sdb mklabel gpt はパーティションテーブルを GPT 形式で初期化する。
  3. /etc/fstab の編集後に mount -a を実行すると、構文チェックと未マウントエントリの即時反映が行われる。
  4. LVM の階層は「物理ディスク → LV → VG → PV」の順である。
  5. ext4 は resize2fs でオンライン拡張・縮小ができるが、XFS は拡張のみで縮小はできない。

解答

  • 1.  MBR は 4 基本(または 3 基本+1 拡張+論理)/ GPT は既定 128
  • 2.  mklabel gpt でパーティションテーブルを GPT で初期化(既存データは消える)
  • 3.  mount -a は fstab を読み直し、未マウントエントリをマウントする。構文エラーがあればその場で表示される
  • 4. × 正しくは「物理ディスク → PVVGLV」。順序を逆にすると意味が変わる
  • 5.  ext4 は resize2fs でオンライン拡張・縮小可。XFS は xfs_growfs拡張のみ、縮小は別ボリュームへのコピーが必要

LinuC 101 シリーズ 完走

第1回から第12回までお疲れさまでした。LinuC 101 試験対策シリーズはここで完結です。

これまで学んだこと(全12回 振り返り)

テーマ主題
1Linuxの起動・接続・停止1.01.1
2ブートプロセスの仕組み1.01.3
3systemd マスター講座1.01.3
4プロセス管理とハードウェア基礎1.01.4 + 1.05.1
5仮想マシンとコンテナの基礎1.01.2
6パッケージ管理マスター1.04 全般
7ファイル操作の実践1.02.2-1.02.4
8パーミッション・所有者・特殊権限1.02.1
9コマンドライン・リダイレクト・パイプ1.03.1, 1.03.3
10テキスト処理の三種の神器1.03.2, 1.03.4
11vi/vim 入門1.03.5
12ディスク・パーティション・ファイルシステム1.05.2, 1.05.3

ここまで来たあなたへ

本シリーズを通読したあなたは、新卒インフラエンジニアとして現場で求められる Linux の基礎を一通り身につけています。systemd でサービスを動かし、プロセスを観察し、パッケージを管理し、ファイルを編集し、テキストを処理し、ディスクを増設する ── これらは現場の日常作業の土台です。

LinuC 101 試験を受験する場合、本シリーズの内容を理解し、各回末尾の「やってみよう」を実機で完走すれば、合格圏内に届きます。試験はあくまで通過点で、本当の目的は現場で困らない Linux 力を身につけることです。

次のステップ:LinuC 102

LinuC レベル1 の合格には、もう一つの試験 102 も必要です。LinuC 102 試験対策シリーズ では、本シリーズと同じ進め方で次の主題を扱います。

  • シェル環境のカスタマイズ(環境変数・エイリアス・履歴・ロケール)
  • Bash スクリプト入門(if / for / 関数で書く現場の自動化)
  • ネットワーク基礎(TCP/IP・ip コマンド・NetworkManager)
  • ネットワークトラブルシュートと DNS クライアント
  • ユーザ・グループ管理と sudo 設定
  • ジョブスケジューリングと時刻管理(cron / systemd timer / chrony)
  • ログ管理(journalctl / rsyslog)
  • メール配送(postfix の基本)
  • ファイアウォール(firewalld / ufw)と SELinux
  • 暗号化(SSH 鍵認証・GnuPG・OpenSSL)
  • クラウドセキュリティ基礎(IAM・公開鍵管理・Bastion)
  • オープンソースの文化(GPL/MIT/Apache 等のライセンス)

本シリーズ第6回(パッケージ管理)以来の linuc-ubuntu も、ネットワーク回・ログ回・SSH 回で再登場します。AlmaLinux と Ubuntu の比較学習が再開されます。

関連シリーズ:「新卒からプロへ — Linux エンジニア養成講座」

「試験合格より、もっと現場の生々しい話が知りたい」「実装中心の話を読みたい」という方には、「新卒からプロへ — Linux エンジニア養成講座」 をおすすめします。本シリーズより少し進んだ実装トピック(プロキシ構築、ユーザー管理の運用、SSH の応用、SELinux 実戦運用、ログ集約、firewalld の本番設定など)を扱う既存シリーズです。

LinuC 101 試験対策シリーズ 全12回

広告
Linux
スポンサーリンク