LPIC201 試験前等に見ると為になる（かも）+α

- ※2018年10月ごろの記事になります

# 宣伝(2020/11/13)
一つ宣伝をさせてください。
現在、「もくもくオンライン勉強会」という勉強コミュニティを運営しています
創設から１年が経過し、より情報のやりとりが多くなり活発化するよう
メンバーを募集しています。コミュ独自でpythonとnodejsを活用して
BOTを開発し、いろいろな自動化を進めているので今後も便利になる成長のあるコミュです

👇詳細は以下にまとめましたので興味ある方は連絡ください
https://bosyu.me/b/G43e6INUpQw

# 注意書き(2020/11/5)
試験受験前の備忘録としてこの記事を作成しましたが
多くの誤字を確認しております。
そのため、11月末までに各種コマンドの誤字がないかなど確認する予定でおります。
が、もし時間がなく対応できなければ11月末で削除する予定です。
もし、誤字の箇所が見つかりましたら
気軽に「編集リクエスト」を頂ければと思います。
その都度確認して、適応して参ります。

#合格後の追記（11月10日）
##11月10日（土）午前の受験日を終えて、実は私...
- 実は私、2週間前に同様の試験を受けて不合格になっています。

前回のスコアは490点（合格ライン500点）で、カテゴリごとの正答率は
主題200、201、202などの前半部分の得点が低い状態でした。
１回目試験を受けた時は、今回のようにネット上やデータで勉強内容をまとめていた訳ではなく
無印のノートにまとめており、LPIC201の勉強で２冊のノートを消費しました。
いざ！試験日前日金曜日、
「家に帰って、きっと忘れている前半部分の記憶を１冊目ノートを見て、呼び起そう」
と思って家でノートを探す.....だが、ない。
振り返りができない、「まとめた」意味がないノートと化してしました（苦笑

- 前回の反省
    - まとめ方は自由！でも出来るなら「`ネット上で自分なりにまとめておけ！`」です。

今なら特別な環境出ない限り、スマホやPC、タブレットから見れる環境で
まとめておくことが、僕なりのアドバイスです。
きっと、こうやってまとめておけば、いつか見たい時に見れるんです。

##今回のスコア：***590点***
- 11月10日 LPICスコアレポート（LPI Level 2 Exam 2011)
    - キャパシティプランニング----100%
    - Linuxカーネル-----------------77%
    - システムの起動---------------55%
    - ファイルシステムとデバイス--88%
    - 高度なストレージ管理--------100%
    - ネットワーク設定-------------72%
    - システムの保守---------------50%

##次の目標
- LPIC202を３週間後の土日（11月末or12月頭）に受験する予定です。
- 今回同様にQiitaを使って、まとめていきます。
- 次を早々に合格した後は、今年度中にAWSの資格一つ取得するぞ！

お付き合い頂きありがとうございました。
（以下「はじめに」から、試験を受けるまでの勉強記録、内容まとめになります。）



#はじめに(2018/10/20)
　2018年転職。公立保育士からITエンジニアに転職してから半年と少しが経った今
資格勉強に励む中で、備忘録と勉強の記録をしたいと思い書き始めました。
また、こういったサイトで知識を上手にまとめることに慣れたいと思い、取り組み始めます。

- 取得済みの資格
    - LPIC Level1
    - ITILファンデーション
    
- 取得予定の資格
    - LPIC Level2（201&202）
    - AWS 認定ソリューションアーキテクトアソシエイト

| 2018年の計画 |          受験資格名|   
|:-----------:|:------------------:|
| 10月        |            LPIC201 |      
| 11月        |            LPIC202 |    
| 12月        |     AWSｿﾘｭｰｼｮﾝｱｰｷﾃｸﾄ|  





#備忘録
ping-tを利用して勉強をしています。
資格取得のため、自らが必要と感じたping-tの内容を各章毎にまとめた内容になります。

##キャパシティプランニング(主題200)
※キャパシティプランニングとは
　・リソース不足によってシステムの運用に支障が出ないようにする設計技術
　・現状のリソース状況を測定・記録し把握する必要がある。
###200.1◆リソース使用率とトラブルシューティング
####★測定・記録コマンド

| コマンド |測定対象|  |  |  | |||||
|:--|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|   |CPU   |   |   |物理ﾒﾓﾘ   |   |ｽﾜｯﾌﾟ領域   | ﾃﾞｨｽｸI/O   |ﾈｯﾄﾜｰｸI/O|ﾌﾟﾛｾｽのPID|
|   |ｼｽﾃﾑ全体使用率|ﾌﾟﾛｾｽ毎使用率|負担平均|ｼｽﾃﾑ全体使用率|ﾌﾟﾛｾｽ毎使用率|
|top|〇|〇|〇|〇|〇||||〇|
|vmstat|〇|||〇||〇|〇|||
|ps u[ax]|〇||||〇||||〇|
|iostat|〇||||||〇|||
|free||||〇||〇||||
|sar|-u|-P|||-r|-S|-b|-n [DEV/EDEV]|||
|swapon||||||〇||||
|netstat[-i/-s]||||||||〇||
|iotop|||||||〇|||

- sarコマンド（sadcコマンドで保存したバイナリデータをテキスト表示するコマンド）
 - /usr/lib/sa/sa1：sadcの定期的な実行を行う。
 - /usr/lib/sa/sa2：sarの定期的な実行を行う。
- sadfコマンド（sarの結果の出力を整形するコマンド）
 - sadf [オプション] [対象データ][--][sarオプション]
 - オプション：-j（JSON形式）、-x（XML形式）、-H（ヘッダ情報表示）

- iostatコマンド（CPUの利用状況とディスクIDの状況を表示）
 - 全体のCPU使用率のみでcpu毎の使用率は見れない
 - 最初のコマンド実行時　 ：「起動からの統計情報」になる
 - 2回目以降のコマンド実行：「前回のデータとの差分」になる。

- スワップ領域の利用状況を調べる2つの方法
 - swapon -s
 - cat /proc/swaps

- sarコマンドのCPUのオプション二種類
 - -u：全CPUの使用率
 - -P：指定したCPU（使用率）

- 「プロセス毎のCPU使用率」と「プロセス毎の物理メモリ使用率」は同じコマンド
 - top(htop)
 - ps u[ax]

###200.2◆リソースの需要の予測
- collectd
 - Cactiツールの方が上位互換（機能が少ないため）
 - 設定ファイル：/etc/collectd.conf（LoadPluginで使うプラグインを指定する）
- MRTG
 - ネットワークやリソースの使用状況を監視し、グラフ化する。
 - Nagiosとは異なる（死活管理が行えない）
- Cacti
 - MRTGより設定が楽
 - ネットワークやリソースの使用状況を監視し、グラフ化する。
 - Nagiosとは異なる（死活監視が行えない）
- Nagio
 - サーバの死活監視 
 - ネットワークサービスの状態、リソースの使用状況を統合的に監視する。
