LoginSignup
2
1

More than 1 year has passed since last update.

ファイルシステムについて調べてみた

Last updated at Posted at 2022-03-27

概要

ファイルシステム(Linuxの)について勉強したのでまとめてみようと思う

ファイルシステムって?

ディスクに保存されるデータをファイルとして管理する仕組みのこと。ハードディスクやSSDを利用するには、ディスク内にパーティションを作成後、パーティション内にファイルシステムを作成し、そのファイルシステムをマウントする。
ファイルシステムがないと「XXXセクタのデータを取得」のように人間が見てもわからない指示しか出せず、逆にファイルシステムがあると「/etc/hogehoge.txtを取得」と指示でき、管理がしやすくなる。

ハードディスク

規格 説明
SATA 現在主流になっている規格で、ほとんどのPCで標準的に搭載されている。[Serial ATA]
SAS SATAよりも高速で信頼性が高い。主にサーバ用途で使用されるがSATA余地も高価。[Serial Attached SCSI]
SCSI ハードディスクやDVDドライブなどの様々な周辺機器を接続するための規格。高価だが、データ転送速度も速いので、高速性や拡張性を求められるサーバやワークステーション環境で利用されることもある。
USB 周辺機器と接続する菊花うとして一般的な規格。必要に応じて取り外しできるのが便利なところ。

デバイスファイル

ハードディスクやSSD,DVDドライブ、シリアルポートといった、デバイスの入出力を扱うための特殊なファイルのこと。デバイスへの書き込みは出力、読み込みは入力を表す

デバイスファイル 説明
/dev/sda 1番目のハードディスク
/dev/sdb 2番目のハードディスク
/dev/sdc 3番目のハードディスク
/dev/sdd 4番目のハードディスク
/dev/sr0 1番目のCD/DVDドライブ
/dev/st0 1番目のテープドライブ

パーティションの種類

1台のディスクドライブを複数の論理的な区画(パーティション)に分割して使うことができる。それぞれのパーティションには異なるファイルシステムを作成できる。BIOSベースのシステムでは、パーティションの種類は3つある。パーティションに分割することで、ファイルシステムの一部が破損した場合に諸以外により被害を1つのパーティション内だけに留めることができたり、大量のログが発生するなどし、ディスクの空き容量が足りなくなったとしても、システム全体への被害を少なくできる。

パーティションの種類 説明
基本パーティション ディスクには最大4個のパーティションを作成できる。基本パーティションのデバイスファイル名は、ハードディスク/dev/sdaの場合、/dev/sda1=sda4となる。
拡張パーティション 基本パーティションの1つを拡張パーティションにすることができる。拡張パーティションお腹には論理パーティションが格納される。
論理パーティション 拡張パーティション内に作成されたパーティションのこと。論理パーティションのデバイスファイル名は/dev/sda5以降になる。

パーティションテーブルの方式

方式 説明
MBR(マスターブートレコード) MBRで扱えるハードディスクの容量は2TBまでで、基本パーティションを4個作成できる
GPT(GUIDパーティションテーブル) GPTで扱えるハードディスクの容量は2TB制限がなくなり、パーティションも最大128個作成できる

ルートファイルシステム

Linuxのディレクトリは階層構造になっていて、その頂点となる「/」ディレクトリからなるファイルシステムをルートファイルシステムと呼ぶ。
以下はルートファイルシステムに必要なディレクトリ

ディレクトリ 説明
/bin,/sbin システムに必要なコマンド、ディレクトリ
/etc 各種設定
/lib ライブラリ
/dev デバイスファイル

パーティション管理コマンド

fdiskコマンド

パーティションの作成、削除、変更、情報表示を行うコマンド

サブコマンド 説明
l パーティションタイプを一覧表示する
n パーティションを作成する
d パーティションを削除する
p パーティションテーブルを表示する
t パーティションタイプを変更する
a ブートフラグをオン・オフを切り替える
w パーティションテーブルの変更を保存して終了する
q パーティションテーブルの変更を保存しないで終了する
m ヘルプメニューを表示する 

gdiskコマンド

GPT方式に対応したパーティション操作コマンド

parted

MBRもGPTにも対応したパーティション操作コマンド

