Open5
ファイル・パーティション周りメモ

パーティション
- Linuxでは一つの物理ドライブ(/dev/hda)を複数の論理ディスクに分割して扱うことができる
- このような論理的なディスクのことをパーティションという
- 通常は、一つの物理ディスクに対して4つのパーティションを作成することができ、これを「プライマリパーティション」という
- プライマリパーティションの一つを「拡張パーティション」として使い、拡張パーティションをさらに分割することができる、これを論理パーティションという
パーティション形式
MBR形式(Master Boot Record)
- 基本パーティション数は4
- それ以上の数に分割するためには、基本パーティションの一つを拡張パーティションとして割り当て、
そのパーティションをさらに論理パーティション分割する - これらのパーティションに関する操作には
fdisk
コマンドを使用する
GPT形式(GUID Partition Table)
- MBRより新しい方式
- 基本パーティションを128個作成することができる
- 最大ハードディスク容量は9.4ZB
- GPT形式のHDDからOSを起動する場合はシステムファームウェアがUFFIである必要がある
-
fdisk
でなくgdisk
コマンドを使用する
パーティション作成コマンド
fdiskコマンド(format disk)
- MBR形式のハードディスクに対してパーティションの作成、削除変更、および情報開示を行える
- 類似の
parted
コマンドのほうがより優れたツールになっている
gdiskコマンド
-
GPT形式のハードディスクに対してパーティションの作成、削除変更、および情報開示を行え
る
partedコマンド
- MBR形式、GPT形式をサポートするパーティション操作の対話型ツール
- 以下の手順を踏む
- パーティションテーブルの指定
-mklabel
コマンドで、パーティションテーブルの方式を指定、未指定の場合はMBR形式 - パーティションの作成
-mkpart
コマンドで、パーティションを作成-
print
コマンドで作成されたパーティション情報を表示 -
quit
コマンドで終了する
-
- パーティションテーブルの指定

ファイルシステム
IDEハードディスクのデバイスファイル
SCSIハードディスクのデバイスファイル
- /dev/sda1
ファイルシステムの種類
ファイルシステム | 説明 |
---|---|
ext2 | 以前のLinuxで標準的に使用されていた規格 |
ext3 | ext2の後継、ジャーナリングファイルシステム |
ext4 | ext3の後継、ジャーナリングファイルシステム |
XFS | SGIが開発、ジャーナリングファイルシステム、動的inode |
JFS | IBMが開発、ジャーナリングファイルシステム、動的inode |
inode数の制限
制限あり | 制限なし |
---|---|
ext2, ext3, ext4 | XFS, JFS |
exFAT(Extended FAT)
- マイクロソフトが開発したプロプライエタリなファイルシステム
- USBメモリのようなフラッシュドライブ向けのファイルシステム -> 異なるOS間でのデータ共有に使いやすい
- 従来のFATファイルシステムとの互換性はない
- LinuxでのexFATの利用にはFUSE(Filesystem in Userspace)が必要
Btrfs(B-tree File System)
- 論理ボリュームマネージャによって複数デバイスを論理的に一つのデバイスとして扱う(マルチデバイス対応)
- ディレクトリの一部を「サブボリューム」として個別のファイルシステムのように扱える
- ファイルシステムが自動でデータを圧縮できるようになっている
mkfsコマンド
- ファイルシステムの作成コマンド
-
-t
オプションでファイルシステムを指定
$ mkfs -t ext4 /dev/sda1
mke2fs
- ファイルシステムの作成コマンド, ただし作成できるのはext2, ext3, ext4に限られる
-
-j
オプションでext3ファイルシステムを作成