- Icinga2
 - 開発初めは、Nagios互換の監視ツール
 - Version2ではNagiosとの互換がなくなった。
 - その代わり、WebAPIを使って監視情報のやりとり行う（Nagiosにはない機能）。
 - オブジェクト管理を主体とした監視を行う。
　

- SNMP（Simple Network Management Protocol）
 - リソースの状態の測定(監視)に使われるプロトコル。

- webサーバのキャパシティプランニングで注意すること
 - テキストだけでなく、リッチ（画像、動画）・動的（プログラミング）コンテンツを扱うようになった。
 - そのため、コンテンツの種類によってキャパシティプランニングが大きく変更される可能性がある。


##Linuxカーネル(主題201)

###201.1◆カーネルの構成要素

####★リリースされるLinuxカーネルのカテゴリ
- prepatch
 - ReleaseCandidate(リリース候補)。
 - テストが必要な新機能が含んでいる、開発版リリース。
- mainline
 - prepatch後にリリースされる正式版。
- stable
 - mainline語にリリースされる安定板。
 - mailnlineでの不具合の修正が行われている。
- longterm
 - stableから選出される。
 - 約2年の長い期間バグフィックスが行われる。

####★カーネルの情報を見るには
- unameコマンド（オプション6個）
 - -s：カーネルの名前 - -r：バージョン（[cat /proc/version][cat /usr/src/linux/Makefile])
 - -n：ホスト名
 - -m：ハードウェア名
 - -p：CPUタイプ
 - -a：全ての情報
 
####★2つのカーネルイメージ
　※どちらのイメージもgzipで圧縮される。

- zImage
 - 512KB以下のイメージしか扱えない。
 - ローメモリ空間のに利用。
- bzImage
 - zImageの後継
 - 1MB以上のイメージも扱える。
 - ハイメモリ（ユーザースペース）空間を利用。
 - 2.6系、3.x系で使われる。

####★Linuxカーネル(tar.gz、tar.xz)に含まれる中身は
- カーネルソース
 - コンパイルするのに必要なソースコード
- カーネルモジュールのソース
 - ほぼ全てのカーネル本体のソースに含まれてる。
- ドキュメント
 - ファイルシステムやデバイスドライバ等の使用方法が書かれている。
- Makefile
 - コンフィギュレーションやビルド、インストールするのに必要不可欠
 
####★カーネルバージョンの見分け方

- 2.6以前
 - 2.X.Y：Xが奇数だと開発版、偶数だと安定板
- 2.6以降
 - 「-(ハイフン)」の後に続き記号によって開発版かリリース候補版か等判断
 

###201.2◆Linuxカーネルのコンパイル

####★初期RAMディスクの2つの形式
 ・共にgzipで圧縮したもの。

- initrd形式
 - ファイルシステムイメージを圧縮
 - 作成方法：mkinitrd [出力ファイル名] [カーネルバージョン]
 - 展開方法：gunzip initrd.img.gz ; mount -o loop initrd.img [マウント先]
- initramfs形式
 - cpioアーカイブを圧縮
 - 作成方法：mkinitramfs -o [出力ファイル名] [カーネルバージョン]（dracutコマンドでも可）
 - 展開方法：gunzip initrd.img.gz ; cpio -id < initrd.img
 
　　(-oオプション：出力先をしているするために使う）
- 初期RAMディスクの説明
 - システムの起動時に用いられる。 - メモリ上にファイルシステムを展開し、そこでカーネルを起動させてから本来のファイルシステムをルートにマウントし直す。

####★カーネルをビルドする際に使うmakeオプション一覧
- make （設定に関係するオプション）
 - config：対話的に設定
 - menuconfig：ターミナル上のGUIで設定
 - xconfig：X上のGUIで設定
 - defconfig：デフォルト状態の設定ファイルを作成
 - oldconfig：現在のカーネルの設定を引き継ぐ
 - cloneconfig：（同上）
 - clean：設定ファイルを除いてファイル等を削除
 - mrproper：設定ファイル含めてファイル等を削除
- make　（動作を指定する）
 - all：カーネル＆モジュールをビルド
 - install：ビルドしたカーネルをインストール
 - modules：カーネルモジュールをインストール
 - modules_install：カーネルモジュールをインストール
 - rpm：ビルド後にrpmパッケージ化
 - rpm-pkg：ソースrpmパッケージを作る
 - binrpm-pkg：バイナリrpmパッケージを作る
 - deb-pkg：Debianパッケージを作る 

####★make installの動作（丁寧版）
- 1)ビルドしたbzImageをvmlinuz-(VERSION)の名で/bootに置く。
- 2)System.mapを、System.map-(VERSION)の名で/bootに置く。
- 3)/boot/vmlinuzとSystem.mapという名でアクセスできるようにシンボリックリンクを貼る
- 4)（必要に応じて）mkinitramfs又はmkinitrdで初期RAMディスク作成
- 5)ブートローダに新しいカーネル用の設定を追加する。
 - GRUB Legacy：/boot/grub/menu.lst
 - GRUB2：/etc/grub.d/配下

####★make installの動作（短期記憶版・ざっくり版）
- いくぞ！Boot2シンRAMカーネル！発動！
 - 1)/bootに置く（vmlinuzにバージョンつけてリネームして）
 - 2)/bootに置く（.mapにバージョンをつけてリネーム）
 - 3)シンボリック作る（上記(1),(2)のバージョンが無い版）
 - 4)初期RAMディスク作成
 - 5)カーネル用の設定を追加する（ブートローダに）
 
####★モジュールの依存関係
- modprobeコマンド
 - modules.dep内の記述を見て依存関係を解決する。（モジュール名：依存しているモジュール）

- DKMS（Dynamic Kernel Module Support）
 - カーネルとカーネルモジュールの依存関係を解決
 - カーネルアップデート時、自動的にカーネルモジュールを更新(リビルド)する。
 
####★カーネルソースの展開先
- /usr/src/linux/
 - .config：カーネルのビルド設定
 - Makefile：makeコマンドの設定やカーネルバージョン
 - kernel/：カーネル本体のソースの置き場所
 - Documentation/：ドキュメント類の置き場所

####★ソースからのビルドとインストール(再構築)の手順
- 1)設定の初期化
 - はじめにmake mrproperでディレクトリ内を初期化
- 2)設定を行う
 - 引継ぐならmake oldconfig、他はconfigやmenuconfig、xconfigで行う
- 3)ビルドを行う
 - make(make all)をすると
 - 依存関係解消、カーネル本体とモジュールのビルド、一時ファイル自動削除
- 4)システムにインストールする
 - make modules_installからのmake installを行って本体をインストールする

####★カーネルモジュールのインストール先
- /lib/modules/(VERSION)/
 - (VERSION)は「uname -r」で得られる文字列
 - #echo /lib/modules/$(uname -r)

####★/boot配下のファイル
/boot/配下のディレクトリ＆ファイル

- grub/：
 - grub.cfg：GRUB2設定ファイル
 - (又は)menu.lst：GRUB Legacy設定ファイル
 - grub.conf：環境により上野ファイルの別名