サブコマンド 説明
check 番号 ファイルシステムの簡単なチェックを行う
mklabel [gpt|msdos] 新しいパーティションテーブルを作成する
mkpart 種類 開始 終了 指定した種類のパーティションを作成する
rm 番号 指定したパーティションを削除する
print、p パーティションテーブルを表示する
quit、q 終了する

ファイルシステムの作成

ファイルシステムはブロックという単位でデータを管理している。アプリケーションプログラムではブロック単位でデータを扱うことができる。
Linuxではのファイルシステムでは、「ファイルの中身(データ)」 と「ファイルの属性や管理情報」は別々に保存されており、後者はiノードと呼ばれる領域で管理されている。iノードはファイルシステム作成時に予め用意されていてファイルやディレクトリを作成するたびに1つずつ使われいく。
#ファイルシステムの種類

ファイルシステム 説明
ext2 Linuxの標準ファイルシステム
ext3 ext2にジャーナリング機能を加えたもの
ext4 ext3を機能拡張したもの
XFS SGI社が開発したジャーナリングファイルシステム
JFS IBM社が開発したジャーナリングファイルシステム
iso9660 CD-ROMのファイルシステム
msdos MS-ROMのファイルシステム
vfat SDカードや古いWindowsで使われるファイルシステム
exFAT FATの後継となるフラッシュメモリ向けファイルシステム

mkfsコマンド

パーティション上にファイルシステムを作成する。ファイルシステムに対応したコマンドを呼びだします

オプション 説明
-t ファイルシステムタイプ ファイルシステムタイプを指定する(ex, mkfs -t ext3)
-c 実行前に不良ブロックを検査する

mke2fsコマンド

オプション 説明
-t ファイルシステムタイプ(ext2,3,4) ファイルシステムタイプを指定する
-j ext3ファイルシステムを作成する
-c 実行前に不良ブロックを検査する

ディスクの利用状況の確認

ファイルシステムに書きも見ができなくなる要因として下記が考えられ、利用状況(空き容量)の確認は重要
・空き容量が不足している
・使用できるiノードがない

dfコマンド

パーティション上にファイルシステムを作成する。ファイルシステムに対応したコマンドを呼びだします

オプション 説明
-h 容量を適当な単位で表示する(Mは1,048,576バイト)
-H 容量を適当な単位で表示する(Mは1,000,000バイト)
-k 容量をKB単位で表示する
-i iノードの使用状況を表示する

duコマンド

オプション 説明
-a ディレクトリ以外にファイルについても表示する
-l リンクを含めて集計する
-c すべての容量の合計を表示する
-k 容量をKB単位で表示する
-m 容量をMB単位で表示する
-s 指定したファイルやディレクトリ飲みの合計を表示する
-S サブディレクトリを含めずに集計する
-h 容量を読みやすい単位で表示する

ファイルシステムのチェック

システム障害などが原因でファイルシステムに破損が発生する場合があるため、fsckコマンドでディスクのチェック、修復を行うことができる。
※書き込み途中で実行すると、ファイル破損する可能性があるので、必ずアンマウントした状態で行うこと

fsckコマンド

オプション 説明
-t ファイルシステム名 ファイルシステムタイプを指定する
-a 自動的に修復を実行する
-r 対話的に修復を実行する
-A /etc/fstabに記述されている全ファイルシステムに対して実行する
-N 実際には実行せず何が行われるかのみ表示する

e2fsckコマンド

オプション 説明
-p すべての不良ブロックを自動的に修復する
-y 問い合わせに対してすべて「yes」と回答する
-n 問い合わせに対してすべて「no」と回答する

tune2fsコマンド

est2,3,4ファイルシステムの様々なパラメータを設定する

オプション 説明
-c 回数 チェック無しでマウントされる最大回数を指定する
-i 時間 ファイルシステムをチェックする最大の時間間隔を指定する
-j ext2ファイルシステムをext3に変換する
-L ファイルシステムのボリュームラベルを指定する

まとめ

Linuxにおけるファイルシステムの概要を、管理に必要なコマンドをまとめました。これらに加えマウントの仕組みや、FHSまで学べばファイルシステムとはなんぞやというところまで理解できるのではないかと思います。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1