【Linux試験対策】LPIC-2 201見直しポイント

本稿ではLinux認定試験のLPICで必要とされる知識のうち見直すべきポイントをまとめます。

目次

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

topコマンド一行目の右端3つの数字は何を表すか

過去1分・5分・15分のCPU平均負荷。この数値がCPUのコア数を上回っているかどうかが一つの判断軸。

topコマンド三行目のsy/hi/si/stを説明せよ
  • sy(system):カーネルがCPUを利用している時間の割合
  • hi(hardware interrupt request):ハードウェアの割り込み要求時間の割合
  • si(software interrupt request):ソフトウェアの割り込み要求時間の割合
  • st(steal):仮想環境においてゲストOSがCPUを割り当てられなかった時間の割合
バッファとスワップの違いを説明せよ
  • バッファ:ディスクI/Oを高速化するために利用される一時的なメモリ領域
  • スワップ:ディスク上に作成
バッファとキャッシュの違いを説明せよ
  • バッファ:主に書き込みを最適化する
  • キャッシュ:主に読み込みを最適化する
vmstatで表示されるr/bを説明せよ
  • r(runnable processes):実行可能なプロセス数
  • b(blocked processes):I/O待ちでブロックされているプロセス数
vmstatで表示されるsi/so/bi/boを説明せよ
  • si:ディスクから「swap in」されているメモリサイズ [KB/s]
  • so:ディスクに「swap out」しているメモリサイズ [KB/s]
  • bi:ブロックデバイスから「受け取った」ブロック数 [ブロック/s]
  • bo:ブロックデバイスに「送られた」ブロック数 [ブロック/s]

vmstatはVirtual Memory Statisticsなので主体はあくまでもメモリで,メモリからのin/outを考えます。

sysstatパッケージの代表的な構成を説明せよ
  • sadc(System Activity Data Collector):システム状況を収集
  • sar(System Activity Reporter):収集データを表示
sarコマンドでディスクの入出力情報を表示する

sar -b -f /var/log/sa10

block deviceで覚えましょう。

sarコマンドでネットワークインタフェース情報を表示する

sar -n DEV -f /var/log/sa10

networkで覚えましょう。

sarコマンドでメモリ関連情報を表示する

sar -r -f /var/log/sa10

ramで覚えましょう。

sarコマンドでCPU関連情報を表示する

sar -u -f /var/log/sa10

usageで覚えましょう。usageはmemory usageとしても使える語ですが,メモリにはramがあると先におさえてしまうとよいでしょう。

sadfコマンドとは何か

System Activity Data Formatの略称と考えられ,sarコマンドで収集したデータを各種フォーマットで表示するツールのことを指す

Netperfでサーバー側がListenするためのコマンド

netserver

Netperfでクライアント側がサーバ側に接続するためのコマンド

netperf -H {IPアドレス}

NetperfとIptrafの違いを説明せよ
  • Netperf:クライアント・サーバモデルでネットワーク性能を測定する
  • Iptraf:インタフェースのトラフィックを解析する
システム監視のツールを列挙せよ
  • collectd:軽量なデータ収集ツール
  • Nagios:通知機能が強力な死活監視
  • Icinga2:Web UIを備えたNagiosの改良版
  • MRTG:SNMPベースのシンプルなネットワークトラフィック監視
  • Cacti:Web UIを備えたMRTG の進化版
現在使用中のスワップサイズを調べる方法
  • swapon -s
  • cat /proc/swaps

カーネルの構成要素

カーネルのバージョンを表示するコマンド
  • uname -r
  • cat /proc/version
カーネルモジュールの操作コマンドのうちmodXXのようにmodがprefixとなるものを挙げよ
  • modprobe
  • modinfo
lsmodと等価な操作

cat /proc/modules

modprobeコマンドが参照するmoduleの依存関係を記述するファイルおよびそれを作成するコマンド
  • /lib/modules/{カーネルバージョン}/modules.dep
  • depmod
カーネルの再構築時ではカーネルのコンパイルとモジュールのコンパイルはどちらが先か

カーネルのコンパイル

モジュールはカーネルのバージョンに依存すると理解しましょう。一方,下で説明する通りinstallはモジュールの次にカーネルという順番になります。