- vmlinuz-<VER>：カーネルイメージ
- System.map-<VER>：カーネルのアドレスマップ
- initrd.img-<VER>：初期RAMディスクイメージ
- config-<VER>：ビルド時のカーネル設定

###201.3◆カーネルの管理とトラブルシューティング
####★/配下の各ディレクトリの説明
- /boot：起動に必要なファイルやカーネルイメージが格納
- /sbin：管理用コマンドが格納
- /dev：デバイスファイルが格納
- /etc：システムの設定ファイル等が格納
- /proc/：プロセス、ハードウェア、システムリソース（疑似的ﾌｧｲﾙｼｽﾃﾑ）
 - bus/pci/devices：PCIデバイス
 - bus/usb/devices：USBデバイス
 - dma：DMAの割り当て
 - interrupts：IRQ
 - ioports：I/Oアドレス
 - modules：ロードされているカーネルモジュール
 - version：カーネルのバージョン

- lsdevコマンド
 - /proc/dma,interrupts,ioportsファイルの一覧情報表示

####★カーネルパラメータの細かな設定を参照・変更する2つの方法
一時的な変更（2種類）

- sysctlコマンド
 - 即時反映
 - 表示：[ｶｰﾈﾙﾊﾟﾗﾒｰﾀ]、変更：-w[ｶｰﾈﾙﾊﾟﾗﾒｰﾀ]=値、一覧：-a
- /proc/sys(仮想ファイル)を操作
 - 表示：cat /proc/sys/kernel/shmall
 - 変更：echo '値' > /proc/sys/kernel/shmall
 
恒久的な変更

- /etcsysctl.confに記述
- etc/sysctl.d配下の設定ファイルにパラメータを記述

####★カー

####★カーネルモジュールを実行時に操作するコマンド6種類
- lsmod：現在有効にされてる全モジュール表示
- modinfo：モジュールを指定して、情報表示
- insmod：モジュールの動的ロード
- rmmod：依存関係を考慮せず、指定したロード済みモジュールをアンロード
- modprobe：依存関係を考慮してロード・アンロード
 - -f：強制操作、-r：アンロード、-l：ロード出来るモジュール一覧表示
 - --show-depends：指定したモジュールの依存関係を表示
- depmod：modules.dep（依存関係ファイル）を更新

####★udevに関するコマンド4種類
- udevcontrol：udevを操作し、動作・停止を行う
- udevinfo：udevが認識しているデバイス情報表示
- udevmonitor：udevdの動作状況を監視、コンソール出力
- udevadm [control,info,monitor]：上記機能を統合したコマンド

####★udevの動作
- 1)デバイスを接続
- 2)カーネルが/sys（仮想ﾌｧｲﾙｼｽﾃﾑ）にデバイス情報を作成
- 3)カーネルがudevdにデバイス情報を通知（uevent）
- 4)udevdが/sysデバイス情報を確認
- 5)udevが/devにデバイスファイルを作成


- udevのメイン設定ファイル
 - /etc/udev/udev.conf

####★modprobeの設定ファイル

- 古い　設定ファイル：/etc/modprobe.conf
- 最近の設定ファイル：/etc/modprobe.d/[*.conf]
 - option：デフォルトパラメータを指定
 - alias：カーネルモジュールの別名
 - install/remove：カーネルモジュールのロード・アンロード

##システムの起動(主題202) 

###202.1◆システムの起動のカスタマイズ
- 自動起動のコマンド（3種類）
 - RedHat(~6.x)：chkconfig
 - Debian(~ver6.0)：update-rc.d
 - SUSE,Debian(ver6.0~)：insserv
 
- update-rc.d
 - update-rc.d [サービス] [操作] [優先度] [ランレベル] [.]
 - 最後に「 . 」がつく。
 - 操作：default,start(Sリンク作成）,stop（Kリンク作成）,remove(-f強制)
- chkconfig
 - chkconfig [(ランレベル)] [サービス]
 - chkconfig --list
 - ランレベル省略可

- insserv
 - -rオプションで起動しなくなる・

####★スクリプトによる自動起動

- /etc/inittab
 - 形式「ID：Runlevel：Act：Cmd」
 - Act種類：initdefault,once,wait,boot,bootwait,sysinit,respawn

- スクリプトを手動で追加する方法
 - lnコマンドを使う。
 - 例：ln -s /etc/init.d/[~] /etc/rd[0-6].d/S99[~]
 - 手動で追加したスクリプトには、start,stop,restartで操作が行える。
 - 起動スクリプト[S][K]の優先度はKから読み込み、次にSを読み込む。

####★Systemdについて
- RefHat(7.0~)からSysVinitの代わりに用いられるプロセス
- ユニットの4種類と説明
 - service：起動と停止
 - mount：ﾌｧｲﾙｼｽﾃﾑをmount（/etc/fstab)
 - device：udevによって認識された
 - target：ユニットをグループ化

- 定義ファイルを置くディレクトリ（3種類）
 - /usr/lib/systemd/system：永久的な定義ファイル
 - /etc/systemd/system：カスタム用とdefault.targetが置かれてる
 - /run/systemd/system：再起動すると削除される

- 同じ名前の定義ファイルが複数あり、上書きの影響を確認する方法
 - systemd-deltaコマンド

####★systemctlコマンド
- サブコマンド
 - start（起動）、stop（停止）
 - enable（自動起動）、disable（自動起動解除）
 - get-default（ターゲット名表示）、set-default（ターゲット指定）
 - status（状態表示）、list-units（ユニット一覧表示）
 - isolate（ほかのユニット停止し、対象ユニット起動）



####★システム起動時のカーネルの出力ログを閲覧する方法（2種類）
- cat /var/log/dmesg
- dmesg

####★SysV-initシステムでﾃﾞﾌｫﾙﾄﾗﾝﾚﾍﾞﾙを設定する方法
- ファイル場所（2種類）
 - /etc/inittab
 - /boot/grub/menu.lst（GRUB設定ファイル）

####★telinitの説明

- initプロセスに指示を出し、ランレベルを変更できるコマンド
 - initと同様に使える。
 - rootでしか使えない
 - システムの再起動が行える。

####★initの説明
- カーネルより始めに実行されたPID1で固定されたもの。
 - SysVinitのinitは/etc/inittabを読み、処理を行う。
 - systemdでは、ランレベルではなくターゲットに基づいて処理される。


###202.2◆システムのリカバリ

####★GRUBブートローダー
- ドライブの名称の違い
 - hd0、hd1：ブートローダーがドライブにアクセスする時の名称
 - /dev/sda：linuxが認識したデバイス名
 - linuxが認識したデバイスの記録は「/boot/grub/device.map」にされる。

####★GRUB2の設定ファイル（3種類）
- UEFIを使ったシステム
 - /boot/efi/EFI/[ディストリビューション固有]/grub.cfg
- BIOSを使ったシステム
 - /boot/grub/grub.cfg
 - /boot/grub2/grub.cfg