ファイル修復
- システム障害によりファイルシステムに障害が発生した場合、ファイルシステムの整合性チェックと障害箇所の修復を試みることができる
- 大量かつ高頻度で読み書きを行うと、ファイルシステムに不整合が起きる可能性があるので起動時に
/etc/fstab
に定義されているチェック対象のファイルシステムに対し、fsck
コマンドを実行する
ファイルチェックコマンド
- XFSはシリコングラフィックス社が開発したジャーナリングシステム
- RHEL7の標準ファイルシステムとして採用されている
コマンド | 説明 |
---|---|
mkfs.xfs | XFSファイルシステムを作成する |
xfs_info | ファイルシステムの情報を表示する |
xfs_db | ファイルシステムのデバッグを行う |
xfs_check | ファイルシステムをチェックする |
xfs_fsr | ファイルシステムのデフラグを行う |
xfs_repair | ファイルシステムを検査/修復する |
fsckコマンド(filysystem check)
-
-t
オプションでファイルシステムを指定 -
-a
オプションで自動的に修復 -
-r
オプションで対話的に修復 -
-N
で実際には実行せず、実行する内容を表示
$ fsck -t ext3 -a /dev/sda1
e2fsckコマンド(ext2 filesystem check)
- ext2/ext3/ext4ファイルシステムの整合性をチェックし、修復する
- マウントされているファイルシステムに対してこのコマンドは使うのは安全でない
-
-p
オプションですべての不良ブロックを自動的に修復 -
-y
オプションで全ての問い合わせにYesを解凍 -
-n
オプションで全ての問い合わせにNoを解凍
tune2fsコマンド(tune ext2 filesystem)
- ext2/ext3/ext4ファイルシステムのパラメータを設定するコマンド
-
-j
オプションでファイルシステムの変換もできる(jはjournalの略、ext3ファイルシステムはext2にはないジャーナリングシステムがあるから) -
-L ラベル名
でファイルシステムにボリュームラベルを設定 -
-i
オプションでファイルシステムのチェックを行うまでの最大時間感覚を設定 -
-c
オプションでファイルシステムチェックを行うまでの最大マウント回数を指定
ディスクの利用状況確認コマンド
duコマンド(DiskUsed)
- ファイルやディレクトリが占めている容量を確認する
-
-s
オプション(--summarize)は合計容量を表示 -
-k
オプションでキロバイト単位で表示 -
-m
オプションでマガバイト単位で表示
合計容量を表示
$ du -s
16 .
-
-c, --total
オプションで合計容量も同時に表示
合計容量も同時に表示
du -c
0 ./testdir
16 .
16 total
-
-a
オプションでディレクトリ以外にファイルについても表示
ファイルについても表示
# du -a
8 ./test1.txt
0 ./testdir
8 ./test.txt
16 .
-
-S, --separate-dirs
オプションで実際に引数で指定された対象による使用量のみ表示、サブディレクトリは含めない
dfコマンド(DiskFree)
- ファイルシステムん空き容量を確認するコマンド
-
-h
オプションで分かりやすい単位を付加して表示(hはhuman readableの略)
$ df -h /dev/sda1
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/sda1 1014M 266M 749M 27% /boot

