はじめに (対象読者・この記事でわかること)

本記事は、CentOS 7 を本番環境や開発環境で利用しようとしているシステム管理者・エンジニアを対象としています。Linux の基本操作はできるが、ディスクのパーティション設計に自信がない、あるいは最適なレイアウトを知りたいという方に最適です。この記事を読むことで、CentOS 7 におけるパーティションの役割と種類、サーバ用途別に推奨されるパーティション構成、そして実際に partedfdisk を用いた作業手順が具体的に理解でき、即座に自分のサーバへ適用できるようになります。過去にサーバトラブルでディスク容量が足りなくなった経験を踏まえ、失敗しがちなポイントも併せて紹介します。

前提知識

この記事を読み進める上で、以下の知識があるとスムーズです。
- Linux の基本的なコマンド操作(ls、cp、mount など)
- 基本的なファイルシステム(ext4、XFS)の概念
- sudo 権限を有するユーザーでの操作経験

CentOS 7 におけるパーティション設計の基本と背景

CentOS 7 では、システムの安定稼働と保守性を高めるために、ディスクを論理的に分割して役割別にマウントポイントを設けることが推奨されています。主なパーティションは次の通りです。

パーティション 主な役割 推奨サイズ例
/boot カーネルとブートローダーの格納 500 MiB
swap メモリ不足時のスワップ領域 RAM 容量の 1.5 倍(最大 8 GiB)
/ (ルート) 基本的なシステムファイル 15 GiB 以上
/var ログ、メールキュー、データベース等の可変データ 使用状況に応じて 10 GiB 以上
/home ユーザーのホームディレクトリ 必要に応じて残り全部
/tmp 一時ファイル領域(セキュリティ向上のため別パーティション化推奨) 2 GiB 以上
/opt サードパーティ製アプリケーション 必要に応じて 5 GiB 以上

なぜパーティションを分割すべきか

  1. 障害切り分け/var が膨らんでも / がいっぱいになるリスクを防げる。
  2. 性能最適化:ログ用の /var を別ディスクにしたり、/home を高速 SSD にしたりできる。
  3. セキュリティ/tmpnoexecnodev でマウントすると、悪意あるバイナリの実行を防止できる。
  4. バックアップ戦略:データ領域だけを対象にした増分バックアップが容易になる。

以上を踏まえ、実際にパーティションを作成する手順を次のセクションで詳述します。

CentOS 7 での実践的なパーティション作成手順

前提条件と準備

  • 作業対象のサーバは、最低でも 20 GiB 以上の未使用ディスク(例: /dev/sda)があること。
  • 重要なデータは必ずバックアップを取得し、作業はメンテナンスウィンドウ内で行う。
  • partedmkfsmount コマンドが利用可能であることを確認する(yum install -y parted)。

ステップ1:ディスクの確認と初期化

Bash
# ディスク情報の取得 sudo lsblk -f # 例: /dev/sda が対象ディスク # 既存のパーティションテーブルを削除(GPT 推奨) sudo parted /dev/sda mklabel gpt

ステップ2:必須パーティションの作成

/boot(500 MiB、ext4)

Bash
sudo parted -a optimal /dev/sda mkpart primary ext4 1MiB 513MiB sudo mkfs.ext4 /dev/sda1 sudo mkdir -p /mnt/boot sudo mount /dev/sda1 /mnt/boot

swap(RAM の 1.5 倍、最大 8 GiB)

Bash
# 例: RAM が 4GiB の場合、6GiB を割り当て SWAP_SIZE=$(( $(free -b | awk '/Mem:/ {print $2}') * 3 / 2 )) sudo fallocate -l ${SWAP_SIZE} /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile

/(ルート、20 GiB、XFS)

Bash
sudo parted -a optimal /dev/sda mkpart primary xfs 513MiB 20.5GiB sudo mkfs.xfs /dev/sda2 sudo mkdir -p /mnt/root sudo mount /dev/sda2 /mnt/root

/var(可変データ、15 GiB、XFS)

Bash
sudo parted -a optimal /dev/sda mkpart primary xfs 20.5GiB 35.5GiB sudo mkfs.xfs /dev/sda3 sudo mkdir -p /mnt/root/var sudo mount /dev/sda3 /mnt/root/var

/home(残り全部)

Bash
sudo parted -a optimal /dev/sda mkpart primary xfs 35.5GiB 100% sudo mkfs.xfs /dev/sda4 sudo mkdir -p /mnt/root/home sudo mount /dev/sda4 /mnt/root/home

ステップ3:/etc/fstab への永続化設定

Bash
cat << EOF | sudo tee -a /mnt/root/etc/fstab /dev/sda1 /boot ext4 defaults 0 2 /dev/sda2 / xfs defaults 0 1 /dev/sda3 /var xfs defaults 0 2 /dev/sda4 /home xfs defaults 0 2 /mnt/swapfile none swap sw 0 0 EOF

ステップ4:ブートローダーの再インストールと検証

Bash
# chroot 環境へ移行 sudo mount --bind /dev /mnt/root/dev sudo mount --bind /proc /mnt/root/proc sudo mount --bind /sys /mnt/root/sys sudo chroot /mnt/root /bin/bash # GRUB のインストール grub2-install /dev/sda grub2-mkconfig -o /boot/grub2/grub.cfg exit # chroot から抜ける

ハマった点やエラー解決

  1. パーティションサイズ指定の単位ミス
    parted では MiBGiB を明示しないとデフォルトが GB になるため、サイズがずれたケースが多数報告されています。必ず MiBGiB を付与し、lsblk で再確認してください。

  2. /boot が 500 MiB 未満で失敗
    CentOS のカーネルと initramfs が 500 MiB を超えることがあり、エラー No space left on device が出ます。余裕を持たせて 1 GiB に拡張すると安定します。

  3. swapfile の場所がルート以外
    swapfile を別パーティションに置くと fstab のマウント順序が影響し、起動時にスワップが有効にならないことがあります。/etc/fstabdefaults,pri=1 を付与し、systemd-swap の有効化で対処。

解決策まとめ

  • 単位は必ず明示MiB/GiB を付けて正確にサイズ指定。
  • /boot は余裕を持つ:最低 1 GiB 推奨。
  • swapfile の永続化fstab に適切に記載し、swapon -a で確認。

まとめ

本記事では、CentOS 7 におけるパーティション設計の基本概念と、実践的な分割手順をステップバイステップで解説しました。
- パーティションを役割別に分割し、障害切り分け・性能最適化・セキュリティ向上を実現。
- partedmkfs を使った具体的な作成コマンド例と、/etc/fstab への永続化手順を提供。
- 実装時の落とし穴(単位ミスや /boot 容量不足、swapfile の配置)とその解決策をまとめました。

これにより、読者は自分のサーバ環境に最適なディスクレイアウトを構築でき、運用トラブルを未然に防げるようになります。次回は、LVM を活用した柔軟なボリューム管理や RAID 構成との組み合わせについて解説する予定です。

参考資料