####★GRUBのバージョンについて
- 0.9x系：GRUB Legacy
-  1.9系：GRUB2
 -  どちらのバージョンでも起動オプションを実行に指定できる。
-  起動オプション
 - init=<PATH>：initの代わりにコマンド実行
 - root=<DEVICE>：ルートﾌｧｲﾙｼｽﾃﾑを設定右
 - 数字：0-6の数字で、指定のランレベルで起動
 - nosmp|maxcpus=0：シングルプロセッサとして動作

####★フォーマットのFAT16とFAT32について
- UEFIシステムのEFI System Partition（ESP)で使われる。

####★GRUB Legacyの設定ファイル
- 設定ファイルの場所
 - /boot/grub.menu.lst
 - /etc/grub.conf
- 各項目（4種類） - title：ここで指定した名前goodあ⒢RUB起動メニューに表示される
 - root：初期RAMが含まれているパーティション指定。root(hd0,0)から始まる。
 - kernel：カーネルのイメージファイルを指定。起動オプションも指定可
 - initrd：初期RAMディスクイメージファイルを指定する項目

####★GRUB2の設定ファイル
- 設定ファイルの全体的な設定
 - /etc/default/grub
- カスタムの設定を記述するファイル
 - /etc/grub.d/
- 各項目
 - menuentry：GRUBLegacyのtitleに相当
 - set root=：パーティションを指定する項目。root='(hd0.1)から始まる。
 - linux：GrubLegacyのKernelに相当
 - initrd：GrubLegacyと同様

####★UEFIについて
- BIOSと同様に、またブートローダーを登録できるがUEFI事態にブートローダー同様の機能も持たせることもできる。
- efibootmgrコマンド
 - OS上からUEFIの起動エントリを表示設定する。
- UEFI Shell
 - OSを起動せずにハードウェアの設定など行う。

####★ブートローダで実行された起動オプションを確認する方法
- dmesgコマンド
- cat /proc/cmdline

####★BIOSシステムでGRUBLegacy,2をMBRにインストールするには
- インストールコマンド2種類
 - grub
 - grub0install

####★カーネルイメージも一部項目を設定できるコマンド
- rdev [ﾌｧｲﾙｼｽﾃﾑの位置] [位置を書き込みたい先]
 - 項目：ルートデバイス、ビデオモード、RAMディスク
 
###202.3◆その他のブートローダ
####★UEFI関連や、起動関連について
- shim.efi
 - CA（ﾏｲｸﾛｿﾌﾄ）の署名を受け、他のﾌﾞｰﾄﾛｰﾀﾞｰ等の署名検証の役割をする事でｾｷｭｱﾌﾞｰﾄ時の起動を可能にした。
- systemd-boot(UEFI)
 - systemd独自のUEFIﾌﾞｰﾄﾏﾈｰｼﾞｬｰ。
 - ESPパーティションにアクセスできることが必要。
- U-boot(UEFI)
 - オープンソースの組み込み用ﾌﾞｰﾄﾛｰﾀﾞｰ
 - メモリアドレス等を明示的に指定することが必要
 - 低レベルのコマンドで、ｶｰﾈﾙﾌﾞｰﾄ時も複数ステップが必要だが自由度が高い
- isohdfpx.bin(BIOS/MBR)
 - CDROMやDVDROMなどｵﾌﾟﾃｨｶﾙﾒﾃﾞｨｱからの起動のみをサポートする。
 - Isohybrid：USBスティックでISOLINUXイメージのMBRコードを使ったブートを可能にするシステム
- efiboot.img
 - ISOLINUXを使ってブートし、FAT16で作成される。
- /EFI/BOOT/bootx64.efi
 - UEFIのﾌﾞｰﾄﾏﾈｰｼﾞｬｰで、標準ではUEFI起動時に読み込まれる。
- Secure Boot
 - システム起動にあたって署名確認を行い。起動を制限する機能
- grubx64.efi
 - grubを起動するUEFIアプリケーション

####★ネットワークを経由してOSを起動する規格
- PXE( Preboot Execution Environment)
 - ネットワーク経由でOSを起動する。
 - DHCPやTFとサーバを使用する。

####★ブートローダの4種類
- SYSLINUX：FATﾌｧｲﾙｼｽﾃﾑから起動する軽量なもの
- ISOLINUX：CDROMで使うISO9660ﾌｧｲﾙｼｽﾃﾑから起動する
 - 設定ファイル：isolinux.cfg
 - 本体ファイル：isolinux.bin 
- PXELINUX：PXEを使用してネットワークサーバから起動する
- EXTLINUX：ext2~4/btrfsから起動する

##ファイルシステムとデバイス(主題203) 
###203.1◆Linuxファイルシステムの操作と保守
####★ファイルシステムについて
- 利用可能なﾌｧｲﾙｼｽﾃﾑ一覧が書かれているファイル
 - /proc/filesystems

- ファイルシステムの種類（12種）
 - ext2：Linuxの標準
 - ext3：ext2にジャーナリング機能を追加
 - ext4：ext3の後継、大容量のファイルシステムをサポート
 - btrfs：サブボリュームを構成し、スナップショットなどの機能を持つ
 - xfs：古くからあり、ジャーナル機能を持つ。ｼﾘｺﾝｸﾞﾗﾌｨｯｸｽ社開発、高性能なもの
 - iso9660：CD-ROM
 - FAT･VFAT：フラッシュメモリで使われる、古くUEFI、ISOLINUXでも使われる。
 - ntfs：最近のwindowsが使ってる
 - nfs：ネットワークファイルシステム
 - tmpfs：メモリ上に配置される特殊なﾌｧｲﾙｼｽﾃﾑ（RAMディスク）
 - swap：物理メモリのスワップ先
 - ZFS：OracleのSolarisで使用され、btrfsが参考としたファイル。
 
- ファイルしシステム間の変換
 - 初めに、原則バックアップを行う。新しく作った後バックアップからコピーする。
 - tune2fsコマンド：ext2からext3に変換可能
 - btrfs-convertコマンド：ext3からbtrfsに変換可能

####★VFSについて
- Virtual File System
 - 複数の異なるﾌｧｲﾙｼｽﾃﾑの違いを吸収する
 - ユーザプログラムはシステムコールを使ってVFSに指示を出す。

####★/etc/fstab
- 書式 (ex:/dev/sda2 /root ext2 defaults 1 0)
- [ﾃﾞﾊﾞｲｽ] [ﾏｳﾝﾄ先] [種類] [ｵﾌﾟｼｮﾝ] [dumpﾌﾗｸﾞ] [fsckﾌﾗｸﾞ]
 - dumpフラグ：dumpコマンドの対象とするか、0なら対象外、1なら対象
 - fsckフラグ：起動時自動的に行うfsckの優先度、数字が小さい順にﾁｪｯｸされ0は対象外