現在のカーネルの.configを新しい設定に反映する
cp /path/to/old/kernel/.config /path/to/new/kernel/
cd /path/to/new/kernel/
make oldconfig

# カーネルとモジュールのコンパイル
make
# モジュールのインストール
make modules_install
make install
DKMSを説明せよ

カーネルのアップグレード後でもモジュールが問題なく動作し続けるように,モジュールの自動ビルドと管理を行うツール

/proc/sys/net/ipv4/ip_forwardのカーネルパラメータを1に設定せよ

sysctl -w net,ipv4.ip_forward=1

この設定は再起動によりリセットされます。

再起動後もカーネルパラメータを書き換えておくためのファイル

/etc/sysctl.conf

初期RAMディスクを作成するコマンドを列挙せよ
  • mkinitrd(Make Initial RAM Disk)
  • mkinitramfs(Make Initial RAM FileSystem)
  • dracut(DRive Initramfs Creation Utility)
sysfsをもとにシステムが認識しているデバイス情報を出力するコマンド

udevadm info -q {表示する情報} -n /dev/sda1

{表示する情報}にはpathやenvなどを指定できます。allも指定できます。

udevを監視するコマンド

udevadm monitor

システムの起動プロセス

Redhat系でサービスの自動起動・自動停止を設定するコマンド

chkconfig --level 235 httpd on

Debian系でサービスの自動起動・自動停止を設定するコマンド

update-rc.d httpd start 20 2 3 5 .

ランレベルを指定した場合は優先度の指定は必須です。

SUSE系でサービスの自動起動・自動停止を設定するコマンド

insserv

systemctl enableとsystemctl disableで操作の対象となるファイルを述べよ
  • systemctl enable:/usr/lib/systemd/systemのデフォルトの設定でシンボリックリンクを作成する
  • systemctl disable:/etc/systemd/systemのカスタマイズされた設定でシンボリックリンクを削除する

/usrはインストールされたソフトウェアの「デフォルト設定」を持っている場所で,/etcはシステム管理者が行うカスタマイズや設定を格納する場所です。/usr/libは/libとなる場合もあります。

journalctlを永続化する場合の設定

/etc/systemd/journald.confにStorage=persistentを記述してsystemctl restart systemd-journaldを実行

GRUB Legacyの設定ファイル

/boot/grub/menu.list

GRUB2の設定ファイル

/etc/default/grubを編集してgrub-mkconfigコマンドを実行することで下記を生成する。

  • /boot/grub/grub.cfg
  • /boot/efi/EFI/{id}/grub.cfg
GRUBにおけるパーティションの識別方法を述べよ
  • /boot/grub/device.mapに(hd0) /dev/sdaという対応を定義
  • /dev/sda1という最初のパーティションは(hd0,0)となる

sda1は1始まり,hd(0,0)は0始まりである点に注意してください。

GRUB2におけるパーティションの識別方法を述べよ
  • /dev/sda1という最初のパーティションは(hd0,1)となる

GRUB2ではdevice.mapは使われず自動で構成される点に注意してください。

PXEを一言で説明せよ

DHCPとTFTPによりネットワーク経由でブートを行う方式のこと

高度なストレージ管理

RAIDアレイの作成を行う

mdadm -C /dev/md0 --level 1 --raid-devices 2 --spare-devices 1 /dev/sdc5 /dev/sdc6 /dev/sdc7

作成は大文字の-Cであること,およびmdadmはMultiple Devices Administratorの略称であることをおさえましょう。

RAIDアレイの状態を確認する

cat /proc/mdstat

RAIDアレイを構成するディスクの一つに不良マークを付けるオプション

-f

論理ボリュームのアクセス先

/dev/{ボリュームグループ名}/{論理ボリューム名}

論理ボリュームのマッピング先

/dev/mapper/{ボリュームグループ名}-{論理ボリューム名}

df -TのTは何を意味するか

typeのこと。ext4やxfsなどのファイルシステムの種類まで表示してくれるようになる。

LVMを用いたバックアップの作成方法
# 論理ボリュームの作成コマンドのオプションで-sを指定して断面を取得
lvcreate -s -n snap0 /dev/samplevg/lv01
# dumpしてバックアップの作成 (0はフルバックアップ、uはバックアップ履歴の保存、fはバックアップ先の指定)
dump 0uf /dev/st0 /dev/samplevg/snap0

