LPIC 201 ストレージ関連
RAID
mdadm -C(--create)⇒-l(--level) -n(--raid-devices=) -x(--spare-devices=) --manege⇒-a -r -f(--fail) --misc -Q(--query) -D(--detail) -S(--stop)
/proc/mdstat
LVM
lvcreate -s(napshot) -L(サイズ) -n(ame)
mount /dev/vg1/lv1 /home ← こうなる
その他デバイス関連
scsi_id → WWIDを調べる(/proc/scsi/scsi)
LUN(Logical Unit Name)
サーバから1台のHDDと認識される、記憶装置を識別するための論理的な単位
iscsiadm ターゲット(サーバ)とイニシエータ(クライアント)
iscsiadm -m discovery -p 192.168.1.1 -t sendtargets
fstabには起動時マウントするため_netdevオプションを入れる
iscsiデーモンがいて、自動ログインを管理する(iscsid.confにnode.startup automaticの場合自動ログイン)
hdparm -d(dmaモードオンオフ) -c(32ビットオンオフ) -i(情報) -tT(timing 速さ計測大文字はキャッシュ)
PIOはProgrammed Input/Output ⇒ホストCPUで
DMA は(Direct Memory Access) ⇒コントローラ使用
LPIC 201 ファイルシステム関連
fstabについて
/etc/fstabの中身
デバイス名 マウント場所 タイプ オプション dump(バック) fsckチェック順
dump ⇒ 1でバックアップ対象 0で対象外
fsckチェック ⇒ 0で対象外 1~ 順番にチェック
※shutdown -r -F now ←-Fで起動時にチェック
マウントオプション
default ⇒ rw,suid,dev,exec,auto,nouser,async
user(nouser) 一般ユーザーでのマウント可否 ※users mount者以外でもumount可
auto(noauto) mount -a実行時のマウント有無
async(sync) そのファイルシステムI/Oの非同期
exec(noexec) バイナリの実行ファイルを実行可否
ro(rw) リードオンリー(リードライト)
suid(nosuid) すてぃっきービットの可否
atime(noatime) inodeのアクセス時刻更新有無(ファイルシステムへのアクセス毎)
uid=~ マウントしたファイルシステム上のファイル所有者を指定
mount デバイス マウント先 (umount デバイスorマウント先 ←片方)
引数なしで/etc/mtabや/proc/mountsと同じ内容表示
片方だけの引数⇒fstabを参考に自動でマウント(デバイス・マウント先・タイプ)
mount -a(ll noauto以外) -t(ype) -o(ption 上記オプション)
umount -a(ll mtab) -t(ype)
fuser コマンド⇒ 使用中のプロセス確認
ファイルシステムの種類
ext2・3 linux最標準(3はジャーナリング機能あり)
ext4 RHEL6 1EiB(大容量)サポート
xfs RHEL7 (シリコングラフィックス社作成)
btrfs スナップショットが取れる新しい(b-tree)
iso9660 CD/DVDなど
nfs ネットワーク越しでマウントできる
ntfs 最近のwindows
tmpfs メモリ上に展開 一時的で消えちゃう
sync メモリのディスクバッファにある内容をディスクに書き込む
※最近のumountやshutdownはコマンド内部でsyncを行っている
/lost+found ディレクトリ ⇒ fsckで認識できなくなったファイル保管場所
swapについて
dd if=入力ファイル of=出力ファイル名 その他ブロック数などbs= count=
※/dev/zero ⇒ null文字がいっぱいのファイル
/dev/urandam ⇒ 疑似乱数
dd if=/dev/zero of=/tmp/swapfile bs=1M count=2048 完全に消すときは上書きで
mkswap
swapon
swapon -s(表示)もしくはcat /proc/swaps
swapoff
S.M.A.R.T.(Self-Monitoring Analysis and Reporting Technology)について
ハードディスクの自己診断機能
smartctl -a(ll) -t(est self) -l(og type) -H(ealth) コマンドで情報を表示
オートマウントについて(CD/DVDなど)
普段はアンマウント ⇒ アクセスがあったときにマウント開始
automountデーモン(サービス名autofs)
・/etc/auto.master 設定ファイル ※設定変更後autofsの再起動が必要
マウントベース マップファイル オプション
/mnt/auto /etc/cdrom --timeout=60
・/etc/auto.~ 各マップファイル
マウントベース下ディレクトリ マウントオプション デバイスファイル名
cdrom -fstype=iso9660,ro :/dev/cdrom
⇒/mnt/auto/cdromというディレクトリがマウントポイントになる
(masterとマップファイルの1カラム目のディレクトリが自動作成される)
ファイルシステムの管理
ext2/ext3の構造 ブロックグループ(データb、iノードb、すーばーb)ext系はinodeに限りがある
iノードb ⇒ メタデータ(ファイルタイプやアクセス権など128byte)
スーバーb ⇒ ファイルシステム系の情報(データブロックサイズ、マウント回数など)大事なので自動でバックアップあり
mke2fs -n ⇒確認のみ
mke2fsコマンド(mkfs.ext2,3,4,xfs,reiserfs,vfat,minix、mkisofs)-j -b(lock) -m(root予備) -L(abel) -t(ype) -n(確認のみ) ⇒mkisofs -R →RockRidge形式 -J →joliet形式
e2fsckコマンド(fsck.ext2,3,4、xfs_check、fsck.xfs) -c(heck) -b(lock 指定のブロックを使用し修復) -p(自動修復)
tune2fsコマンド -jでext2⇒ext3へ変更できる
dumpe2fs (tune2fs -lと同じ?)
resize2fs (lvでextendした時など)
badblock (e2fsck -c)
cdrecord → CDに書き込める
xfs関連
xfs_admin 設定(tune相当)
xfs_info 情報表示(dump相当)
xfs_check チェック(fsck相当)
xfsdump(xfsrestore) バックアップ(リストア)
暗号化ファイルシステム Linux標準
LUKS(Linux Unified Key Setup)
cryptsetup-luks
cryptsetup create(remove)
LPIC 201 起動関連
はじめてのsystemdサービス管理ガイド | Developers.IO
BIOS →MBRのブートローダ → 2つ目のブートローダ → カーネル → init
ブートローダについて
GRUB Legacy ステージ 1(MBRにある) → 1.5(ステージ2までのつなぎ) → 2(本体 /boot/grub/stage2)
設定ファイルは/boot/grub/menu.lst
grubコマンドでいろいろできる インストールだけならgrub-install /dev/sdaでも
GRUB 2
設定ファイルは/boot/grub/grub.cfg (←直接編集はしない)
/etc/default/grubで設定し、update-grubコマンドでcfgを作成
2つの違い
GRUB Legacy
GRUB 2
起動時、カーネル選択画面(hiddenmenuをコメントアウトする必要あり)でeキーを押すとgrubモードになり、オプションを選択したり(さらにe)、grubシェル(c)が使える
起動オプションの設定
起動後に確認 ⇒ /proc/cmdline
inittabの設定
inittabの書式 x:5:respawn:/etc/X11/prefdm -nodaemon
ID:ランレベル:アクション指示子:処理
アクション指示子
[nyakka@localhost ~]$ cat /etc/inittab
#
# inittab This file describes how the INIT process should set up
# the system in a certain run-level.
#
# Author: Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
# Modified for RHS Linux by Marc Ewing and Donnie Barnes
#
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
# When our UPS tells us power has failed, assume we have a few minutes
# of power left. Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed and your
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
# Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm -nodaemon
[nyakka@localhost ~]$
/etc/rc[0-6].d/の中にS03sysstatとかK02NetworkManagerとかがいて、そいつらが各ランレベルでの起動時に起動(S)終了(K)するプロセスになっている
(実は/etc/init.d/~の起動スクリプトへのシンボリックリンクになってるだけ)
自動起動の設定には、上述のように手動でシンボリックリンクのファイルを作るか、chkconfigやupdate-rc.dコマンドを使う
最近はupstartを使っている場合が多く、initctlというコマンドでジョブを管理する
RHEL6→RHEL7で変更された主要コマンドまとめ — | サイオスOSS | サイオステクノロジー
その他のブートローダ
SYSLINUX USBやCDからブート EXTLINUXやPXELINUXなど
PXELINUX ネットワークブート DHCPとTFTPを用いて起動
LPIC 201 カーネル関連 その1
linuxカーネル 再構築の流れ
- 現在のバージョンの確認 → uname -r か cat /proc/version
- カーネルsourceのダウンロード → https://www.kernel.org/
- /usr/src配下に展開する。
- カーネルコンフィグの設定
- カーネルのコンパイル
- カーネルコンフィグのコンパイル
- カーネルとモジュールの配置
- 初期RAMディスク作成
- ブートローダの設定変更
- リブート
1は説明省略
2について
コマンドではwget https://cdn.kernel.org/pub/linux/kernel/v3.x/linux-3.14.74.tar.gzとかでもって来る(-oで保存先指定?)
置き場所は/usr/src/
3について
tar zxvf (オプション→.gz解凍、取り出し、詳細表示、ファイル名指定) tarボール名
で解凍、展開する
→linux ディレクトリにシンボリックリンク ln -s linux-ver linux
4について
make config(menuconfig、xconfig、gconfig)でコンフィグの設定をする
→ncursesとncurses-develが入っていない場合、yumで入れる必要あり(デビアンはlibncurses5-dev?)
もしくはmake oldconfigをする
Y,M,N (イエスかローダブルモジュールかノー)
カーパラは
Makefile(makeコマンドの動作を設定するファイル)の先頭、EXSTRAVERSIONにtestとか入れて2.6.20.testみたいにする
5,6について
make (カーネルとモジュール両方いっぺんにコンパイル)もしくはmake all
7,8,9について
make module_install
make install
でカーネルの移動(コピー)&リネームvmlinuz-、初期RAMディスク作成、ブートローダの設定ファイルにエントリ追加を自動でできる
手動でやる場合は以下の流れ
System.mapと/arch/アーキテクチャ/bootにあるbzimageをvmlinuz-バージョンという名前で/bootにコピー
vmlinuzとSystem.mapという名前のシンボリックリンクを作成
初期RAM作成 ファイルをマウントして、HDDのファイルシステムをマウントする準備
mkinitrd ファイル名 バージョン
mkinitramfs -o ファイル名 バージョン
/boot/grub/menu.lst (grub Legacy) にエントリを追加する
ビルド化やパッケージ化などmake につけるターゲット多し
(hd0)と/dev/sdaマッチング→device.map