- オプション一覧（13種）
- （デフォルトで：async,auto,exec,nouser,rw,[dev,suid]が指定されている９
 - default：オプションを上書きせず、追記するためのオプション
 - auto：mount -aの自動マウント対象
 - noauto：mount -aの自動mount対象外
 - ro：読み出しのみ許可
 - rw：読み出し・書き込み許可
 - exec：バイナリ実行許可
 - noexec：バイナリ実行禁止
 - async：非同期で入出力する
 - sync；同期で入出力する
 - uid；mountしたﾌｧｲﾙｼｽﾃﾑの所有者を指定
 - nouser：一般ユーザーによるmount禁止
 - user：一般ユーザでmount可、アンマウントは本人のみ
 - users：mount・unmount共に誰でも可 

####★ﾌｧｲﾙｼｽﾃﾑを操作するコマンド
- btrfsコマンド
 - filesystem show：情報表示
 - subvolume create：作成
 - subvolume delete：削除
 - subvolume list ：一覧
 - subvolume snapshot：スナップショット作成
####★デバイスラベル、UUID、ﾌｧｲﾙｼｽﾃﾑのタイプ表示
- blkid
 - (Universally Unique Identifier)UUIDは「/dev/disk/by-uuid」で確認できる

####★swapについて
- swapを作成
 - mkswapコマンド

####★ファイルのマウント、アンマウトについて
- umountコマンド
 - -a：/etc/mtabのすべてをアンマウント
 - 指定した種類のすべてをアンマウント対象とする
- mountコマンド
 -指定なし：一覧表示 
 - -a：/etc/fstabにあるnoautoオプションのないもの全てをマウント
 - -o：続けてmountオプション指定
 - -t：ﾌｧｲﾙｼｽﾃﾑの種類を指定（ない場合はmountが自動で推測する）


####★ハードディスクを追加して利用する方法
- ハードディスクを物理的に追加した後の手順
- 物理で接続しデバイスファイルは(ex:/dev/sdb)認識されたものとする。
 - 1)fdisk：パーティションを切る
 - 2)mkfs：何らかのﾌｧｲﾙｼｽﾃﾑでフォーマット
 - 3)mount：マウントする

- パーティションを作成する形式2種類
 - MBR形式：基本パーティションは4つしか作成できない。
 - GPT形式

####★ハードディスクの問題発見、自己診断する機能
- SMART（Self-Monitoring, Analysis and Reporting Technology System)
 - 監視項目：読み取りエラーの発生率、ディスクのずれた距離など、その他多数
- smartd：このﾃﾞｰﾓﾝは定期的に監視し、問題発生時に管理者に通知するなどを行う
- smartctlコマンド：監視内容を確認する。

####★メモリ上のディスクbufferを確実に書き込ませたい
- syncコマンド
 - ディスクバッファの内容をすべて確実にディスクに書き込む。
 - (通常)書き込み命令は一時的にメモリ上のディスクバッファに保存し、溜まるとディスクに移す。

####★アンマウントに失敗するなど調査に使われるものは
- fuserコマンド
 - ファイルやﾌｧｲﾙｼｽﾃﾑを指定し、利用しているプロセスの一覧を得る

####★ゴミ箱のようなディレクトリ
- /lost+foundディレクトリ
 - どこからも参照できなくなったファイルが保管されるディレクトリ


###203.2◆ファイルシステムの作成とオプションの構成
####★オートマウントの動作の設定
- automountﾃﾞｰﾓﾝによるオートマウントとは
 - 特定のデバイスを必要な時だけ自動マウントし、利用できるようにする機能
- /etc/auto.master
 - あらかじめ、どのディレクトリにどのデバイス、ﾌｧｲﾙｼｽﾃﾑでmountするのか設定する
 - 直接マップ：マウントポイントは常に「/-」の表記

- 設定反映
 - /etc/init.d/autofs reload（ﾃﾞｰﾓﾝ）の再起動

####★ﾌｧｲﾙｼｽﾃﾑのブロック（単位）について
- データブロック
 - 実際のファイルを保持
- iノードブロック
 - 各ファイルにメタ情報（ファイル名、サイズ、アクセス件、所持者）を保持
 - ブロック内に複数のiノードが含まれる
- スーパーブロック
 - ﾏｳﾝﾄ回数やブロックサイズなど（ﾌｧｲﾙｼｽﾃﾑ全体にかかわる重要な情報）
 - 冗長化されている（復元はe2fsck -bで行う）

####★ディスクやファイルの暗号化
ブロックデバイスに対する暗号化と個別のファイルに対する暗号化
dm-crypt：ブロックデバイスの暗号化する。

- /dev/mapper配下の暗号化マッピングに対してﾌｧｲﾙｼｽﾃﾑを作成

- cyrptsetup [オプション][アクション][引数]コマンドを使う（以下アクション）
 - create ：マッピング名とデバイスを指定して暗号化マッピング作成 
 - remove ：マッピング削除
 - status ：マッピングの状態表示
- LUKSを使用する場合のcryptsetupコマンドのアクション
 - luksFormat：LUKS（暗号化）パーティションとして初期化
 - LuksOpen：LUKSパーティションを開く（デバイスとLUKSパーティション名を指定）
 - LuksClose：LUKSパーティションを閉じる
 - luksDump：デバイスの暗号化の状態を表示

####★DVDに標準的なフォーマットのファイルシステムイメージを作成したい。
- mkisofsコマンド
 - -o：イメージの出力先指定
 - -J：（Windows系）Jolietフォーマットで作成
 - -R：（UNIX系）RockRidgeフォーマットで作成
 - -udf：DVDで用いられる、UDFフォーマット

- UDFについて
 - 128BTまでの容量に対応
 - 書き込み単位/512バイト毎
 - ファイル名/Unicode（255文字）
 - ディスクが一部破損しても残りの部分を読み出せる
 - DVDやBlu-rayで使われている（ISO9660より高性能）

####★作成済みのファイルシステムを引数にとって動作するコマンド一覧
- tune2fs：etx2~4の設定を行う
 - -c：自動fsckまでのmount回数を設定
 - -i：自動fsckまでの時間を設定
 - -j：ext2をext3に変換（ジャーナリングを付与）
 - -l：スーパーブロックの内容を出力（dumpe2fsと同様）
 - -m：root用予備領域の割合を設定
 - -L：ラベルをつける。
- e2label：etx2~4のラベルを操作
- dumpe2fs：etx2~4詳細を表示
- debugfs：etx2~4の対話的デバッグ
- xfs_admin：xfsの設定
- xfs_info：xfsの情報を表示

####★ﾌｧｲﾙｼｽﾃﾑをチェックするには
ファイルシステムをチェックするコマンド一覧

- etx2~4
 - e2fsck, fsck.ext2, fsck.ext3, fsck.ext4
- xfs
 - xfs_check, fsck.xfs



- fsck -t [種類]
 - ex)種類「ext2」を指定した場合、「fsck.ext2」コマンドが呼び出される。

- e2fsckコマンド
 - -b：スーパーブロックを使い復元する
 - -c：不良ブロックのチェック
 - -p：自動的に不良ブロックを修復


