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でext2ext3へ変更できる

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

BIOSMBRブートローダ → 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

f:id:nakka-yuzu:20160807183138p:plain

GRUB 2

f:id:nakka-yuzu:20160807183131p:plain

 GRUB 2の/etc/default/grub

 

 

 

 起動時、カーネル選択画面(hiddenmenuをコメントアウトする必要あり)でeキーを押すとgrubモードになり、オプションを選択したり(さらにe)、grubシェル(c)が使える

起動オプションの設定

f:id:nakka-yuzu:20160807174441p:plain

 起動後に確認 ⇒ /proc/cmdline

 

inittabの設定

inittabの書式 x:5:respawn:/etc/X11/prefdm -nodaemon

ID:ランレベル:アクション指示子:処理

アクション指示子 

f:id:nakka-yuzu:20160804233848p:plain

 

 

[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というコマンドでジョブを管理する

 

f:id:nakka-yuzu:20170414065627j:plain

 

f:id:nakka-yuzu:20170414065639j:plain

RHEL6→RHEL7で変更された主要コマンドまとめ — | サイオスOSS | サイオステクノロジー

 

その他のブートローダ

LILO     古いやつ liloコマンドでインストール

SYSLINUX  USBやCDからブート EXTLINUXやPXELINUXなど

 PXELINUX  ネットワークブート DHCPとTFTPを用いて起動

 

LPIC 201 カーネル関連 その1

linuxカーネル 再構築の流れ

  1. 現在のバージョンの確認 → uname -r か cat /proc/version
  2. カーネルsourceのダウンロード → https://www.kernel.org/
  3. /usr/src配下に展開する。
  4. カーネルコンフィグの設定
  5. カーネルコンパイル
  6. カーネルコンフィグのコンパイル
  7. カーネルとモジュールの配置
  8. 初期RAMディスク作成
  9. ブートローダの設定変更
  10. リブート

 

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