LoginSignup
3
4

More than 3 years have passed since last update.

Linux-LPIC201-要点整理

Last updated at Posted at 2020-05-20

LPIC-level1を先週取得したので、続けてlevel2を受験する。そのため試験範囲の要点を下記にまとめる。

1. キャパシティプランニング

リソース使用率

  • top
    • 総合的に見れる
  • vmstat
    • メモリ/仮想メモリの状態
    • vmstat 5 3 (5秒毎に3回出力)
    • r -> 実行待ちプロセス数
    • b -> 割り込み不可プロセス数(0が好ましい)
    • wa -> cpuのIO待ち時間
    • buff/cache -> バッファキャッシュ/ページキャッシュ(多くても問題ない)
  • iostat
  • iotop
    • topっぽくI/Oを見る プロセス毎のIO情報
  • sar
    • system activity report -> システム統計のレポート、多機能
    • sar -b -f /var/log/sa/saXX -> XX日のレポートを表示
  • sadf
    • different format -> sadcのログをCSV, TSV, XMLなどで出力(trと組み合わせるなど)
  • uptime
  • w
    • ログイン中ユーザー、プロセスがわかる
  • ps
  • pstree
  • lsof
    • プロセス、ポートの状態
  • free
    • メモリとスワップ
    • freeが少なくてもcacheが大きければ問題ない
    • /proc/meminfo -> 詳細なメモリ情報
  • df
    • ファイルシステム毎、ディスクの使用量が分かりやすい
  • netstat
  • ss
    • netstatの代替で、ほぼ同じ
  • netserver
    • サーバー側
  • netperf
    • クライアント側
  • iptraf
    • トラフィックをモニター

リソース監視ツール(覚えられません)

  • collected
  • Nagios
  • MRTG
    • Traffic Grapherなのでトラフィックをグラフ化してくれる
  • Cacti
  • Icinga2

その他リソース管理に関して

  • 特定のパーティションにIO集中でボトルネック -> そこだけ高速なストレージに変えてみる
  • カーネルの再構築/カーネルパラメータを調整する
  • swapon -s -> スワップについて確認してみる(/proc/swaps)

2. Linuxカーネル

バージョン

  • 4.9-rc1 -> rcはRelease Candidate(開発版)
  • バージョンの確認方法 ①uname -r ②/proc/versionファイル ③Makefileを見る

カーネルイメージ

カーネルモジュール

  • カーネルから一部機能を切り離しモジュール化(.ko) -> カーネルがコンパクトになり起動時間やメモリを節約
  • lsmod
    • /proc/modulesと同じ
  • modinfo
  • insmod
  • rmmod
  • modprobe
    • 依存関係を解決しながらロード/アンロードしてくれる
    • depmod -> modules.depファイル(モジュール1.ko: モジュール2.ko モジュール3.ko)
    • 前処理やエイリアス付けたい -> /etc/modprobe.conf or /etc/modprove.d/ファイルで設定しておく
    • ex. alias eth0 r7257
    • kmod -> カーネルの機能で、モジュールが必要になったら自動でロードしてくれる

カーネルのコンパイル

  • ソースコード -> /usr/srcらへん
  • バージョンアップの方法 -> ①cp /boot/congig...x86-64 .config (前設定ファイルを.configにコピー) -> ②make oldconfig
  • カーネルの設定 -> make menuconfig
  • コンパイル -> make
  • カーネルモジュールとカーネルのインストール -> make modules_install -> make install
  • /bootにイメージができてるのでデフォルトのカーネルにしておく
  • DKMS -> Dynamic Kernel Module Support(サードパーティのカーネルモジュールを自動的にビルドしてくれる)
  • make clean make mrproper

カーネルパラメータ(/proc/sys/)

  • sysctl [-w] net.ipv4.ip_forward=1(再起動で消える) / /etc/sysctl.confに書く(永続)

初期RAMディスク

  • initrd / initramfs(cpioアーカイブ + 圧縮)
  • 初期RAMディスクの作成 -> mkinitrd / mkinitramfs
  • 最新のCentOS -> dracutコマンドでinitramfsが/boot以下に作成できる

カーネルの管理と問題解決

  • lsdev
  • lspci
    • lspci -s 2:0 -> 2番バス、0番スロット
  • lsusb
  • ブロックデバイス -> b/ブロック単位/ランダムアクセス/HDD, RAMディスク, RAIDボリュームなど
  • キャラクターデバイス -> c/キャラクタ単位/ランダム不可/キーボード, マウス, 端末など
  • カーネルが認識しているデバイスが見たい -> /proc/devices
  • udev/sysfs -> /etc/udev/rules.d/60-raw.rulesなど
  • sysfsがどのようにデバイスを扱っているか -> udevadm infoで確認(識別に使う)
  • rulesファイルの識別キー=値にマッチ -> 指定したルールでデバイスファイルが作成される
  • デバイスの検知をモニタリング -> udevadm monitor

3.システムの起動

起動プロセス

  • BIOS/UEFI
  • ->MBR(ブートローダの一部 + パーティションテーブル)/GPT
  • ->MBRのブートローダが二段階目のブートローダを起動
  • ->指定されたパーティションからカーネルをロード
  • -> ルートパーティションのマウント、/sbin/initの起動

SysVinit

  • initが /etc/inittab を読み込む
  • -> /etc/rc[0-6].d/S85httpdなど
  • -> ログインプロセス起動して終了
  • chkconfig
  • update-rc.d
  • insserv