lvcreate -sで作られる断面は単なる断面ではなく同期を続けてくれる特殊な断面です。

ハードディスクのパラメータを確認する
  • IDEハードディスク:hdparam /dev/hda
  • SCSI:sdparam /dev/sda(こちらが主流)

sdparamはディスクの回転を止めることもできます。

SSDの寿命を縮めないためのマウント時の策

noatimeオプションを指定する

noatimeオプションとはファイルへのアクセス時にアクセス時刻(atime)を更新しないようにする設定で,書き込み回数の上限があるSSDに対して効果的です。

iSCSIイニシエータ経由でiSCSIターゲットの情報を確認するコマンド

iscsiadm

ファイルシステムの操作

UUIDの確認方法
  • blkid
  • ls- l /dev/disk/by-uuid/
再マウントのオプション

mount -o remount /data

アクティブなスワップ領域の表示
  • swanon -s
  • cat /proc/swaps
CD-ROMの標準フォーマットおよびそのファイルシステムを作成するコマンド
  • ISO9660
  • mkisofs -o -R /tmp/etc.iso /etc

-RはLinuxに近い形でイメージを作成するためのオプションです。

ISOファイルのマウント

mount -o loop /tmp/etc.iso /mnt/cdrom

-o loopは仮想的に作った/etcのディスクイメージをディスクとして扱うためのオプションです。

スーパーブロックの内容を表示するコマンド

dumpe2fs /dev/sdb2

ルートファイルシステムのチェックを行う方法

shutdown -F -r now

fsckでバックアップを行うコマンド

fsck -b {ブロック番号} /dev/sdb2

xfs_repairの-nオプション

チェックだけ行って修正は行わない

XFSのバックアップのセッションIDを確認する

xfsrestore -I

ext4をbtrfsに変換するコマンド

btrfs-convert /dev/sdc1

オートマウントの全般的な設定を行うファイルとその例を記述せよ

/etc/auto.masterファイル

# {マウントベース} {マップファイル}
/mnt/auto /etc/auto.dvdrom
オートマウントの具体を設定するファイルとその例を記述せよ

/etc/auto.{作成するディレクトリ名}であり,上記例でいうと/etc/auto.dvdromとなる

# {マウントベースの下に作成するディレクトリ} {マウントオプション} {デバイスファイル名}
dvdrom -fstype=udf,no :dev/sr0

これらの設定により「/mnt/auto/dvdromが必要になったタイミングでディレクトリが自動作成されて/dev/sr0が自動的にマウントされると同時に,デフォルトで約5分間アクセスがなければアンマウントしてくれる」という挙動になります。

オートマウントの設定を記述するファイルを変更した場合の扱いを述べよ
  • /etc/auto.master:autofsサービスの再起動が必要
  • /etc/auto.{作成するディレクトリ名}:autofsサービスの再起動は不要

ネットワーク

arpキャッシュに手動で追加する方法

arp -s example.com 00:01:02:03:04:05

指定したインタフェースを監視するコマンド

tcpdump

UNIXドメインソケットとは

localhost内のプロセス間通信。TCP/IPのような通信ではなく,ファイルシステム上のパスを使ってソケットを識別し,カーネル内部で通信を処理する。

ポートスキャンを行う方法
  • TCP:nc -vz 192.168.1.10 1-1000
  • UDP:nc -vzu 192.168.1.10 1-1000

vはverbose,zはzero I/O modeを指していて,zはポートスキャンモードを表していると理解しましょう。

iwconfigとiwの違い

iwの方が新しく,デバイス名を指定する前にdevを入れる。

iwconfig wlp1s0
is dev wlp1s0 link
/etc/hostsと/etc/networksの違い
  • /etc/hosts:{IPアドレス} {ホスト名}の順番
  • /etc/networks:{ホスト名} {IPアドレス}の順番
リッチな経路確認コマンド

mtr

システムメンテナンス

/dev/st0にバックアップされた/varの中から/var/log/secureを抽出する

tar xvf /dev/st0 var/log/secure

相対パスを指定するためvarには/が不要である点に注意してください。

/dev/st0と/dev/nst0の違いを説明せよ
  • /dev/st0:自動でテープの巻き戻しする
  • /dev/nst0:自動でタープの巻き戻しはしない

stはSCSI Tape,nはnon-rewindingと覚えましょう。

