Ping-t（主題104） デバイス、Linuxファイルシステム、FSH

#LinuCの試験を受けるので、忘れないようにここに解説をただまとめる。

##スワップ領域
スワップ領域とは、物理メモリ（実メモリ）に治らなかった情報を一時的に格納するためのHD上に作成する領域のこと。

スワップ領域を無効にするコマンドは→swapoff
スワップの領域を作るコマンド→mkswap
mkfs→各種ファイルシステムを作る（配線するやつ←こっちの話ですw）
swapon→スワップをオンにする。
fdisk→スワップ用のパーティションを作成するときに使う（パーテーション作ってくれるやつねw）

##fdisk
w　パーティーションテーブルの変更を保存して終了
q　パーティーションテーブルの変更を保存しないで終了
m　サブコマンドの一覧
l　パーティションタイプの一覧表示
n　パーティションの作成
p　パーティションテーブルの一覧表示（確認するときに使用する
t システムIDの変更　


##mkfs
mke2fsコマンドでext2/ext3/ext4ファイルシステムを作成できる。
ちなみにext2/ext3/ext4ではinode数が制限されるファイルシステム。
オプション　ーt＋ファイルシステムの種類　にてファイルの種類を指定してファイルシステムを作ることも可能。


##inode
inodeとはLinuxのファイルシステムにおいてファイル属性（パーミッションやユーザー）を格納するもの。
動的inodeの機能とは、ファイル作成時にinode番号を動的に割り当てる機能のことです。inodeを動的に割り当てるため、inodeの数に制限はありません。
動的inodeの機能がないファイルシステムでは、inodeはファイルシステム作成時に作成され、増やすことはできません。そのため、ファイルの数が増えるなどして使用可能なinodeがなくなると、ディスクに空き容量があってもファイルを新規に作成することができなくなります。

inodeの使用状況を確認できるコマンド→df -i


inode機能をもつのはこいつら
・XFS
・JFS
・ReiserFS

##ハードリンク
ハードリンクとは、ファイル実体を直接参照するリンクのことです。
①同じファイルの実体を示すものなので、inode番号が同じになる。
②ファイルシステムが異なると作成することはできない（inode番号はファイルシステム毎に管理されるため、異なるファイルシステムへハードリンクを作成することはできない
③複数制作するのOK
④ディレクトリのハードリンクは作成できない
→循環ディレクトリの作成を防ぐため、

##シンボリックリンク
シンボリックリンクとは、Windowsでのショートカットのようなもので、元ファイルの場所を指し示すリンクの事です。
シンボリックリンクが持っている情報は「元ファイル（ディレクトリ）がどこにあるのか」というパス情報のみです。



↑-jのオプションを使用することでext3ファイルシステムも作る！

また、mkfsコマンドでは「-t」オプションで、ext2/ext3/ext4のみならずreiserfs、xfsなどのファイルシステムを指定し、作成できます。

※
etx2にはジャーナリング機能がない！
ジャーナリングファイルシステムとはジャーナリング機能を持つファイルシステムのことです。
ジャーナリング機能とは、更新履歴をジャーナル（ログ）に記録しておく機能のことです。ジャーナルに記録されている情報を使用することで、障害時のデータ復旧を短時間で行うことができます。


実際にスワップを利用する流れとしては、

1. スワップ用のパーティション（またはファイル）を用意する
2. mkswap コマンドでスワップ領域を作成
3. swapon コマンドでスワップ領域を有効化
4. （不要になれば）swapoff コマンドでスワップ領域を無効化

スワップ領域の作成→mkswap
スワップ領域の有効化→swapon


##パーティション
パーティションには基本と拡張がある。（MBRの場合）
基本は4個までしか作れない。なのでそれ以上になる拡張パーティションとして論理パーティションを作る必要がある。これを操作するにはfdiskというコマンドが必要なわけ
GPTだと基本が128個も作れる。でもMBRは8個まで。

