LPIC学習　第五章　デバイスとLinuxファイルシステム

####5.1パーテーションファイルシステムの作成

パーテーションを作成しただけではファイルを保存することはできません。
今の状態は家を作ったけど、住所がわからないようなものでPCであらわすと

ファイルシステムがない状態でデータを取り出そうとすると
ディスクの192839番目のセクタ（ディスクは細かく区分けされている）にファイルを格納している状態
ファイルシステムを作るとdev/sda1のファイルと明確な場所を表してくれる

ハードディスクのきかく
IDE
SATA
SCSI
USB
https://xtech.nikkei.com/atcl/nxt/mag/nnw/18/111900072/111900001/

ファイルシステムはブロックでデータ管理している

ファイル本体＋iノード（ファイル本体の情報が記載されている）で成り立っている

ファイルシステムの管理
ext1,ext2、、とか色々混ざっている

xfs irixなどなど

実際にファイルシステムを作成するときは
mkfs デバイス名で作成できる

ext2,ext3,ext4に関してはmke2fsコマンドも使うことができる
5パーセントの領域はrootユーザーです。
国会議員が新幹線のグリーン車を確約しているみたいですね

btrfs　mkfs.btrfs デバイス名
＊複数のディスクを合体させて１つのボリュームを作ることができる
＊複数のボリュームにまたがってファイルシステムを作成できます１ファイルシステムにつき何個のボリュームでもOK

mkswapコマンド
swapを作成する
最低１つのスワップ領域の作成は義務です

デバイスファイルの置き場
/dev/sda　１台目（HD）*
/dev/sdb　２台目（HD）
/dev/sdc　３台目（HD）
/dev/sdd　４台目（HD）

/dev/sr0　1台目（CD/DVD）

/devディレクトリ以下に１台ずつ上記のように割り振られる

ルートファイルシステムに必要なディレクトリ
/bin/sbin
/lib
/home
/var
mountコマンドは/sbinディレクトリにある

パーテーションを作る時の
fdiskコマンド＊2TBまで分割できる
gdiskコマンド＊GPT
partedコマンド
＊コマンドあ

5.2
＊基本パーティション：最大４つのパーテーション
＊拡張パーティション：基本パーテーション４つのうち１つは拡張パーテーションとして更に細分化できる
＊論理パーティション：拡張パーテーションを更に分割する

パーティションがあれば
Aドライブぶっ壊れた！
Bは無事
ということになる
大事なものは分けておくこと！

ファイルシステムが作成されなかったら、、
＊空きがない
＊使用できるiノードがない
の２卓になります。

fsの空き容量を調べるときにdfコマンドを使うとファイルシステムの空きを見ることができます
＊iノードの恐ろしいところは、後から領域を追加したりできないことです
iノードの使用状況を調べるときはfdf-iコマンド
ファイルやディレクトリが占めている容量自体を表示するときはduコマンドでいけます

fsckコマンド（extファイルの時はefsckコマンド）
ディスクの修復コマンドを使い、ディスクのチェックを行うことができる
＊ファイルシステムをアンマウントしなければならない
注）書き込み中のディスクにはやらないでください
ファイル本体とファイルシステムの整合性がつかない＝やばいです

でもこんなことばっかりやっていてもめんどくさいので
tune2fsコマンドをもちいて一定の間隔でチェックできるようにする

centOSではxfsを採用している
mkfs.xfsコマンドを使いましょう
mke2fsコマンドはext2、ext3、ext4のファイルシステムを作成する際に使用するコマンド。

####5.3
ファイルシステムのマウントとアンマウント

マウントの定義は、あるファイルシステムに別のファイルシステムを組み込む
ことがマウントです（コピーとの違い）

FSの情報は/etc/fsfabの中に入っている
ここを参照してマウントとという行為を行ってます

UUIDとは各デバイスごとのIDです
blkidコマンドで、デバイスファイルとの対応がわかる

mount デバイス名　マウントポイント
umount デバイス名かマウントポイント


####5.4

FHSの背景は、ルートファイルシステムがどこに置いてあるかルールがなかった
そのためPCは、あれっこのファイルないぞ？ってことになったりで不具合
が発生してましたので
全体で、ルートファイルシステムの位置を決めておきましょうというのがFHSです。

bin 基本的なコマンドがかかれてます。なぜbinなのかというと、binaryという
　　暗号みたいな意味を表していると思われます。catのファイルは機械だけが読める人間様には全く読めない言葉で書かれています。これをバイナリーファイルと呼ばれます
sbin　コマンドのなかでも、initとかshutdownとかシステムの管理に使うコマンド置き場
etc システムやアプリの設定情報やスクリプトファイルが入っている＊
dev デバイスファイルがある
lib ライブラリの中身を表している＊
mnt 一時的にマウントするファイルシステムのマウントポイント
opt パッケージ管理の仕組みを使って＊
proc カーネルの内部にアクセスするためのFSですが実物はディスクに存在していない。＊カーネルは　ブートにあるのかな
boot　OSの起動に必要な設定やカーネルイメージが書かれている
home ユーザーごとのホームディレクトリ　１つのパソコンに一杯ファイルを置いているやつがいると思う
tmp 一時ファイルが置かれる仮置き場です。すべてのユーザーが読み書きできます
var varって変数っていみあると思いますが、変わるっていう意味でログとか
　すぐ変わるデータが入っています
var/cache キャッシュファイル置き場
var/lock　ロックファイル
var/log　　ログ置き場
var/run　　システムの状態　例えばPIDプロセスIDなんかが入っている
usrコマンド
usr/bin 
①ユーザーが一般的に使うコマンド
②緊急時のシステム保守に必須ではない
usr/sbin
①ユーザーが一般的に使うコマンド
②緊急時のシステム保守に必須ではない
＊消えても何とかなるコマンド
usr/lib
共有ライブラリが配置
usr/share
X86とか、、？
uer/src
リナックスのカーネルソース

indコマンドはファイルだけではなく色々な検索条件でファイルを検索できます
メタキャラも使えますし。
マッチしたファイルを同時に削除する１ターンに２回攻撃もできます

locate を使うと検索パターンに一致するファイルを探してくれます
＊しかもfindより高度です

updatedb コマンド　データベースを再構築、、やばそうじゃない？
update -eだと、じょがいされる
update -e /homeだとホームディレクトリは例外として更新される

which　コマンド名でコマンドを検索されます　そのコマンドのバイナリファイルのパスが返ってきます
バイナリファイルだけではこと足りないときはwhereisコマンドで、manコマンドの絶対パスを入れます

typeコマンドは
コマンドが
通常の実行ファイル（機械語でかかれている手順書）なのか
シェルの組み込みファイル（シェルの中に書かれている？）
エイリアス（自作カスタマイズコマンド）
かって判断してくれる