問題演習で引っかかったポイント

freeコマンドでスワップの使用率は確認できるか

できる

vmstatは搭載されている物理メモリの総用量を確認できるか

できない

psコマンドで全てのプロセスのCPU利用率やメモリ利用率を表示させる

ps aux

同等のコマンドにps -dfがあると思いきや,-dfではCPU利用率やメモリ利用率は表示されません。-oでpidや%cpuを抽出しないといけず面倒なので,おそらく試験で狙われやすいのはハイフン無しのps auxでしょう。

xz -dcを説明せよ
  • -d:解凍する
  • -c:標準出力へ
「現在稼働中のカーネルのバージョンは/usr/src/linux/Makefileで確認できる」は正しいか

正しくない。そのMakefileを使ってコンパイルされたカーネルが現在稼働しているとは限らないため。

make cleanで.configは削除されるか

削除されない。make mrproperを利用する。

mrは意味がなさそうですが,こじつけで「make make really proper」と覚えてしいましょう。

「初期RAMディスクは/boot以下に配置される」は正しいか

正しい

GRUBのバージョンはいくつまでがLegacyでいくつからがGRUB2になるか
  • 〜0.97:GRUB Legacy
  • 1.9〜:GRUB2
menu.listのrootパラメータには何を指定するか

カーネルイメージが格納されているパーティション。GRUB Legacyであればhd(0,0)でGRUB2であればhd(0,1)

PXEブートにSYSLINUXサーバは必要か

必要ない。ディストリビューションを配布するNFSサーバとPXEサーバが必要。

/etc/fstabでデフォルトのオプションを設定する指定方法

defaults

複数形であることに十分注意してください。

/etc/fstabの2列目にswapと書かれている設定は正しいか

正しい。swapの場合はディレクトリみたいに/から始めずにswapと指定することで「swap領域として利用されている」ということを明示する。

btrfsファイルシステムの使用状況を確認する

btrfs filesystem df /mnt

読み取り専用でマウントする

mount -o ro

vgcreateの-sオプション

エクステントのサイズ。スナップショットではないため注意する。

転送のエラーや取りこぼしを表示

netstat -i

カーネルの設定が保存されるファイル

/usr/src/linux/.config

.configureでない点に注意してください。

mkoldconfigとmake oldconfigはどちらが正しいか

make oldconfig

コンパイル後にカーネルモジュールを適切なディレクトリに配置する

make modules_install

modules.depの更新

depmod

PCIデバイスの1番目(=0番)のバス・8番のスロットに関する情報を確認する

lspci -vv -s 0:8

カーネルパラメータの更新を行うコマンド

sysctl

postfix.serviceを自動起動させる

systemctl enable postfix.service

/etc/fstabでproc /proc proc defaults 0 0という設定は正しい書式か

正しい。仮想ファイルシステムを作成する場合はこのような指定になる。

iw wlan0 essid lpicは正しいか

正しくない。以下のいずれかが正しい。

  • iwconfig wlan0 essid lpic
  • iw dev wlan0 connect lpic
hosts.denyをすり抜ける原因を二つ述べよ
  • 通信元がrcpwrapperをサポートしていないプログラムであること
  • hosts.allowで許可されていること
ipコマンドでIPv6アドレスのインタフェースをeth0に追加する

ip -6 addr add 2001:db8::1/64 dev eth0

ipコマンドはipconfig/route/arpをあわせたような機能をもつため,ipの後にlink/addr/route/neghborのような操作対象を明示して使います。

ルートファイルシステムのマウントとカーネルモジュールのロードはどちらが先か

カーネルモジュールのロード

vgcreateとlvcreateはどちらが先か

vgcreate

論理ボリュームはボリュームグループ内に作られます。

リモートのファイルサーバのI/O情報を取得するコマンド
  • cifsiostat
  • nfsiostat
  • nfsstat

CIFSは主にWindows環境でのファイル共有を実現するためのプロトコルです。cifsstatが存在しない点に十分注意してください。

「udevadm monitorで新しいデバイスが接続されたことを検知できる」は正しいか

正しくない。udevルールの生成やイベントの表示ができる。

SSDで使用されていない領域を破棄するコマンド

fstrim

trimfsではない点に注意してください。