マウント
- デバイスとその上に構築されているファイルシステムをOSに認識させ、指定のディレクトリを割り当て、そのディレクトリ以下のパスでファイルシステム内にアクセスできるようにすること
mtabとfstabの違い
- mtab : 現在マウントされているデバイスの一覧
- fstab : デフォルトでマウントされるデバイスを記述, 自動マウントしたいファイルシステムなどは予め記述しておく
現在マウントされているファイルシステムを確認するコマンド
- mount
- cat /proc/mounts
- cat /proc/self/mounts
- cat /etc/mtab
mountコマンド
- ファイルシステムをマウントするコマンド
- option無しだと、現在マウントされているファイルシステム一覧を表示
-
-a
オプションで/etc/mtab
に記載されているファイルシステムをすべてマウント - 現在のマウント情報は
/etc/mtab
ファイルに格納 -
--bind <dir1> <dir2>
オプションでdir1をdir2にマウントする - 例えば以下のように
/foo
を/bar
にマウントすることによって、/bar
には/foo
の中身がバインドされる -
/etc/fstab
に設定がない場合は、mount デバイス名 マウントポイント
を指定する必要がある - 既に
/etc/fstab
ファイルにエントリがある場合はmount デバイス名
マウントポイント
のどちらか片方を指定すれば
片方は/etc/fstab
が参照され自動的に決定される
$ mount --bind /foo /bar
fstabでの記述
/foo /bar auto bind 0 0
umountコマンド
- ファイルシステムのアンマウントするコマンド
-
-a
オプションで/etc/mtab
に記載されているファイルシステムをすべてアンマウント -
-t
オプションで指定した種類のファイルシステムをアンマウント - アンマウントしようとしているファイルシステムが操作中や、プロセスがある場合、
device is busy
が出る
/etc/fstab
ファイル
- ファイルシステムの情報は
/etc/fstab
に記述されている - 自動マウントしたいファイルシステムなどは予め記述しておく
- 以下の6つの項目がある
- デバイスファイル名 : デバイスファイル名、ラベル名、UUIDで指定
- マウントポイント : マウント先のディレクトリ
- ファイルシステムの種類 : ext2, xfsなど
- マウントオプション : 必要に応じてオプションを指定
- dumpフラグ : 1であればdumpコマンドによるバックアップ対象
- fsckフラグ: Linux起動時に自動で行われるファイルシステムチェック
マウントオプション | 説明 |
---|---|
async | 非同期で入出力を行う |
auto | mount -a コマンドでマウント |
noauto | mount -a コマンドでマウントしない |
exec | バイナリ実行を許可 |
noexec | バイナリ実行を許可しない |
ro | 読み取り専用でマウント |
rw | 読み書き許可してマウント |
user | 一般ユーザでもマウント可能 |
/ect/fstab
UUID=ece69863-e3b1-442b-bbac-a9c2191ede80 /boot xfs defaults 0 0
デバイスのUUIDを確認するコマンド
blkidコマンド
- ブロックデバイスの情報を表示するコマンド
- デバイスのUUIDを確認できる
$ blkid
/dev/sda1: UUID="2d3bc8db-c107-4048-b1d6-bb1084fd2ad4" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="8504f71b-01"
/dev/sda2: UUID="mjNUGL-qPyt-azGR-CPpz-RSdW-i68A-cY8ped" TYPE="LVM2_member" PARTUUID="8504f71b-02"
/dev/mapper/rl-root: UUID="c2c92286-b6a7-45e6-9779-a1483ef16f17" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/rl-swap: UUID="95ed4f6e-f7e0-46ff-bb2e-8064d2f48613" TYPE="swap"
lsblkコマンド
- ブロックデバイスをツリー上に一覧表示するコマンド
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 46.5G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 45.5G 0 part
├─rl-root 253:0 0 41.3G 0 lvm /
└─rl-swap 253:1 0 4.2G 0 lvm [SWAP]
sr0 11:0 1 1024M 0 rom

キャラクタデバイスとブロックデバイス
キャラクタデバイス
- ひとつの文字ごとに処理するデバイス
- キーボード、マウス、tty等
ブロックデバイス
- データのまとまりごとに処理するデバイス
- HDD、CD-ROM等
認識しているデバイスの一覧を表示
$ cat /proc/devices
Character devices:
1 mem
4 /dev/vc/0
4 tty
4 ttyS
5 /dev/tty
5 /dev/console
5 /dev/ptmx
7 vcs
10 misc
13 input
21 sg
29 fb
128 ptm
136 pts
162 raw
180 usb
188 ttyUSB
189 usb_device
202 cpu/msr
203 cpu/cpuid
226 drm
244 aux
245 hidraw
246 usbmon
247 bsg
248 watchdog
249 ptp
250 pps
251 rtc
252 dax
253 tpm
254 gpiochip
Block devices:
8 sd
9 md
11 sr
65 sd
66 sd
67 sd
68 sd
69 sd
70 sd
71 sd
128 sd
129 sd
130 sd
131 sd
132 sd
133 sd
134 sd
135 sd
253 device-mapper
254 mdp
259 blkext