####★ﾌｧｲﾙｼｽﾃﾑを作成するには
ファイルシステムを作成するコマンド一覧

- etx2~4
 - mke2fs, mkfs.ext2, mkfs.ext3, mkfs.ext4
- xfs
 - mkfs.xfs
- iso9660
 - mkisofs

- mke2fsコマンド
 - -j：ext3として作成
 - -b：部特区サイズとByte単位で指定
 - -m：root用予備領域の割合を指定
 - -L：ボリュームラベルを指定
 - -n：実際には実行せず確認のみ
 - -t：ﾌｧｲﾙｼｽﾃﾑの種類を指定
- mkfs -t [種類]
 - ex)種類「ext2」を指定した場合、「mkfs.ext2」コマンドが呼び出される。

####★ジャーナリング機能について
- ジャーナリングとは
 - 実データをディスクに書き込む前にメタデータ専用の領域に書き込んでおく
 - 不正にシステム終了することでファイルシステム内での整合性がとれなくなるのを防ぐ
- ファイルシステムの整合性チェック、修復を助ける機能

####★XFS関連のコマンド一覧
- xfsrestore：バックアップからXFSファイルの復元
- mkfs.xfs：作成
- xfs_admin：設定
- xfs_check：チェック（今は非推奨）
- xfs_info：情報表示
- xfsdump：XFSのバックアップ
- xfs_repair：XFSファイルシステムを検査、修復する

##高度なストレージ管理(主題204)
###204.1◆RAIDの構成
####★RAIDを構築・管理する時に使うコマンド一覧
　mdadm（multiple devices administration)コマンド
　/dev/md

- 設定ファイル：/etc/mdadm.conf

- --manage：構成するデバイスの追加や削除
 - -a(--add)：デバイスの追加
 - -r(--remove)：削除
 - -f(--fail)：不良マーク付与（故障しているという扱いになる）

- -C(--create)：RAIDを新規に作成
 - -l(--level=)：RAIDレベルを指定
 - -n(--raid-devices=)：利用するデバイス数を指定
 - -x(--spare-devices)：予備デバイス数を指定

- (--misc)：その他さまざまな機能、以下のオプションが見つかると自動的にmiscモード
 - -Q(--query)：RAIDの状態を表示
 - -D(--detail)：RAIDの詳細情報を表示
 - -S(--stop)：RAIDを停止

・Assembleモード：その他いろいろとモードと機能がある。

- RAIDアレイの状態を確認するには
 - cat /proc/mdstat

####★RAID構築の際、デバイスに設定必要なパーティションタイプ
- 0xfd
 - fdiskコマンドでパーティションタイプを変更する。

####★RAIDについて
- RAID0：ストライピング
 - 書き込み、読み込みがHDDの数だけ早くなる（シーケンシャルアクセス）
- RAID1：ミラーリング
 - HDDをいくら使っても、容量は1台分 
 - 冗長化
- RAID5
 - 3台以上でRAIDを組み、容量は1台分引いた数
 - 冗長化

###204.2◆記憶装置へのアクセス方法の調整

####★SSDについて
メリット

- ランダムアクセス性能に優れる
- 省電力・静音
- 非接触メディアであるため、耐振動・衝撃性が高い

SATAを使用するAHCIが主流だったが、PCIExpressバスを使ったNVMeという規格が生まれた。

- NVMeデバイスについて
 - 「/dev/nvme0」、「/dev/nvme0n1p1」
 
####★iSCSIについて
- iscsid（デーモン）
 - ローカルデータベースに登録済みのiSCSIターゲットが自動ログインするときに働く。
- iscsi（デーモン） 
 - ターゲットのパラーメータ設定：node.startup 、automatic
 - iscsiターゲットをサーバ起動時にマウントするには「/etc/fstab」にオプション「_netdev」を加える