新しいハードディスクを Linux システム上で利用するためには
1. パーティションを切る（基本パーティション、拡張パーティション、論理パーティションを作成）
2. 各パーティションをフォーマットし、ファイルシステムを作る
3. 作ったファイルシステムをマウントする

・/dev/sda1　1番目のパーティション
・/dev/sda2　2番目のパーティション
・/dev/sda3　3番目のパーティション
・/dev/sda4　4番目のパーティション


MBR→　最大ハードディスク２TB、機動用システムyファームウェアBIOS、基本パーティション4個
GPT→　８ZB、UEFI、１２８個　gdiskコマンドで操作



##MBR形式、GPT形式のパーティションテーブルをサポートするパーティション操作コマンドはparted

parted -l デバイスファイル名で全てのデバイスのパーティションテーブルを表示する。
※パーティションテーブルにはパーティション情報が含まれていおる。

##duコマンド
ファイルやディレクトリが占めている容量を確認することができるコマンド
オプションは以下の通りです
-a　ディレクトリ以外、ファイルについても表示する
-h わかりやすい単位で表示する
-c 合計の容量も表示してくれる
-s 指定したファイルやディレクトリの合計容量を出してくれる
-k KB単位で表示
-m MBで表示

##dumpe2fs
ext2/ext3/ext4ファイルシステムの各種情報を表示するコマンドは、これ。
dumpe2fs


##df
デバイスの空き容量を表示するコマンド

##ps
実行中のプロセスを表示するコマンド

##fsck
ファイルシステムのチェック、問題を修復することができるコマンド
e2fsckコマンドもext2/ext3/ext4ファイルシステムのチェックOK
【オプション】
-a 問題を自動的に修復する
-N 実際に実行はせずに実行する内容を表示
-A 全てのファイルシステムに対して実行してくれる

【e2fsckのオプション】
-y 全ての問い合わせに対し自動的にyes
-n 全ての問い合わせに対し、自動的にno
-p 全ての問題を自動的に解決する

##tune2fs
ext2→ext3にするには、tune2fsコマンドを使用する。
【オプションはこれ】
-j　ext2からext3に変換する。


##自動マウントについて
システム起動時に、　mount -a　を行うことで　/etc/fstab」ファイルにてマウントオプションの「auto」が設定されているファイルシステムを全てマウントします。つまり、「auto」が設定されているファイルシステムはシステム起動時に自動的にマウントされます。

defaults」を指定した場合は、「async, auto, dev, exec, nouser, rw, suid」マウントオプションが指定されたことになります。「auto」が含まれていますので、「defaults」も適切なマウントオプションです。

順番はこれやで↓　６項目
デバイス名 マウントポイント ファイルシステムの種類 マウントオプション dumpフラグ fsckフラグ

①デバイス名
「/dev/sda1」のようにデバイスファイルを書くか、ラベル（あらかじめファイルシステムに対して付けておいた名前）やUUID（被ることがないデバイス固有の識別子）を使った指定を書きます。
ラベルを使う場合は 「LABEL=/boot」のように「LABEL=」の後ろにラベル名を書きます。この場合ラベル名は「/boot」です。
UUIDを使う場合も同様で「UUID=」の後ろに続けてUUID文字列を書きます。

②マウントポイント　
ルートシステム情のどのいちにマウントするのかをパスでかく

③
デバイス名で指定したファイル名をかく

④　マウントオプション
async, auto, exec, nouser, rw, suid （と、表には載っていないdev）が指定されたのと同じ状態で

(5) dumpフラグ
そのファイルシステムをdumpコマンド（バックアップ用のコマンド）の対象とするかどうかを「0」か「1」で書きます。「0」では対象外となり、「1」では対象となります。

(6) fsckフラグ
起動時に自動的に行われるfsck(ファイルシステムチェック)の優先度を数字で書きます。数字が小さいものから順にチェックされますが、0は例外で、チェックを省く指定になります。