LPIC101_4 デバイス、Linuxファイルシステム、FHS(主題104) よくわからないところをAIに聞いてみた

過去の記事はこちら。
システムアーキテクチャ(主題101)

https://qiita.com/Riba_Quita/items/baae59480fdb32439d62

Linuxのインストールとパッケージ管理(主題102)

https://qiita.com/Riba_Quita/items/aaf2ac83b8bb95064d10

GNUとUnixコマンド

https://qiita.com/Riba_Quita/items/5f97068666c71caf2df2

# デバイス、Linuxファイルシステム、FHS(主題104)
### パーティションとファイルシステムの作成
#### fdisk（Fixed Disk）
「MBR（Master Boot Record）」→ 内蔵型の固定ディスク（Fixed Disk）に内蔵されているため

#### fdisk コマンド
- `fdisk -l /dev/sda` → `-l` は指定したデバイスのパーティションテーブルを表示
- `m` → メニュー（コマンドのヘルプを表示）
- `l` → リスト（利用可能なパーティションタイプを一覧表示）
- `n` → 新規パーティション作成
- `d` → 既存のパーティションを削除
- `p` → 現在のパーティションテーブルを表示
- `t` → 既存のパーティションのタイプ（システムID）を変更
- `w` → 変更をディスクに書き込み、プログラムを終了
- `q` → 変更を保存せずにプログラムを終了

### gdisk（GPT fdisk）
「GPT fdisk」→ GPT（GUID Partition Table）の管理ツール

### mkfs（Make File System）
様々なファイルシステムを作成可能

- `mke2fs` → `ext2, ext3, ext4` のファイルシステムを作成
- `-t` → 「type（タイプ）」の指定
- `-j` → ジャーナリング機能を追加した `ext3` ファイルシステムを作成

### MBR（Master Boot Record）とGPT（GUID Partition Table）の違い
- **MBR**: パーティション番号が一意に振り分けられていないため、複数のシステム間でのパーティション調整に手間がかかる
- **GPT**: GUID（Globally Unique Identifier）を使用し、パーティション番号が一意に振り分けられる

### parted（Partition Editor）
パーティション操作ツールで、MBR（Master Boot Record）とGPT（GUID Partition Table）の両方のパーティションテーブル形式をサポート

- `-s` → 非対話モードで実行
- `mklabel` → パーティションテーブルを設定するコマンド（例: MBR、GPT）
- `q` → 終了

### ファイルシステム
- **ext（Extended File System）**: Linuxの初期のファイルシステムで、`ext2, ext3, ext4` がある。特に `ext4` は広く使われている
- **XFS（Extent File System）**: 大規模データストレージに適したファイルシステム
- **JFS（Journaled File System）**: IBM開発のジャーナリング機能を持つファイルシステム
- **Btrfs（B-tree File System）**: 高機能なLinuxの新しいファイルシステムで、サブボリュームを持つ

### パーティションタイプ
- **FAT（File Allocation Table）**: 初期のMicrosoftによるファイルシステム
- **exFAT（Extended File Allocation Table）**: 異なるOS間での互換性を持つ
- **Linuxパーティション (83)**: `ext2, ext3, ext4` 用
- **Linux LVM (8e)**: Logical Volume Manager 用
- **Linux swap (82)**: スワップ用パーティション

### 動的 inode（Index Node）
ファイルシステムが必要に応じて `inode` を動的に割り当てる

### ファイルシステムの整合性の維持
- **du（Disk Usage）**: 指定したファイルやディレクトリのディスク使用量を表示
  - `-S`: サブディレクトリのサイズを含まず、指定したディレクトリ自体のサイズを表示
  - `-c`: 合計容量を表示
  - `-s`: ディレクトリ全体のサイズを表示
  - `-h`: 人間が読みやすい単位（KB、MB、GBなど）で表示

### ファイルシステムのパラメータ調整
- `tune2fs` → `ext2, ext3, ext4` ファイルシステムのパラメーターを調整
  - `-L` → ファイルシステムの名前変更
- `df（Disk Free）` → ファイルシステムの利用状況や空き容量を確認
- `xfs_fsr（XFS File System Reorganizer）` → XFSファイルシステムのデフラグ
  - 断片化（フラグメンテーション）を解消し、アクセス速度を向上
- `fsck（File System Consistency Check）` → ファイルシステムの整合性チェック
  - `-r`: 対話的に修復
  - `-N`: 実際には修正せず、行われる操作を表示
- `xfs_db（XFS Debugger）` → XFSファイルシステムのデバッグツール

### ファイルシステムのマウントとアンマウント
- `/etc/fstab（File Systems Table）` → システム起動時に自動的にマウントされるファイルシステム情報
- `/etc/mtab（Mounted File Systems）` → 現在マウントされているファイルシステム情報
- `/proc/mounts` → システム内部の全てのマウント情報

### dump フラグ（バックアップ設定）
- `dump` コマンドによるバックアップ対象かどうかを指定
  - `1`: バックアップ対象
  - `0`: バックアップ対象外

### システムファイルの検索と適切なファイル配置
- `which` → コマンドの実行ファイルを検索
- `type` → コマンドの種類（内部コマンドか外部コマンドか）を表示
- `whereis` → 実行ファイル・ソース・マニュアルの場所を検索

### FHS（Filesystem Hierarchy Standard）
LinuxやUnix系OSでディレクトリ構成を統一するための標準規格

- `/bin（Binaries）`: 基本コマンド
- `/etc（Etcetera）`: 設定ファイル
- `/home（Home Directories）`: ユーザーのホームディレクトリ

### その他のコマンド
- `pgrep（Process Grep）` → 指定したユーザーのプロセスIDのみを表示
- `s` → 実行可能属性やセットユーザーID（setuid）などのパーミッションを指定
- `t` → "sticky" ビット（粘着ビット）を指定