- iscsiadmコマンド：イニシエータからターゲットへアクセスし、デバイスとして使用可能にするために必要
 - -m(--mode モード)：discovery(接続先の一覧取得）、node(登録済み一覧取得）、session（セッション一覧取得）
 - -l(--login)：(nodeモード時)ログイン
 - -u(--logout)：（nodeモード時）ログアウト
 - -t(--type=タイプ)：(discoveryモード時）タイプ指定！主に「sendtargers：ターゲットをイニシエータに送信」を指定
 - -p(--portal=IPアドレス[:ポート]）：接続先指定（デフォルトのポートは3260）
 - -T(--targetname=IQN)：ターゲット指定
-設定ファイル：iscsid.conf
####★ハードディスクのパラメータを取得・設定
- hdparmコマンド
 - -i：詳細情報を表示（IDE）
 - -I：ドライブから直接詳細情報を得る
 - -c0：32bit　I/Oをオフ
 - -c1：オン
 - -d0：DMAモードをオフ
 - -d1：オン
 - -t：BufferCacheオンで読み速度計測
 - -T：BufferCacheのみで読込速度計測
 - -W0：ライトキャッシュのオフ
 - -W1：オン


####★転送モードについて
- IED（ATA)
 - ハードディスクや光学ドライブを接続するための企画

- 転送モード3種類
 - PIOモード：原始的、IDE接続したデバイスからメモリへデータ転送する、CPUに負担
 - DMAモード：CPUではなくDMAコントローラが転送処理を行う。CPUを使わないため、比較的高速で負担がない
 - IltraDMA：DMAがさらに高速転送化されたもの


####★WWWIDを確認する方法
- /usr/lib/udev/scsi_id

####★ハードディスクの情報として、型番・設定転送モード・パーティションの数を知る３つの方法
- hdparm -i /dev/hda
- fdisk -l /dev/da
- hdparm /dev/hda


###204.3◆論理ボリュームマネージャ
####★論理ボリュームの作成の仕方
- lvcreateコマンド
 - -L：ボリュームサイズを指定
 - -n：論理ボリューム名を指定
 - -s：スナップショットを作成

####★論理ボリュームのサイズ縮小
- vlreduce
 - 事前に縮小後のLVサイズに合わせてﾌｧｲﾙｼｽﾃﾑをリサイズする必要がある

- （拡張含む）ファイルシステムのリサイズ
 - resize2fsコマンド：ext2~4
 - resize_reiserfsコマンド：ReiserFS
 - xfs_growfsコマンド：XFS

####★LVMの検索の検索フィルター
- lvm.conf
 - 正規表現を用いて指定できる
 - 検索にはvgscan（VG)という検索コマンドが動作する

####★LVMで使用しているデバイスにアクセスできるデバイス名
- デバイス名（3種）
 - /dev/mapper/VG-LV
 - /dev/VG/LV
 - /dev/dm-1
- Devicemapper（デバイスマッパー）とは
 - 仮想的なブロックデバイスを実現させるために使われる機能。

####★LVMのスナップショット機能
- スナップショット
 - 差分を利用する。
 - スナップショット領域を使い切るとスナップショットが破壊されるから注意
 - 元ボリュームの10-30%で作る

####PVとPEについて
- PV
 - 物理ボリューム
 - データ領域
- PE
 - 物理エクステント
 - 領域の単位 


##ネットワーク構成(主題205) 
###205.1◆基本的なネットワーク構成
####★arpコマンドのオプション
- arp：ARPキャッシュ（IPアドレスとMACアドレスの対応関係テーブルに保持）
 - デフォルト：逆引きする 
 - -i：表示対象のインタフェースを指定
 - -a：表示対象のホスト名を指定
 - -d：削除対象のホスト名を指定
 - -n：IPアドレスのまま表示（逆引きしない）
 - -s：IPとMACアドレスの対応を指定してキャッシュに追加
 - -f：ファイルを指定し、内容をキャッシュに追加（ﾃﾞﾌｫﾙﾄ：/etc/ethers）

####★ネットワーク関連設ファイル（/etc/配下）
/etc/

- sysconfig/network：（RedHat）全体とホスト名
 - IPv6の使用を有効かする項目：NETWORKING_IPV6
- sysconfig/network-scripts/ifcfg-[ｲﾝﾀｰﾌｪｲｽ名][0-9]：（RedHat)デバイス別
- network/interfaces：（Debian）全体とデバイス
- hostname：（Debian）ホスト名
- hosts：ホスト名とIPアドレスの対応
 - 書式：IPアドレス ホスト名
- networks：ネットワーク名とネットワークアドレスの対応
- nsswitch.conf：名前解決の優先順位
- resolv.conf：名前解決に使うDNSサーバ

####★iwコマンド
iwコマンド：無線の情報取得・設定

 - dev [ｲﾝﾀｰﾌｪｲｽ名]：ｲﾝﾀｰﾌｪｲｽ名を引数に、ｲﾝﾀｰﾌｪｲｽの情報の表示設定をする
  - link：無線の接続状況表示
  - scan：接続可能な無線APをスキャン
  - connect/disconnect：ESSIDをして接続/切断
  - station dump：統計情報を確認
 - phy [ﾃﾞﾊﾞｲｽ名]：ﾃﾞﾊﾞｲｽ名を引数に、デバイスの情報や設定を行う
 - （phy#[ﾃﾞﾊﾞｲｽ番号]：#の場合はデバイス番号）
  - interface add/del：ｲﾝﾀｰﾌｪｲｽを追加・削除
  - info：ﾃﾞﾊﾞｲｽの使用可能な情報等を表示

####★無線LANインタフェースの設定
- iwconfigコマンド
 - （指定なし）：現在状態を表示
 - essid：ESSIDを指定
 - key：WEPキーを指定

####★無線LANインタフェースの使用可能アクセスポイント表示
- iwlist [インタフェース名] scan(ning)
 - リンクの品質や信号強度も確認できる（iwconfigも同様）

####★ipコマンド
ipコマンド：ifconfig,route,arp等の機能を備えた非常に広範囲なコマンド

- 「-4」「-6」：指定したアドレスがIPv4かv6のどちらかが明確であれば省略可
- link：ネットワークデバイス
 - up , down , set , show
- addr（address）：ネットワークプロトコル
 - add , delete , show
- route：ルーティング
 - add , delete , show
- neigh（neighbour）：ARP等
 - add , delete , show
- ※デバイスを指定しないと「show」と同じ表示結果になる。
- ipコマンドは省略できる（`$ ip r s`と`$ ip route show`は同じ）

####★ifconfigコマンド
- ifconfigコマンド：ネットワークインタフェースの操作
 - （指定なし）：現在状態を表示 
 - -a：無効になっているインタフェースも表示 - up：有効か
 - down：無効か
 - IPv4アドレス：IPv4を割り当て
 - netmask：ネットマスクを指定
 - inet6 add [IPv6ｱﾄﾞﾚｽ] [/ﾌﾟﾚﾌｨｯｸ長]：IPv6を追加
 - inet6 del [IPv6ｱﾄﾞﾚｽ] [/ﾌﾟﾚﾌｨｯｸ長]：IPv6を削除

####★インタフェースに追加でIPアドレスを設定する
- ipコマンド
 - ip addr add [IPアドレス/ﾌﾟﾚﾌｨｯｸ長] dev [ｲﾝﾀﾌｪｰｽ名]
 - (ex)ip addr add 192.168.200.1/24 dev eth0

- ifconfigコマンド
 - ifconfig [(ex:eth0:0)ｴｲﾘｱｽ名] [IPアドレス/ﾌﾟﾚﾌｨｯｸ長] 
 - (ex)ifconfig eth0:0 192.168.200.1/24

####★無線のアクセルポイントを使ってネットワーク接続する
- iwコマンド
 - iw dev [ｲﾝﾀﾌｪｰｽ名] connect [識別名]
- iwconfigコマンド
 - iwconfig [ｲﾝﾀﾌｪｰｽ名] essid "[識別名]"
 
###205.2◆高度なネットワーク構成とトラブルシュート
####★通信の監視コマンド
- tcpdump
 - host, port,tcp,udp,icmp,arp
 - src：指定した送信元からのパケットを対象
 - dst：指定した送信先へのパケットを対象

####★ホスト名に関する情報
- nslookup：DNSでホスト名とIPアドレスを変換
- dig：nslookupより詳細な情報
- hostname：自ホストのホスト名表示
 - -d（DNS）,-i（IPアドレス）,-f（完全修飾ドメイン）,-a（エイリアス）

####★ネットワーク構成の種類
- マルチホーム接続　
 - １つのホストに複数のIPアドレスを割り当てる
 - （マルチホーム：外部へ接続する際に、複数の経路を使って接続すること）

####★ネットワーク関連のユーティリティコマンド（８種類）
- ping：疎通の確認
- traceroute：経路の確認
- tcpdump：ネットワークの監視とパケットをキャプチャ
- netstat：ネットワークに関連した様々な情報表示
- ss：netstat同様、後継コマンド
- nc：TCP/UDPを利用し、様々な低レベルの操作を行う
- nmap：ネットワークのスキャン
- mtr：疎通と経路の確認（pingとtracerouteを合わせた動作）
 - レポートの形で生成（パケットロスや￥、レイテンシ）

####★nmapコマンド
- スキャンタイプ（３種）
 - -sT（TCPスキャン）,-sU（UDPスキャン）,-sP（Pingスキャン）
- オプション（３種）
 - -p（ポート範囲を指定）,-F（有名ポートを高速スキャン）,-O（OS認識を試みる）

####★ssとnetstatのオプション比較
- 共通オプション
 - -a：全てのソケット表示
 - -l：接続待ちのソケットを表示（LISTEN）
 - -n：名前を解決せずに数値で表示（NUMBER）
 - -t：TCPソケットを表示
 - -u：UDPソケットを表示
- 異なる意味のオプション
- netstatコマンド（３種）
 - -c：毎秒更新して最新情報を表示
 - -i：インターフェイスの統計表示
 - -r：ルーティングテーブルを表示
- ssコマンド（２種）
 - -i：内部TCPの情報表示
 - -r：名前解決を実施

####★デフォルトゲートウェイの設定（２種類）
- ip route
 - ip route[ add/del] default via デフォルトゲートウェイのIP
- route
 - route add default gw デフォルトゲートウェイのIP

####★ルートの削除
- ip route
 - ip route del 宛先アドレス [via ゲートウェイのアドレス]
- route
 - route del [-host/-net] 宛先アドレス [gw ゲートウェイのIP]

####★TCPラッパーを使ったアクセス制御の設定
- TCPラッパーとは
 - ネットワークサービスに対するアクセス制御するプログラム
 - デーモン：tcpd
 - 使用ライブラリ：libwrap
 - 即時反映
- 使用するファイル
 - /etc/hosts.allow（記述）サービス名：ホスト名/IPアドレス：ALLOW/DENY
 - /etc/hosts.deny

　両ファイルの設定がない場合、全許可
　通常時、.denyファイル記述「ALL:ALL」で拒否し、.allowファイルで接続を許可する
　.allowファイル：①サービス名：ipアドレス/ネットマスク②サービス名：ipアドレス（省略版）
####★NetWoekManagerとは
- 自動的に適切なネットワークの設定を行うプログラム
- GUIで操作可能
- ノートPCや移動式デバイスでは、ネットワーク環境を切り替えるのに便利

##システムの保守(主題206)
###206.1◆ソースからのmakeによるインストール
####ソースファイルのコンパイルからインストールの手順
- 実行手順
 - 1)./config
 - 2)make
 - 3)su
 - 4)make install

