Linuxのパーティション
ディレクトリ構造
Linuxのインストール体系
インストールのパーティション
1.基本的なパーティション
Linuxのインストールには、最低限以下の3つのパーティションを作成する必要があります。
1.1 / (ルートパーティション)
役割: システムのルートディレクトリ(/)を格納するパーティションです。Linuxの全てのディレクトリは/から始まるため、最も重要なパーティションです。
サイズの目安: 通常20GB〜30GB程度で十分ですが、システムの用途やインストールするソフトウェアの量に応じて調整が必要です。
最低限:20GB
標準:30GB〜50GB
大規模システム:100GB以上
1.2 swap パーティション
役割: 仮想メモリ領域です。物理メモリ(RAM)が不足した場合に一時的にディスクをメモリ代わりに使用します。物理メモリが十分でない場合や、高負荷な作業を行う場合には、swap領域が重要です。
サイズの目安:
物理メモリが4GB以下:物理メモリの2倍のサイズを推奨
物理メモリが4GB以上:物理メモリと同じか、少し少なめのサイズ
物理メモリが16GB以上:4GB〜8GB程度で十分
1.3 /boot パーティション
役割: システムの起動に必要なカーネルやブートローダーが保存されるパーティションです。特に、LVM(論理ボリュームマネージャー)やソフトウェアRAIDを使用する場合、/bootは専用のパーティションとして分ける必要があります。
サイズの目安: 500MB〜1GB程度
2.推奨される追加パーティション
運用環境や用途に応じて、ルートパーティションとは別に、特定のディレクトリを独立したパーティションに分けることが推奨される場合があります。これにより、ディスクの管理がしやすくなり、特定の用途に応じたパフォーマンスやセキュリティの向上が期待できます。
2.1 /home パーティション
役割: ユーザーの個人ファイル(ドキュメント、設定ファイルなど)が格納されます。システムを再インストールする際にもユーザーデータを保護するため、/homeを別パーティションにしておくと便利です。
サイズの目安: 残りのディスク容量全て。システムの用途によっては数百GB〜数TBが必要な場合もあります。
2.2 /var パーティション
役割: ログファイルやキャッシュ、一時データ、メールキューなど、頻繁に変更されるデータが保存されます。ログファイルが肥大化する可能性があるため、ディスク使用量の制御が容易になるように、独立したパーティションにすることが推奨されます。
サイズの目安: 2GB〜20GB。特にログが大量に生成されるサーバー(Webサーバーやデータベースサーバーなど)では、より大きな容量が必要です。
2.3 /tmp パーティション
役割: 一時ファイルが保存されます。多くのアプリケーションが/tmpを使用するため、/tmpが肥大化しないように監視が必要です。独立したパーティションにすると、容量の制御がしやすくなります。
サイズの目安: 1GB〜5GB
2.4 /srv パーティション
役割: サーバーが提供するデータ(WebサーバーのドキュメントルートやFTPデータなど)が格納されるディレクトリです。Webサーバーなどの用途で使う場合に別パーティションに分けることが多いです。
サイズの目安: サーバーの運用に応じて設定。大規模なWebアプリケーションでは数百GB〜1TB以上が必要な場合もあります。
3. ディスクのレイアウト例
小規模なデスクトップ環境(シンプルなレイアウト
/ : 50GB
swap : 4GB
/home : 残り全て
サーバー環境(ログやデータの管理を考慮したレイアウト)
パーティションサイズ
/ :30GB
Swap :8GB
/boot :1GB
/home :100GB
/var :20GB
/tmp :5GB
/srv :残り全て
LVM(論理ボリューム)を使用した柔軟なパーティション管理
PV (Physical Volume) : /dev/sda (500GB)
VG (Volume Group) : vg_main
Logical Volumes:
/ : 40GB (lv_root)
/home : 200GB (lv_home)
/var : 30GB (lv_var)
/tmp : 10GB (lv_tmp)
swap : 8GB (lv_swap)
残り : 空き容量として残し、将来的に拡張可能
4. ディスクフォーマット
各パーティションのファイルシステムを選ぶことも重要です。一般的なファイルシステムとして、以下がよく使われます。
ext4:
現在のLinuxで最も標準的なファイルシステム。パフォーマンスが良く、信頼性も高い。
XFS:
大規模なデータストレージ向けに設計されたファイルシステム。データベースサーバーや大容量ストレージに適している。
Btrfs:
スナップショットやチェックサムによるデータ整合性機能を持つ次世代ファイルシステム。
5. ディスク構成の選択肢
1つのパーティションですべてを管理
小規模なシステムや初学者向け。管理は簡単だが、ディスク使用量が偏る可能性がある。
複数のパーティションで分割
より複雑なシステム運用向け。各パーティションに異なるファイルシステムを設定でき、システムの安定性と管理性が向上。
LVMを使用
柔軟なディスク管理が可能。システムの拡張性や運用の効率化に優れる。
ファイルシステム
/
/bin ユーザーが使う実行ファイル
/sbin root が使うコマンド
/lib カーネルのライブラリ
/root root のホームディレクトリ
/media OSで自動的にマウントしてくれるポイントとして主に使用。
/opt 追加で選択可能なアプリケーションパッケージがインストールされるディレクトリ。
/root root のホームディレクトリ
/srv サービスに関するデータを格納する
/var システム運用後削除されるファイル
/tmp テンポラリのファイルを置く
/home ユーザー毎のホームディレクトリ
/boot システム起動用のファイル
/etc 各種設定ファイル
/lost+foundファイルシステムから破損したデータビットを削除し、lost + foundフォルダーに配置します。
/mnt 取り外し可能な装置に対してファイルシステムを臨時に接続するディレクトリ。
/proc カーネル関連情報が保存されるディレクトリ
/run 主に実行中のプロセスに関する情報が格納された「pidファイル」が存在します。
/snap メモリのスワップデータを保存するディレクトリ
/dev 周辺機器の情報のディレクトリ
/sys Linuxカーネルに関する情報があるディレクトリ。
/usr ユーザーアプリーションがインストールされるディレクトリ
1./bin (Binaries)
役割: 基本的なコマンドが配置されています。/bin に含まれるコマンドは、システムの起動やメンテナンスなど、すべてのユーザーが必要とするものです。例えば、ls(ファイル一覧)、cp(ファイルコピー)、mv(ファイル移動)、cat(ファイル表示)などがあります。
使用例: /bin/ls, /bin/cp
2. /boot
役割: システムの起動に必要なファイル(カーネルやブートローダーなど)が格納されています。Linuxカーネルのイメージや、grubといったブートローダー関連のファイルが含まれます。
使用例: カーネルイメージ(vmlinuz)やブート設定ファイル(grub.cfg)が保存される。
3. /dev (Devices)
役割: デバイスファイルが格納されています。これは、Linuxではデバイス(ハードウェア)もファイルとして扱うため、キーボードやディスクドライブ、プリンタなどのデバイスが/devにファイルとして表示されます。たとえば、ハードディスクのパーティションは/dev/sda1のように表示されます。
使用例: /dev/sda, /dev/null, /dev/tty
4./etc
役割: システム全体の設定ファイルが格納される場所です。ユーザー管理情報(/etc/passwd)やサービスの設定ファイル(/etc/ssh/sshd_configなど)がここにあります。
使用例: /etc/passwd, /etc/fstab, /etc/hostname
5. /home
役割: 各ユーザーのホームディレクトリが格納されます。各ユーザーが個別に持つファイルや設定がこのディレクトリ内に保存されます。例えば、ユーザーaliceのホームディレクトリは/home/aliceとなります。
使用例: /home/alice, /home/bob
6. /lib (Libraries)
役割: 基本的なライブラリ(共有ライブラリやモジュール)が配置されています。特に/binや/sbinのプログラムが使用するライブラリが格納されています。32ビットシステムの場合は/lib、64ビットシステムでは/lib64が存在することが一般的です。
使用例: /lib/libc.so.6, /lib/modules
7./media
役割: 一時的に接続された外部デバイス(USBメモリやCD/DVDなど)がマウントされる場所です。デバイスが自動的にマウントされると、このディレクトリ内にサブディレクトリが作成され、アクセスできるようになります。
使用例: /media/usb, /media/cdrom
8. /mnt
役割: 一時的にファイルシステムをマウントするために使用されます。/mediaとは異なり、ユーザーが手動でファイルシステムをマウントする場合に利用されることが多いです。
使用例: /mnt/usb, /mnt/external_disk
9. /opt
役割: 追加のサードパーティアプリケーションがインストールされるディレクトリです。システム標準のパッケージとは異なる、手動でインストールしたアプリケーションがここに配置されます。
使用例: /opt/google, /opt/vmware
10./proc (Process)
役割: システムのプロセスやカーネルに関する情報が仮想的に格納されている場所です。実際のファイルが存在するわけではなく、カーネルによって動的に作成されます。/procはプロセスやシステムの状態をリアルタイムに確認するために使用されます。
使用例: /proc/cpuinfo, /proc/meminfo
11. /root
役割: スーパーユーザー(rootユーザー)のホームディレクトリです。通常のユーザーのホームディレクトリは/homeにありますが、rootユーザーだけは特別に/rootを持ちます。
使用例: /root/.bashrc
12. /run
役割: システムの実行時に生成される一時的なファイルが保存される場所です。システムの起動時に作成され、プロセスのIDファイルやソケットファイルが含まれることが多いです。
使用例: /run/sshd.pid
13. /sbin (System Binaries)
役割: システム管理者(rootユーザー)用のシステム管理コマンドが配置されています。/binとは異なり、通常のユーザーが使用することは想定されていません。例えば、fsck(ファイルシステムのチェック)、reboot(システム再起動)などが含まれます。
使用例: /sbin/reboot, /sbin/ifconfig
14. /srv
役割: サーバーが提供するデータが格納されるディレクトリです。たとえば、WebサーバーやFTPサーバーが提供するデータはこのディレクトリに置かれることが多いです。
使用例: /srv/www, /srv/ftp
15. /sys
役割: システムデバイスやカーネル関連の情報が格納される仮想ファイルシステムです。/procに似ていますが、/sysは特にデバイスとカーネルとのやり取りに関する情報を提供します。
使用例: /sys/class/net, /sys/block/sda
16./tmp
役割: 一時ファイルが格納されるディレクトリです。アプリケーションが一時的に使用するデータを保存するために使用されますが、システムの再起動時には削除されることが一般的です。
使用例: /tmp/tmpfile.txt
17. /usr (User Binaries)
役割: ユーザーが利用する一般的なコマンドやライブラリ、ドキュメントが格納されています。/usr/binには多数のアプリケーションが含まれ、/usr/libにはアプリケーションが利用するライブラリが配置されます。また、/usr/shareにはドキュメントや共通リソースが格納されます。
使用例: /usr/bin/vim, /usr/share/doc
18. /var (Variable)
役割: ログファイルや、メールキュー、キャッシュなど、頻繁に内容が変更されるファイルが格納されるディレクトリです。特に、/var/logにはシステムのログファイルが含まれ、システム管理者にとって重要です。
使用例: /var/log/syslog, /var/spool