1. システムアーキテクチャ
理解しておきたい用語と理念
習得しておきたい技術
1.1 ハードウェアの基本知識と設定
1.2 Linuxの起動とシャットダウン
1.3 SysVinit
1.4 systemd
・BIOS/UEFI
・システム起動の流れ
・ランレベル
・シングルユーザーモード
・init
・システム起動の流れ
・ランレベル
・シングルユーザーモード
・init
習得しておきたい技術
・BIOS/UEFIセットアップの呼び出し
・BIOS/UEFIの設定
・接続されているデバイスの確認
・デバイスドライバのロード
・サービスの起動と終了
・起動時のイベント確認
・ランレベルの切り替え
・デフォルトのランレベル/ターゲットの設定
・シャットダウンと再起動
・BIOS/UEFIの設定
・接続されているデバイスの確認
・デバイスドライバのロード
・サービスの起動と終了
・起動時のイベント確認
・ランレベルの切り替え
・デフォルトのランレベル/ターゲットの設定
・シャットダウンと再起動
1.1 ハードウェアの基本知識と設定
1.1.1 基本的なシステムハードウェア
1.1.2 BIOS/UEFI
1.1.3 デバイス情報の確認
1.1.4 USBデバイス
1.1.5 udev
1.1.6 デバイスドライバのロード
CPU
メモリ
ハードディスク
入力装置
拡張カード
メモリ
ハードディスク
入力装置
拡張カード
コールドプラグ - 取り付け・取り外し時にシステムの電源を切ること
USB機器
ホットプラグ - システムの電源をオンにしたまま取り付け・取り外すこと
1.1.2 BIOS/UEFI
1.1.3 デバイス情報の確認
デバイスファイル - ハードウェアのアクセスを抽象化
catコマンド等での閲覧、もしくは lspciコマンド
デバイスファイルは /devディレクトリ配下に存在
udevという仕組みによって自動的に作成
デバイスに関する情報は /procディレクトリ配下に存在 udevという仕組みによって自動的に作成
catコマンド等での閲覧、もしくは lspciコマンド
1.1.4 USBデバイス
ハードウェアを利用するにはデバイスドライバが必要
クラスドライバ - Linuxシステムに最初から搭載されている汎用ドライバ
lsusbコマンドで情報を表示
クラスドライバ - Linuxシステムに最初から搭載されている汎用ドライバ
lsusbコマンドで情報を表示
1.1.5 udev
1.1.6 デバイスドライバのロード
ロードされているカーネルモジュールを確認するには lsmodコマンド
手動でロードするには modprobeコマンド
手動でロードするには modprobeコマンド
1.2 Linuxの起動とシャットダウン
1.2.1 システムが起動するまでの流れ
1.2.2 起動時のイベント確認
1.2.3 システムのシャットダウンと再起動
BIOS/UEFI → ブートローダ → カーネル → init/systemd
1.2.2 起動時のイベント確認
dmesgコマンドでシステム起動時のカーネル処理内容を確認
バッファに収まらない情報は消えてしまうので /var/log 配下のログを確認
バッファに収まらない情報は消えてしまうので /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による起動
1.3.2 ランレベル
1.3.3 ランレベルの確認と変更
ランレベルを切り替えるにはスーパーユーザーでinitまたはtelinitコマンド
シングルユーザーモードに移行すると、ログイン中の一般ユーザーは一切の操作ができなくなる。
ログイン中のユーザーにあらかじめメッセージを送信するには wallコマンドを使う。
1.3.4 起動スクリプトによるサービスの管理
1.3.5 デフォルトランレベルの設定
systemd - 新しい手順
1.3.1 SysVinitによる起動
①initが/etc/inittabファイルを読み込む
②initが/etc/rc.sysinitスクリプトを読み込む
③initが/etc/rcスクリプトを実行
④/etc/rcスクリプトが「/etc/rc[ランレベル].d」ディレクトリ以下のスクリプトを実行
※SysVinitを使っていないシステムでは/etc/inittabファイルは存在しないか中身が空の場合がある
②initが/etc/rc.sysinitスクリプトを読み込む
③initが/etc/rcスクリプトを実行
④/etc/rcスクリプトが「/etc/rc[ランレベル].d」ディレクトリ以下のスクリプトを実行
※SysVinitを使っていないシステムでは/etc/inittabファイルは存在しないか中身が空の場合がある
1.3.2 ランレベル
RHEL, CentOS, Fedora
Ubuntu, Debian GNU/Linux
シングルユーザーモードはrootユーザーだけが利用できる特殊な状態
ランレベル | 説明 |
---|---|
0 | 停止 |
1 | シングルユーザーモード |
2 | マルチユーザーモード テキストログイン、NFSサーバーは停止 |
3 | マルチユーザーモード テキストログイン |
4 | 未使用 |
5 | マルチユーザーモード グラフィカルログイン |
6 | 再起動 |
S s | シングルユーザーモード |
Ubuntu, Debian GNU/Linux
ランレベル | 説明 |
---|---|
0 | 停止 |
1 | シングルユーザーモード |
2 | マルチユーザーモード |
3 | マルチユーザーモード |
4 | マルチユーザーモード |
5 | マルチユーザーモード |
6 | 再起動 |
S s | シングルユーザーモード |
1.3.3 ランレベルの確認と変更
# runlevel
その前のランレベルと現在のランレベルを表示する ランレベルを切り替えるにはスーパーユーザーでinitまたはtelinitコマンド
# init 1
シングルユーザーモードに移行すると、ログイン中の一般ユーザーは一切の操作ができなくなる。
ログイン中のユーザーにあらかじめメッセージを送信するには wallコマンドを使う。
# wall ’メッセージ'
1.3.4 起動スクリプトによるサービスの管理
・SysVinitの各種サービスの起動は /etc/init.d ディレクトリ以下に用意されている起動スクリプトを使う
・ランレベルの起動スクリプトは /etc/rd(ランレベル).d ディレクトリ配下(/etc/init.d/配下のシンボリックリンク)
・起動スクリプトはシステムサービスや各種サーバ起動、再起動、終了で使用
・ランレベルの起動スクリプトは /etc/rd(ランレベル).d ディレクトリ配下(/etc/init.d/配下のシンボリックリンク)
・起動スクリプトはシステムサービスや各種サーバ起動、再起動、終了で使用
例:httpd (Apache HTTP Server/Webサーバ)起動・停止
# /etc/init.d/httpd start
# /etc/init.d/httpd stop
# /etc/init.d/httpd stop
1.3.5 デフォルトランレベルの設定
・Linux起動 → initプロセス実行 → 指定されたランレベルで起動
・デフォルトのランレベルの設定は /etc/inittab ファイルに記述
・例:デフォルトランレベルを5に設定
・デフォルトのランレベルの設定は /etc/inittab ファイルに記述
・例:デフォルトランレベルを5に設定
id:5:initdefault:
1.4 systemd
1.4.1 systemdの概要
1.4.2 systemdの起動手順
1.4.3 systemctlによるサービスの管理
・systemdを採用したシステムではinitでなく systemd プロセスが起動
・systemd関連の主なデーモンプロセス(駐在プロセス)
※デーモン(daemon) = メモリ上に駐在してシステムやサーバサービスを提供するプロセス
・システム起動処理は多数のUnit(処理単位)に分かれている
・Unitの種類は拡張子で区別できる
systemdでは必要な順に起動 = なのでシステム起動時間が短縮
・systemd関連の主なデーモンプロセス(駐在プロセス)
※デーモン(daemon) = メモリ上に駐在してシステムやサーバサービスを提供するプロセス
プロセス | 説明 |
---|---|
systemd | systemdのメインプロセス |
systemd-journald | ジャーナル(ログ)管理プロセス |
systemd-logind | ログイン処理プロセス |
systemd-udevd | デバイス動的検知プロセス |
・Unitの種類は拡張子で区別できる
Unitの主な種類:
・SysVinitではサービスは順次起動 拡張子 | 説明 |
---|---|
service | 各種サービスを起動 |
device | 各種デバイス |
mount | ファイルシステムのマウント |
swap | スワップ領域を有効にする |
target | 複数のUnitをグループ化 |
systemdでは必要な順に起動 = なのでシステム起動時間が短縮
1.4.2 systemdの起動手順
・システム起動 → default.target
・default.targetのUnit設定ファイルは /etc/systemd/system/default.target
・default.tagetは/lib/systemd/system/~.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.targetgraphical.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=yesmulti-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 件のコメント:
コメントを投稿