- make install時に共有ライブラリ読み込めていない場合
    - 環境変数LD_LIBRARY_PATHを編集する必要がある

- make install時にルート権限がないため失敗した時の対処
    - 「./configure --prefix」をユーザのホームディレクトリを指定して実行

####★複数のソースファイルに修正を行いコンパイルする前に行うこと
- 前回make時に作られた一時ファイルの削除
    - make clean

####★patchコマンド
- (一般的)patch [オプション] < パッチファイル
- cat パッチファイル ｜ patch [オプション]
- patch [オプション] 対象　パッチファイル
    - -pN：Nは削る階層数（-p0:修正なし,-p1:先頭ディレクトリ削る...)
    - -d：パッチ適用時、作業ディレクトリ指定
    - -R：逆にパッチを当て、変更を取り消す
- diff(差分情報)を使ってファイル内容を更新する

####★アーカイブを作成したり、展開、解凍する
- tar
    - -c：作成
    - -x：展開
    - -f：ファイル指定
    - -t：内容表示(test)
    - -v：処理の詳細表示（抽出時の情報を表示）
    - -z：gzipを圧縮/解凍
    - -j：bzipを圧縮/解凍
    - -J：xzを圧縮/解凍

- ファイルから特定の文字列だけ抽出する方法
    - (-v)「＊[文字列]＊」
    - (-v)「--wildcards ＊[文字列]＊

####★圧縮/解凍コマンドのオプション
- ~zip
    - -d：解凍できる
    - -c：解凍結果を標準出力に書き出す（「｜パイプ」を使うことでpatchに流せる）
- ~unzip
    - -c：解凍結果を標準出力に書き出す（「｜パイプ」を使うことでpatchに流せる）

####★GNUのmakeが探す指示ファイルの順と場所
- 探すファイル名
    - GNUmakefile
    - makefile
    - Makefile

- Makefileに含まれるターゲット３種類
    - install
    - clean
    - uninstall

####★installの役割２つ
- 指定されたファイルのコピー
- 実行

####★patchコマンドで適用失敗した時、差分情報の出力先
- 差分情報出力先
    - 該当ファイル.rej

###206.2◆バックアップ操作
####★データをコピー（バックアップ）するコマンド
- ddコマンド
    - if=：入力ファイル・デバイス指定
    - of=：出力ファイル・デバイス指定
    - bs=：入出力のブロックサイズを指定（デフォルト512バイト）
    - count=：入力ファイルから出力ファイルへコピーする回数

- デバイスに格納されたデータの消去（２種類）
    - 「if=/dev/zero」を指定する（/dev/zero：16進数0x00を生成する）
    - 「< /dev/urandom >」で書き込む（/dev/urandom：擬似乱数を生成する）

####★ネットワーク経由でデータをコピーするコマンド
- rsyncコマンド
    - -a：パーミッション、所有者情報、ファイル、ディレクトリの情報保持
    - -e：転送方式を指定（rsh、ssh）※デフォルトでrsh転送
    - -v：詳細情報を表示
    - -z：圧縮して転送
    - --delete：送信元で削除したファイル、ディレクトリを送信先でも削除

####★ネットワークを利用したバックアップシステム（オープンソース）
- バックアップシステム
    - Amanda
    - Bacula
    - BackupPC

####★テープドライバを制御するコマンド
- mt -f
    - fsf n：nファイル分、テープを進める
    - bsf n：nファイル分、テープを戻す

- テープデバイスの種類
    - /dev/st：自動的に巻き戻される（SCSI接続）
    - /dev/nst：複数書き込みに適している。巻き戻しされない（SCSI接続）

####★バックアップメディア一覧
- 磁気テープ
    - 大容量（数十〜数百GB）で単価が安い
    - 記憶装置の初期費用が高い
    - テープの摩擦、たるみ等劣化があり、定期的なメンテナンスが必須
- 光学メディア
    - CD-Rなど
    - １枚単価は安く、持ち運び容易
    - １枚のデータ容量が小さい
    - 熱、湿気、紫外線などに弱い
- ハードディスクドライブ
    - 大容量（数十〜数百GB）
    - 転送速度が高速
    - ハードウェア障害に弱い

###206.3◆システム関連問題のユーザへの通知
####★ログインユーザーにメッセージを表示させる方法
- wallコマンド
    - 最も簡単な通知コマンド
    - ex)システムのシャットダウン前の告知などを目的

- shutdown -kコマンド
    - wallコマンドと同様の目的でしようする

- /etc/motd
    - ログインしたユーザのコンソール画面に指定内容を表示させる
    - ex)システムに重要な変更が加わったときなど

- /etc/issue
    - ログイン画面に表示させる
    - ex)今後システムメンテナンス予定日のお知らせを掲載したいなど

- systemctl rescueコマンド
    - 最も素早く通知メールを送信できる
    - オプション指定なしの場合ローカルシステムの全ユーザに警告メッセージ送信
    - ほぼ同様のコマンド「systemctl isolate rescue.target」


##※注意書き
最後まで見ていただきありがとうございました。
備忘録の部分でまとめた内容を全暗記しても、
資格試験に全セクション各正答率100％を保証できません。
1日のふとした時に見る、試験前に１点でも稼ぎたい時に見る
など、色々の用途で自分なりに勉強した上でこの記事を上手に活用してくれれば
嬉しいなと思います。

同じように、資格勉強を頑張る人の「為」になれたらと思っております。

##※お願い
備忘録の部分で、もしも間違いがあった場合
教えていただけると助かります。また、編集申請も気軽に送って頂いて構いません。