1章 システムの起動
暗記
-
100GBの記憶装置(HDD)を接続したが、実際の半分以下の容量で認識されてしまった時の解決方法
BIOSをアップデートする
・BIOSが古い場合、大容量の記憶装置(HDD)を正常に認識できない場合があるため
-
初期RAMディスク
・システムを起動するのに必要なドライバやスクリプトが含まれている
・「/boot」ディレクトリに格納される
(カーネルイメージと同様)
・カーネルのバージョンごとに内容が異なる
-
BIOSの機能
・起動デバイスの順序を設定できる
・電源を入れると起動し、記憶装置(HDD)等に関して最低限の認識を行う
・起動する順にデバイスの先頭セクタにあるMBRを読み込み、ブートローダが得られたら制御を移す
-
/proc/cmdline (ファイル)
ブートローダからカーネルに渡されたパラメータ
-
systemdが利用できるユニットの一覧を取得したい。実行すべきコマンド
systemctl list-unit-files
-
systemctl (コマンド)
各サービスの稼働状況や起動設定を管理するコマンド
-
journalctl (コマンド)
systemd-journaldのログを表示するコマンド
(ログファイルはバイナリ形式のため、catコマンドなどで中を表示することが出来ない)
-
journalctl -k
dmesgコマンドと同じ情報(起動時にカーネルが出力したメッセージ)が出力される
-
journalctl --dmesg
dmesgコマンドと同じ情報(起動時にカーネルが出力したメッセージ)が出力される
-
systemdの特徴
・Unitという単位で管理
・Unitの設定に従ってsystemd自体が処理を実行
・cgroupsによってプロセスのリソースを管理
-
systemdの管理単位であるユニット
・swap
・device
・mount
-
UEFIの特徴
・GPT(GUID Partition Table)形式のHDDからの起動をサポートしている
・最初にアクセスされる領域であるESPは「/boot/efi」にマウントされる
・GUIでの操作が可能となる
・パーティションテーブルの上限:9.4ZB
-
systemdの管理単位であるユニット
・device : 各種デバイスを管理する
・mount : ファイルシステムのマウントを制御する
・service : サービスを制御する
・swap : スワップ領域を管理する
・target : 複数のユニットを1つのグループにする
-
initのPID(プロセス ID)
1
(initは最初に起動されるプロセス)
-
SysVinitを採用したシステムの起動時におけるinitの動作
設定ファイル「/etc/inittab」の記述に基づいて、自動起動するべきプロセスを立ちあげるなど、アプリケーションレベルの初期化を行う
-
システム起動時においてのブートローダの動作
記憶装置(HDD)内のカーネルをロードし、制御を移す
-
一般的な Linux システムの起動順序(ブートプロセス)
BIOS/UEFI → ブートローダ → カーネル → init
-
Linuxがハードディスクから正常に起動できなくなった場合、インストールDVDを用いて試してみるべきこと
・レスキューモードでの起動を試みる
・ハードディスク内のログを確認する
-
dmesg (コマンド)
・カーネルが出力するメッセージが格納されるリングバッファの内容を出力
・起動時にカーネルが出力したメッセージを表示する
-
dmesg --clear (オプション)
マシンを再起動せずにカーネルのリングバッファの内容をクリアするコマンド
-
Upstartの特徴
・サービスやタスクを「ジョブ」という単位で扱う
・イベント駆動型(各ジョブの実行に必要な前提条件を「イベント」で管理)
・サービスの並列起動処理が可能
-
/var/log/messages (ファイル)
カーネルのログが記録されるなど、Linuxでメインで使用されるログファイル
-
システム起動時においてのカーネルの動作
・高度にハードウェアを認識・制御し、ルートファイルシステムのマウントなど様々な初期化処理を行う
・/sbin/initを起動する
-