学習メモ:Linux教科書 LPICレベル1 - 1. 101試験 1. システムアーキテクチャ


1. システムアーキテクチャ

理解しておきたい用語と理念
・BIOS/UEFI
・システム起動の流れ
・ランレベル
・シングルユーザーモード
・init

習得しておきたい技術
・BIOS/UEFIセットアップの呼び出し
・BIOS/UEFIの設定
・接続されているデバイスの確認
・デバイスドライバのロード
・サービスの起動と終了
・起動時のイベント確認
・ランレベルの切り替え
・デフォルトのランレベル/ターゲットの設定
・シャットダウンと再起動

1.1 ハードウェアの基本知識と設定
1.1.1 基本的なシステムハードウェア
CPU
メモリ
ハードディスク
入力装置
拡張カード
コールドプラグ - 取り付け・取り外し時にシステムの電源を切ること
USB機器
ホットプラグ - システムの電源をオンにしたまま取り付け・取り外すこと

1.1.2 BIOS/UEFI

1.1.3 デバイス情報の確認
デバイスファイル - ハードウェアのアクセスを抽象化
デバイスファイルは /devディレクトリ配下に存在
udevという仕組みによって自動的に作成
デバイスに関する情報は /procディレクトリ配下に存在
catコマンド等での閲覧、もしくは lspciコマンド

1.1.4 USBデバイス
ハードウェアを利用するにはデバイスドライバが必要
クラスドライバ - Linuxシステムに最初から搭載されている汎用ドライバ
lsusbコマンドで情報を表示

1.1.5 udev

1.1.6 デバイスドライバのロード
ロードされているカーネルモジュールを確認するには lsmodコマンド
手動でロードするには modprobeコマンド

1.2 Linuxの起動とシャットダウン
1.2.1 システムが起動するまでの流れ
BIOS/UEFI → ブートローダ → カーネル → init/systemd

1.2.2 起動時のイベント確認
dmesgコマンドでシステム起動時のカーネル処理内容を確認
バッファに収まらない情報は消えてしまうので /var/log 配下のログを確認

1.2.3 システムのシャットダウンと再起動
shutdownコマンド
shutdown [オプション] 時間 [メッセージ]
主なオプション:
-hシャットダウンする
-rシャットダウン後にシステムを再起動する
-f次回起動時にfsckをスキップ
-F次回起動時にfsckを実行
-kシャットダウンせずに警告メッセージを通知
-c実行中のシャットダウンをキャンセル

1.3 SysVinit
SysVinit - 旧来の起動手順 (System Five Init)
systemd - 新しい手順

1.3.1 SysVinitによる起動
①initが/etc/inittabファイルを読み込む
②initが/etc/rc.sysinitスクリプトを読み込む
③initが/etc/rcスクリプトを実行
④/etc/rcスクリプトが「/etc/rc[ランレベル].d」ディレクトリ以下のスクリプトを実行
※SysVinitを使っていないシステムでは/etc/inittabファイルは存在しないか中身が空の場合がある

1.3.2 ランレベル
RHEL, CentOS, Fedora
ランレベル説明
0停止
1シングルユーザーモード
2マルチユーザーモード
テキストログイン、NFSサーバーは停止
3マルチユーザーモード
テキストログイン
4未使用
5マルチユーザーモード
グラフィカルログイン
6再起動
S
s
シングルユーザーモード

Ubuntu, Debian GNU/Linux
ランレベル説明
0停止
1シングルユーザーモード
2マルチユーザーモード
3マルチユーザーモード
4マルチユーザーモード
5マルチユーザーモード
6再起動
S
s
シングルユーザーモード
シングルユーザーモードはrootユーザーだけが利用できる特殊な状態

1.3.3 ランレベルの確認と変更
# runlevel
その前のランレベルと現在のランレベルを表示する
ランレベルを切り替えるにはスーパーユーザーでinitまたはtelinitコマンド
# init 1

シングルユーザーモードに移行すると、ログイン中の一般ユーザーは一切の操作ができなくなる。
ログイン中のユーザーにあらかじめメッセージを送信するには wallコマンドを使う。
# wall ’メッセージ'

1.3.4 起動スクリプトによるサービスの管理
・SysVinitの各種サービスの起動は /etc/init.d ディレクトリ以下に用意されている起動スクリプトを使う
・ランレベルの起動スクリプトは /etc/rd(ランレベル).d ディレクトリ配下(/etc/init.d/配下のシンボリックリンク)
・起動スクリプトはシステムサービスや各種サーバ起動、再起動、終了で使用
例:httpd (Apache HTTP Server/Webサーバ)起動・停止
# /etc/init.d/httpd start
# /etc/init.d/httpd stop

1.3.5 デフォルトランレベルの設定
・Linux起動 → initプロセス実行 → 指定されたランレベルで起動
・デフォルトのランレベルの設定は /etc/inittab ファイルに記述
・例:デフォルトランレベルを5に設定
id:5:initdefault:

1.4 systemd
1.4.1 systemdの概要
・systemdを採用したシステムではinitでなく systemd プロセスが起動
・systemd関連の主なデーモンプロセス(駐在プロセス)
 ※デーモン(daemon) = メモリ上に駐在してシステムやサーバサービスを提供するプロセス
プロセス 説明
systemd systemdのメインプロセス
systemd-journald ジャーナル(ログ)管理プロセス
systemd-logind ログイン処理プロセス
systemd-udevd デバイス動的検知プロセス
・システム起動処理は多数のUnit(処理単位)に分かれている
・Unitの種類は拡張子で区別できる
Unitの主な種類:
拡張子 説明
service 各種サービスを起動
device 各種デバイス
mount ファイルシステムのマウント
swap スワップ領域を有効にする
target 複数のUnitをグループ化
・SysVinitではサービスは順次起動
 systemdでは必要な順に起動 = なのでシステム起動時間が短縮

1.4.2 systemdの起動手順
・システム起動 → default.target
・default.targetのUnit設定ファイルは /etc/systemd/system/default.target
・default.tagetは/lib/systemd/system/~.targetへのシンボリックリンク
          [root@minipc user]# ls -n /etc/systemd/system/default.target
          lrwxrwxrwx. 1 0 0 36  4月 23 10:38 /etc/systemd/system/default.target -> /lib/systemd/system/graphical.target          
        
graphical.target
          [Unit]
          Description=Graphical Interface
          Documentation=man:systemd.special(7)
          Requires=multi-user.target
          Wants=display-manager.service
          Conflicts=rescue.service rescue.target
          After=multi-user.target rescue.service rescue.target display-manager.service
          AllowIsolate=yes          
        
multi-user.target
          [Unit]
          Description=Multi-User System
          Documentation=man:systemd.special(7)
          Requires=basic.target
          Conflicts=rescue.service rescue.target
          After=basic.target rescue.service rescue.target
          AllowIsolate=yes          
        

1.4.3 systemctlによるサービスの管理
書式:
systemctl サブコマンド [Unit名] [-t 種類]
主なサブコマンド:
サブコマンド 説明
start 差0ビスを起動
stop サービスを終了
restart サービスを再起動
reload サービスの設定を再読み込み
status サービスの稼働状況を表示
is-active サービスが稼働しているか
enable システム起動時にサービス自動起動
disable システム起動時にサービスを自動起動しない
list-unit-files すべてのUnitを表示
reboot システムを再起動
poweroff システムをシャットダウン

0 件のコメント:

その他の記事