sysstatでcronにより定期実行されるプログラムを説明せよ
  • sa1:サーバーの情報を収集して「saXX」ファイルを出力する(XXは日付)
  • sa2:sarコマンドを実行することによりsa1の出力saXXを1日の結果としてsarXXファイルにまとめる
Linuxのモジュールのソースコードは本体に同梱されているか

同梱されている

fstabファイルの設定内で特定のユーザに書き込み権限を与えるオプション

uid

UEFIの設定を操作するコマンド

efibootmgr

スワップ領域を追加する際にmkswap/swapon以外にコマンドは利用するか

ddを利用して追加する領域分のファイルを確保する

sarでメモリの使用率は表示できるか

できる

/dev/nst0に対しtarコマンドを2回連続で実行した際の挙動

次のファイルが読み出され,すでにあるファイルは上書きされ,ないファイルは新しく保存される

Linux Unified Key Setupの情報を表示するコマンドはluksInfoとluksDumpではどちらが正しいか

luksDump

「CPUがidleなときはユーザの入力待ちである可能性が高い」は正しいか

正しくない。ユーザの入力待ちの場合はidleにならないらしい。

make modules_installとmake install_modulesのどちらが正しいか

make modules_install

特定のプロセスが使用しているファイルやネットワークコネクションを表示できるコマンド

lsof

topでI/O情報は確認できるか

できない。だからiotopがある。

リアルタイムでトラフィックを監視する軽量ツール

iptraf

systemdのユニットファイルに関する変更を確認するコマンド

systemd-delta

syslinuxとextlinuxの違い
  • syslinux:FATファイルシステム・USB・CD/DVDなどに対応した軽量なブートローダ
  • extlinux:ext系のファイルシステムで利用されるブートローダ
RAIDを自動検出するためのパーティションタイプコード

0xFD

SSDの性能を最大限に引き出すための新しいインターフェース,もしくはプロトコル

NVMe

Non-Volatile Memory Expressの略称です。

SCSIにおける識別子

WWID

iSCSIにおける識別子

WWN

192.168.1.1のHTTP(S)をポートスキャンする

nmap -p 80,443 192.168.1.1

テープを操作するコマンド

mt

magnetic tape(磁気テープ)と覚えましょう。

カーネルコンフィグレーションの手順
  • make mrproper
  • make menuconfig
  • make
  • make modules_install
  • make install

コマンドのソースをダウンロードしてmakeする前にMakefileを作る際は./configureを叩きます。

DKMSの説明として「必要なタイミングでモジュールをロードするツール」は正しいか

正しくない。ロードではなくビルドとインストール。

patchでカーネルにパッチは当てられるか

当てられない。patch-kernelを利用する。

「/etc/sysctlはカーネル起動時にmakeコマンドにより参照されるファイルである」は正しいか

正しくない。initプロセスの中で参照されて起動中のカーネルパラメータを変更する。

initramfsのメリット

「ファイルシステムではない」ので「ドライバが必要ない」ことや「メモリ効率がよい」こと

Wi-Fiインタフェースの信号レベルを出力するコマンド

iw phy (phy0 info)

iw devでは信号レベルは出力されません。

ルーティングの設定におけるgwとviaの使い分け
  • gw:主にrouteコマンドで使われる
  • via:主にip routeコマンドで使われる
tracerouteでデフォルトで使われるプロトコル

UDP(ICMPを使う場合は-lを指定する)

非ルートユーザが./comfigureでインストール先を指定するオプション

--prefix

覚えるべきディレクトリ・ファイル

sadcによるログ

/var/log/saXX

sa10など,XXには日付が入ります。

freeコマンド以上に詳細なメモリの情報が格納されている

/proc/meminfo

カーネルソースの格納場所

/usr/source/linux

/proc以下のPCI関連のディレクトリ

/proc/bus/pci

/proc以下のUSB関連のディレクトリ

/proc/bus/usb

カーネルが認識しているデバイス

/proc/devices

複数形であることに注意してください。

カーネルの設定ファイル

/boot/config-<kernel_version>

UEFIでブートローダから呼び出されるファイル名

shim.efi

カーネルソースのドキュメントが置かれているディレクトリ

/usr/src/linux/Documentation

Documentでない点に注意してください。

シェアはこちらからお願いします!

コメント

コメントする

※ Please enter your comments in Japanese to distinguish from spam.

目次