systemd

  • Unit(service/device/mount/swap/target) = 処理単位
  • 最初に /etc/systemd/system/defalt.target Unitが処理される
  • -> /lib/systemd/system/XX.targetへのシンボリックリンクになっている
  • 稼働しているサービスの確認 -> systemctl list-units --type=○○
  • /etc/systemd/system/multi-user.target.wants/Unit設定ファイル達(postfix.serviceなど)
  • journalctl
    • /var/run/log/journal -> 再起動で消失 -> /etc/systemd/jornald.confでpersistent設定

ブートローダ

GRUB

  • grub-install
  • /boot/grub/menu.lst
  • root (hd0,0) -> /dev/sda1のこと
  • 対話式シェル -> grub

GRUB2

  • grub2-install
  • /etc/default/grub -> grub(2)-mkconfig -> /boot/grub/grub.cfg
  • 対話式シェル -> grub2

起動オプション(起動時に[e]キー)

  • ルートファイルシステムの指定 -> linux /boot/vimlinuz-.4.4.0 ro root=/dec/sda1
  • 起動オプションの確認 -> /proc/cmdline

システムの回復

  • インストールCD/DVD-ROMからレスキューモードで起動
  • rpmコマンドなどルートディレクトリを指定しないといけなくなる -> chrootでルートディレクトリの変更
  • GRUBの設定ファイルを直す -> grub(2)-mkconfig

その他ブートローダ

  • SYSLINUX
    • USBメモリやCD-ROMからのブート
  • PXEブート
    • ネットワークブート
    • TFTP/DHCP/HTTP/NFS

4.ファイルシステム

操作

  • /etc/fstab
    • UUIDの確認 -> blkid
    • マウントオプション
    • noatime -> iノードのアクセス時刻を更新しない = 高速化
    • auto
    • suid
    • user
    • users
    • defaults -> async/auto/dev/exec/nouser/rw/suid
  • カーネルがサポートしているファイルシステムは? -> /proc/filesystems
  • どのファイルシステムがマウントされてるか -> /etc/mtab = /proc/mounts
  • mount / umount
  • 再マウント -> mount -o remount /data
  • sync -> メモリ上のディスクバッファ領域にあるデータをディスクに書き込む
  • ファイルにスワップ領域を作る手順↓
    • dd if=/dev/zero of=/tmp/swapfile bs=1M count=500
    • mkswap /tmp/swapfile
    • swapon /tmp/swapfile
  • スワップ領域の確認 -> swapon -s または cat /proc/swaps

作成

ext

XFS

Btrfs

  • btrfsの使用状況の確認 -> btrfs filesystem df /mnt
  • btrfsでスナップショット -> btrfs subvolume snapshot A B

CD/DVD

暗号化ファイルシステム

保守

  • スーパーブロックのバックアップから修復 -> e2fsck -b 8193 /dev/sda2

5.高度なストレージ管理

RAID

  • mdadm
  • 状態 -> /proc/mdstat
  • 設定 -> /etc/mdadm.conf
  • [_U]
  • RAIDの構築 -> mdadm --create /dev/md0 --level 5 --raid-devices 3 A B C

LVM

作成

  • パーティションの準備(parted) -> 物理ボリューム作成(pvcreate) -> ボリュームグループ作成(vgcreate) -> 論理ボリューム作成(lvcreate) -> ファイルシステム作成(mkfs) -> マウント(mount)

管理(reduce/remove注意)

  • pvdisplay
  • pvscan
  • vgextend
  • pvmove
  • vgreduce
  • pvremove
  • vgdisplay
  • lvdisplay
  • lvextend -> e2fsck -> resize2fs(extファイルシステムの場合)
  • xfs_growfs
  • lvremove
  • スナップショット(lvcreate -s) -> バックアップ(dump 0uf)
  • 変更があるとスナップショット領域が膨らんでいく

ハードディスク管理

  • hdparm(IDE) / sdparm(SATA/SCSI/USB)

SSD

  • 磁気ディスクではなくフラッシュメモリに記録
  • 削除時は実際にデータを消すのではなくフラグつけるだけ -> パフォーマンス低下 -> fstrim -v /

iSCSI

  • internet + SCSI
  • イニシエータ -> ターゲット

6.ネットワーク

  • ifconfig
  • arp
  • ping
  • traceroute
  • tcpdump
  • netstat
    • netstat -l -> linteningのソケットのみ表示
    • netstat -i -> インターフェースごとに表示
  • ss
  • nc
    • nc -vz ipアドレス 1-1000 -> 1-1000の範囲をポートスキャン
  • ip [link/addr/route/neigh] [show/add]
  • route [add/del]
  • iwconfig
  • iw dev
  • iwlist
  • nmcli/nmtui
  • mtr = my trace route -> 操作

7.システムメンテナンス

ソースからソフトウェアインストールをする

  • patch -p0
  • patch -p1
  • -Rオプション
  • 手順
    • ソースコードアーカイブを入手・展開(1.tar 2.gunzip ; tar 3.gzip -dc | tar)
    • (patchファイルがあれば適用)
    • ./configure でMakefile作成
    • make でコンパイル
    • sudo make install でインストール (all/install/clean)
    • /usr/local/bin に配置される

バックアップ

  • 種類

    • 完全
    • 差分(フルバックアップと最新の差分バックアップがあれば復元できる)
    • 増分
  • ローカルへのバックアップ

    • tar
    • cpio
    • dd
    • dump/restore
    • mt -> ex. mt -f /dev/st0 fsf 5 -> テープを現在位置から5つ先のデータまで早送り
  • リモートへのバックアップ

    • rsync -auvz --delete -e ssh dir username@hostname:/backupdir

ユーザーへの通知

  • /etc/motd
  • /etc/issue
  • /etc/issue.net
  • wall

番外編.virtualbox

ネットワーク

  • 設定をNAT->ブリッジにしておく
  • ifup インターフェース名
  • ping で通信してみる
3
4
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
3
4