FHS (File Hierarchy Standard)
基本フォルダ
フォルダサイズが肥大化するディレクトリについては、独立したパーティションに分割することを検討することが推奨される。
フォルダ名 | 説明 | 独立パーティション |
---|---|---|
/ | ファイルシステムの頂点にあたるディレクトリ | – |
/bin | 一般ユーザー、管理者が使用するコマンドを配置 | × |
/dev | デバイスファイルを配置。起動時に接続されているデバイスを作成 | × |
/etc | システム管理用の設定ファイルや各種ソフトウェアの設定ファイルを配置 | × |
/lib | /bin や /sbin に置かれたコマンドやプログラムが利用する共有ライブラリを配置 | × |
/lib64 | 64 bit 用の共有ライブラリを配置 | × |
/media | CD や DVD などのデータが配置 | × |
/opt | Linux インストール後、追加でインストールしたパッケージが配置 | ◯ |
/proc | カーネルやプロセスが保持する情報を配置する仮想ファイル | – |
/root | root ユーザーのホームディレクトリ | – |
/sbin | 主にシステム管理者が使用するコマンドを配置 | × |
/tmp | アプリやユーザーが利用する一時ファイルを配置 | ◯ |
/var | システム運用中にサイズが変化するファイルを配置 | ◯ |
/var/log | システムやアプリケーションのログファイルを配置 | – |
/boot | システム起動時に必要なブートローダーやカーネルイメージを配置 | ◯ |
/usr | ユーザーが共有するデータを配置、ユーティリティ、ライブラリ、コマンド | ◯ |
/usr/bin | 一般ユーザー、管理者が使用するコマンドを配置 | – |
/usr/lib | 各コマンドが利用するライブラリ | – |
/usr/local | Linux インストール後、追加でインストールしたパッケージ | – |
/usr/sbin | システム管理者が実行するコマンド | – |
/home | ユーザーのホームディレクトリ | ◯ |
LVM (Logical Volume Manage)
ストレージデバイスを論理的に扱う仕組み。
略称 | 名称 | 説明 |
---|---|---|
PV | 物理ボリューム | PE の集合を保持するボリューム。ディスクパーティション、ディスク、ファイル、メタデバイスから初期化する |
PE | 物理エクステント | LV に割り当てられる単位。PE サイズは VG 作成時に決める |
VG | ボリュームグループ | PV と LV を含む。PV の集合から任意のサイズの LV を作成できる |
LV | 論理ボリューム | VG から作成される、パーティションの制約を受けないボリューム。LV 常にファイルシステムを作成する |
pvcreate コマンド
ハードディスクのパーティションを作成する。
論理ボリュームのスナップショット
実行時の元データを取得し、その後は増分データのみ取得する。元データへの参照のみ行う。
主なログファイル
- /var/log/messages:主要なシステムログが格納される
- /var/log/dmesg:起動時にカーネウrより出力されるメッセージログ。ハードウェアや起動シーケンスを含む
- /var/log/cron:スケジューリングサービスを提供する cron の履歴情報
デバイスファイル
ポートの若番号から a, b, c とサフィックスがつく。 ディスク内のパーティション順に 1 から番号が割り当てられる。 SATA ポートや SCSI エミュレーションは lsscsi
, lshw
で表示できる。
MBR (Master Boot Record)
- 基本パーティション:1 つ以上作成、4 つまで作れる
- 拡張パーティション:基本のうち 1 つだけ可能、論理パーティションを作れる
- 論理パーティション:拡張パーティション中に作るパーティション。番号は 5 以降で採番される
ハードディスクのファイルシステム作成手順
- ハードディスクをマシンに接続する
- 追加したハーディスクのデバイスファイルが作成されていることを確認する
- パーティション分けの検討
- ハードディスクにパーティションを作成する (fdisk)
- パーティションにファイルシステムを作成する (mkfs, mke2fs)
- ファイルシステムをディレクトリツリーにマウントする (mount)
fdisk コマンド
パーティションの作成、削除、変更、表示が可能。
fdisk [オプション] デバイスファイル名
- -l:作成済みパーティションテーブルを表示
- -d:領域を削除
- -m:利用可能なメニューの表示
- -n:新規パーティションの作成
- -p:パーティションテーブルの表示
- -q:変更をせずに終了
- -t:パーティションのタイプを変更
- -w:テーブルをディスクに書き込み、終了
parted コマンド
パーティションテーブルを作成したり、操作する。
parted [オプション] デバイス名
GPT (GUID Partition Table)
EFI の機能の 1 つ。
gdisk コマンド
GPT 用の fdisk と同等のコマンド。
gdisk [オプション] デバイス名
gparted コマンド
GPT 用の parted と同等のコマンド。
ファイルシステム
df コマンド
ファイルシステムの使用状況を表示する。
df [オプション] [デバイスファイル名 | ディレクトリ名]
- -k:キロバイト単位で表示する
- -h:容量に合わせた適切な単位で表示する
- -i:i ノードの使用状況をリスト表示する
表示情報の説明
- FileSystem:ファイルシステム
- iNodes:総 i ノード数
- Iused:使用済み i ノード数
- IFree:使用可能 i ノード数
- IUse%:使用率
- マウント位置:マウント先
du コマンド
ファイル、ディレクトリの使用量を表示する。
du [オプション] [ディレクトリ名 | ファイル名]
- -a:ディレクトリだけでなく、すべてのファイルについて容量を表示する
- -h:容量に合わせた適切な単位で表示する
- -s:指定されたファイル、ディレクトリの使用量の総和を表示する
- -S:サブディレクトリの使用量を含めずに、個々のディレクトリ使用量を表示する
ファイルシステムの種類
ファイルシステム | 最大ファイルサイズ | ファイルシステムサイズ | 特徴 |
---|---|---|---|
ext2 | 2 TB | 32 TB | 可変ブロックサイズ、作成/編集/追記時刻を記録、i ノード管理、ブロックグループ |
ext3 | 2 TB | 32 TB | 可変ブロックサイズ、作成/編集/追記時刻を記録、i ノード管理、ブロックグループ |
ext4 | 16 TB | 1 EB | extent の採用、ナノ秒単位のタイムスタンプ、デフラグ機能 |
ファイルシステム | 特徴 |
---|---|
reiserfs | ジャーナル機能を持つ。ディスクの使用効率がよくクラッシュから高速な回復機能がある。i ノードの動的割り当てをサポート |
xfs | ジャーナル機能を持つ。巨大なファイルを容易に扱える。i ノードの動的割り当てをサポート |
jfs | ジャーナル機能を持つ。巨大なファイルを容易に扱える。i ノードの動的割り当てをサポート |
vfat | Windows と Linux の両方で読み書き可能なファイルシステム |
exfat | vfat の拡張。最大ファイルサイズ (16 EiB) 対応 |
btrfs | B-tree の木構造、データ領域割り当てにエクステントを採用。複数ディスクパーティションから 1 つのファイルシステムを構成できる |
NTFS | Windows NT 系標準ファイルシステム |
ジャーナル機能
ファイルシステムのデータ更新を記録する機能。 不意な電源弾が起きても修正できる。
i ノード管理
メタデータを格納するファイルシステム構成の 1 つ。 ファイル詳細情報やデータが格納されているポインタが格納される。
- ファイル
- ファイル名
- i ノード
- データブロック
mkfs コマンド
ファイルシステムを作成する。
mkfs -t ファイルシステムタイプ デバイスファイル名
- -t:ファイルシステムタイプを指定する。指定しない時は ext2 となる
- -j:ジャーナル機能を有効化する。指定するとデフォルトが ext3 となる
mke2fs コマンド
ファイルシステムを作成する。
mke2fs [オプション] デバイスファイル名
- -j:ジャーナル機能を有効化する。指定するとデフォルトが ext3 となる。
xfs 関連コマンド
mkfs -t xfs
:ファイルシステムを作成するxfs_info
:指定したファイルシステムに関する情報を表示するxfs_repair
:xfs ファイルシステムの修復をする。調査のみする場合は-n
オプションを付与するxfs_fsr
:マウントしてる xfs ファイルシステムのデフラグを行うxfs_db
:xfs ファイルシステムのデバッグを行う
予約ブロック
スーパーユーザーしか書き込めない予約領域。 デフォルトではディスク全体の 5% のサイズ。
mkswap コマンド
デバイス上またはファイル上に確保されたスワップ領域の初期化をする。
mkswap [オプション] [デバイスファイル名 | ファイル名]
- -C:不良ブロックのチェックを行う
- -L:ラベルを指定し、そのラベルで swapon できるようにする
- -v0:古い形式のスワップ領域を初期化する
- -v1:新しい形式のスワップ領域を初期化する
- -m:予約ブロックの比率を指定する
swapon コマンド
ファイルのスワップ領域を有効化する。
swapon [オプション] [デバイスファイル名 | ファイル名]
- -a:/etc/fstab 内で swap マークが付いているデバイスをすべて有効化する
- -L:指定したラベルのパーティションを有効化する
- -s:スワップの使用状況をデバイスごとに表示する
swapoff コマンド
ファイルのスワップ領域を無効化する。
swapoff [オプション] [デバイスファイル名 | ファイル名]
- -a:/proc/swaps または /etc/fstab 内でスワップデバイスやファイルのスワップ領域を無効化する
tune2fs コマンド
ext2、ext3、ext4 のパラメータを適切な値に変更する。
tune2fs [オプション] デバイスファイル名
- -c 回数:マウント数が指定回数を超えると、次回ブート時にファイルシステムをチェックする
- -i [d|m|w]:ファイルシステムをチェックする最大時間間隔を設定する
- -j:ext3 ジャーナルをファイルシステムに追加する
- -l:ファイルシステムのスーパーブロックの内容を表示する
- -L:ボリュームラベルを設定する
- -m 予約ブロック比率:予約ブロックの比率を % で指定する
- -o 追加機能:追加する機能を指定する。
^
をつけると機能を削除する
dumpe2fs コマンド
ファイルシステムの詳細情報を表示する。
dumpe2fs [オプション] デバイスファイル名
- -b:不良ブロックとして扱われているブロックを表示する
- -h:スーポーブロックの情報だけを表示する
fsck コマンド
ファイルシステムの不整合をチェックし、必要であれば修正する。 fsck コマンド実行時はファイルシステムをアンマウントする。
fsck [オプション] [デバイスファイル名]
- -t:チェックするファイルシステムのタイプを指定する
- -s:fsck の動作を逐次的にする
- -A:/etc/fstab に記載されているファイルシステムをすべてチェックする
e2fsck コマンド
fsck と同様に ext 系のチェックをする。
e2fsck [オプション] デバイスファイル名
- -p:軽微なエラーは尋ねることなく自動修正する
- -a:軽微なエラーは尋ねることなく自動修正する
- -n:fsck の質問についてすべて no と答える
- -y:fsck の質問についてすべて yes と答える
- -r:検知したエラーに対して yes/no を質問することで対話的に修復する
debugfs コマンド
ext2、ext3、ext4 の対話的デバッガツール。
debugfs [オプション] [デバイスファイル名]
- -w:ファイルシステムを読み書き可能なモードでオープンする
- -f コマンドファイル:コマンドファイルからコマンドを読み込み、実行させる
- stat filespec:指定した i ノードの構造体の内容を表示する
- dump [-p] filespec out_file:指定した i ノードと out_file で指定したファイルを関連づける。
-p
オプションで所有者、グループ、パーミッションを filespec と同じにする - quit:debugfs を終了する
mount コマンド
ファイルシステムをマウントする。
mount [オプション] [デバイスファイル名] [マウントポイント]
- -a:/etc/fstab ファイルに記載されているファイルシステムをすべてマウントする
- -r:ファイルシステムを読み取り専用でマウントする
- -w:ファイルシステムを読み書き可能なモードでマウントする
- -t:ファイルシステムタイプを指定してマウントする
- -o:マウントオプションを指定する
- –bind:サブツリーをどこか他の場所に再マウントする
ブロックデバイス
利用可能なブロックデバイスの一覧を表示する。
lsblk コマンド
利用可能なブロックデバイスの一覧を表示する。
blkid コマンド
利用可能なブロックデバイスに関する情報を表示する。
umount コマンド
特定のファイルシステムをアンマウントする。 使用中でなければアンマウント可能。
umount [オプション] [マウントポイント | デバイスファイル名]
- -a:/etc/fstab ファイルに記載されているファイルシステムをすべてアンマウントする
- -t:指定したタイプのファイルシステムのみアンマウントする
ファイルシステム関連のファイル
- /etc/fstab:デバイスとマウントポイントファイルシステムを記載
- /etc/cron:定期的に実行させたいプログラムを記載
/etc/fstab の内容
- デバイスファイル名 (UUID, LABEL)
- マウントポイント
- ファイルシステムの種類
- マウントオプション
- バックアップの指定
- ファイルシステムのチェック
mount のオプション
オプション | 説明 |
---|---|
async | ファイルシステムの書き込みを非同期で行う |
sync | ファイルシステムの書き込みを同期で行う |
auto | -a が指定されたときにマウントされる |
noauto | -a が指定されたときにマウントされない |
dev | ファイルシステムに格納されたデバイスファイルを利用可能にする |
exec | ファイルシステムに格納されたバイナリファイルを実行可能にする |
noexec | ファイルシステムに格納されたバイナリファイルの実行を不可にする |
suid | SUID および SGID の設定を有効にする |
nosuid | SUID および SGID の設定を無効にする |
ro | ファイルシステムを読み取り専用でマウントする |
rw | ファイルシステムを読み書き可能なモードでマウントする |
user | 一般ユーザーにマウントを許可する。マウントしたユーザーのみ可能 |
users | 一般ユーザーにマウントを許可する。マウントしたユーザー以外でも可能 |
nousers | 一般ユーザーのマウントを禁止する |
owner | デバイスファイルの所有者だけにマウント操作を許可する |
usrquota | ユーザーに対してディスクのリソース割り当てを行う |
grpquota | グループに対してディスクのリソース割り当てを行う |
defaults | rw, suid, dev, exc, auto, nouser, async で設定を適用する |
コメント