Man page - bootup(7)
Packages contains this manual
- systemd-initctl.service(8)
- systemd-networkd.service(8)
- org.freedesktop.locale1(5)
- timedatectl(1)
- systemd.resource-control(5)
- systemd.journal-fields(7)
- systemd-logind.service(8)
- busctl(1)
- systemd-pstore(8)
- systemd.generator(7)
- hostname(5)
- systemd-path(1)
- systemd-random-seed.service(8)
- locale.conf(5)
- systemd-firstboot(1)
- systemd-sysv-generator(8)
- systemd.syntax(7)
- loginctl(1)
- tmpfiles.d(5)
- org.freedesktop.portable1(5)
- systemd-timedated(8)
- systemd-pstore.service(8)
- systemd-escape(1)
- systemd-system-update-generator(8)
- systemd-backlight@.service(8)
- systemd-udev-settle.service(8)
- systemd.directives(7)
- systemd.index(7)
- systemd.environment-generator(7)
- systemd-network-generator.service(8)
- org.freedesktop.systemd1(5)
- systemd-user-sessions.service(8)
- systemd-pcrlock(8)
- systemd-journald.socket(8)
- systemd-user-runtime-dir(5)
- systemd-logind(8)
- systemd-initctl.socket(8)
- systemd-pcrlock-make-policy.service(8)
- systemd(1)
- systemd-inhibit(1)
- networkctl(1)
- systemd-random-seed(8)
- sysusers.d(5)
- systemd-boot-check-no-failures(8)
- systemd.v(7)
- systemd-creds(1)
- systemd-networkd(8)
- systemd-makefs(8)
- systemd-fsck(8)
- systemd-localed.service(8)
- journald.conf.d(5)
- systemd-pcrfs@.service(8)
- systemd-cat(1)
- systemd-id128(1)
- user@.service(5)
- systemd.unit(5)
- systemd.net-naming-scheme(7)
- systemd-volatile-root(8)
- org.freedesktop.machine1(5)
- systemd-firstboot.service(1)
- localtime(5)
- systemd-timedated.service(8)
- systemd-ask-password-console.path(8)
- varlinkctl(1)
- org.freedesktop.timedate1(5)
- systemd-run-generator(8)
- systemd-system.conf(5)
- systemd-journald-varlink@.socket(8)
- systemd-rfkill.socket(8)
- systemd.exec(5)
- systemd-journald@.socket(8)
- systemd-shutdown(8)
- systemd-fsck-usr.service(8)
- systemd-sysctl.service(8)
- systemd-pcrphase.service(8)
- systemd-localed(8)
- systemd-journald(8)
- systemd-ssh-proxy(1)
- systemd.offline-updates(7)
- systemd-pcrlock-secureboot-authority.service(8)
- systemd-ac-power(1)
- pam_systemd_loadkey(8)
- systemd.device(5)
- systemd-quotacheck.service(8)
- systemd-machine-id-commit.service(8)
- systemd-backlight(8)
- binfmt.d(5)
- systemd-getty-generator(8)
- networkd.conf.d(5)
- systemd.path(5)
- systemd-networkd-wait-online.service(8)
- system.conf.d(5)
- systemd-detect-virt(1)
- systemd-sleep.conf(5)
- sysctl.d(5)
- systemd-vpick(1)
- systemd-pcrlock-secureboot-policy.service(8)
- systemd-update-done(8)
- systemd-sysctl(8)
- pstore.conf.d(5)
- hostnamectl(1)
- systemd-confext(8)
- logind.conf.d(5)
- capsule@.service(5)
- systemd-poweroff.service(8)
- systemd-modules-load(8)
- systemd.special(7)
- org.freedesktop.network1(5)
- systemd.pcrlock.d(5)
- systemd-kexec.service(8)
- systemd-stdio-bridge(1)
- systemd-umount(1)
- systemd-quotacheck(8)
- systemd-sysext.service(8)
- systemd-notify(1)
- systemd-suspend-then-hibernate.service(8)
- systemd-growfs(8)
- systemctl(1)
- systemd-hibernate-clear.service(8)
- systemd-run(1)
- systemd-pcrlock-firmware-code.service(8)
- systemd-sysusers.service(8)
- environment.d(5)
- systemd-networkd-wait-online(8)
- systemd-initctl(8)
- systemd-remount-fs.service(8)
- systemd.network(5)
- systemd-journald@.service(8)
- systemd-pcrlock-file-system.service(8)
- systemd-hibernate-resume.service(8)
- systemd-tty-ask-password-agent(1)
- systemd-growfs@.service(8)
- systemd-ask-password(1)
- systemd-hibernate-resume-generator(8)
- systemd-sleep(8)
- systemd.image-policy(7)
- systemd-hibernate.service(8)
- systemd.timer(5)
- systemd-boot-check-no-failures.service(8)
- networkd.conf(5)
- systemd-tpm2-setup(8)
- systemd-pcrphase-initrd.service(8)
- systemd-xdg-autostart-generator(8)
- systemd-tmpfiles-setup-dev-early.service(8)
- systemd-binfmt(8)
- systemd-user-sessions(8)
- file-hierarchy(7)
- systemd-socket-proxyd(8)
- localectl(1)
- modules-load.d(5)
- machine-id(5)
- systemd-battery-check.service(8)
- systemd-update-done.service(8)
- systemd.mount(5)
- systemd-machine-id-setup(1)
- systemd-storagetm.service(8)
- systemd-growfs-root.service(8)
- systemd.swap(5)
- systemd-hibernate-resume(8)
- initrd-release(5)
- systemd.target(5)
- sleep.conf.d(5)
- systemd-mkswap@.service(8)
- journald@.conf(5)
- systemd-reboot.service(8)
- systemd-journald.service(8)
- systemd-socket-activate(1)
- systemd-tmpfiles-clean.timer(8)
- systemd-debug-generator(8)
- systemd-cgtop(1)
- systemd-measure(1)
- systemd.service(5)
- systemd.slice(5)
- systemd-remount-fs(8)
- systemd-ssh-generator(8)
- systemd-bsod(8)
- systemd-pcrlock-firmware-config.service(8)
- systemd-bsod.service(8)
- systemd-pcrmachine.service(8)
- logind.conf(5)
- bootup(7)
- kernel-install(8)
- systemd-networkd-wait-online@.service(8)
- systemd-network-generator(8)
- kernel-command-line(7)
- pstore.conf(5)
- rc-local.service(8)
- systemd-confext.service(8)
- systemd-soft-reboot.service(8)
- systemd.system-credentials(7)
- systemd-fstab-generator(8)
- systemd-tpm2-setup-early.service(8)
- systemd-tmpfiles(8)
- systemd.preset(5)
- run0(1)
- user.conf.d(5)
- systemd-pcrlock-machine-id.service(8)
- os-release(5)
- systemd-fsck-root.service(8)
- systemd-battery-check(8)
- systemd.automount(5)
- systemd-pcrfs-root.service(8)
- systemd.kill(5)
- systemd-pcrphase-sysinit.service(8)
- journalctl(1)
- 30-systemd-environment-d-generator(8)
- systemd.socket(5)
- systemd-rc-local-generator(8)
- systemd-sysext(8)
- systemd-fsck@.service(8)
- systemd.time(7)
- systemd-rfkill(8)
- systemd-ask-password-wall.path(8)
- machine-info(5)
- systemd-tpm2-generator(8)
- systemd-binfmt.service(8)
- org.freedesktop.login1(5)
- systemd-delta(1)
- systemd-tmpfiles-clean.service(8)
- systemd-ask-password-wall.service(8)
- user-runtime-dir@.service(5)
- systemd-cgls(1)
- smbios-type-11(7)
- systemd-ask-password-console.service(8)
- systemd.netdev(5)
- systemd-journald-dev-log.socket(8)
- systemd-storagetm(8)
- systemd-journald-audit.socket(8)
- systemd-tmpfiles-setup-dev.service(8)
- systemd-hybrid-sleep.service(8)
- systemd-analyze(1)
- systemd-environment-d-generator(8)
- systemd-hostnamed(8)
- systemd-hostnamed.service(8)
- systemd-pcrextend(8)
- systemd-tmpfiles-setup.service(8)
- systemd.pcrlock(5)
- systemd-tpm2-setup.service(8)
- systemd-suspend.service(8)
- systemd-mount(1)
- org.freedesktop.hostname1(5)
- extension-release(5)
- systemd-makefs@.service(8)
- iocost.conf(5)
- systemd-gpt-auto-generator(8)
- systemd-halt.service(8)
- systemd-modules-load.service(8)
- systemd-sysusers(8)
- systemd-user.conf(5)
- systemd-rfkill.service(8)
- systemd-volatile-root.service(8)
- systemd.scope(5)
- daemon(7)
- journald.conf(5)
apt-get install systemd
Available languages:
en zh_TW zh_CN deManual
BOOTUP
NAME描 述
常 規 啟 動 流 程
INITRD(INITIAL RAM DISK) 啟 動 流 程
關 機 流 程
參 見
跋
NAME
bootup - 系 統 啟 動 流 程
描 述
在 系 統 啟 動 過 程 中 要 涉 及 多 個 不 同 的 元 件 。 按 下 電 源 按 鈕 後 , 首 先 BIOS/UEFI做 最 基 本 的 硬 體 自 檢 與 初 始 化 , 然 後 載 入 預 設 /手 動 選 擇 的 磁 碟 /網 路 上 的 引 導 載 入 器 (例 如 GRUB2), 引 導 載 入 器 進 一 步 從 磁 碟 /網 路 上 載 入 作 業 系 統 核 心 (例 如 Linux)。 對 於 Linux來 說 , 核 心 將 會 (可 選 的 )解 壓 一 個 initrd(initial RAM disk)映 象 (可 以 用 dracut (8) 之 類 的 工 具 生 成 ), 並 執 行 由 "rdinit="核 心 引 導 選 項 指 定 的 init程 式 (例 如 systemd (1)) 以 尋 找 並 掛 載 根 檔 案 系 統 。 完 成 根 檔 案 系 統 的 掛 載 之 後 , 核 心 啟 動 由 "init="核 心 引 導 選 項 指 定 的 init程 式 (例 如 systemd (1)) 以 接 管 系 統 的 控 制 權 。 該 init程 式 將 會 負 責 檢 測 所 有 其 他 的 硬 體 裝 置 、 掛 載 必 要 的 檔 案 系 統 、 啟 動 所 有 必 要 的 服 務 , 等 等 。
關 機 時 , init程 式 將 會 停 止 所 有 服 務 、 解 除 安 裝 所 有 檔 案 系 統 、 (可 選 的 )返 回 initrd環 境 解 除 安 裝 根 檔 案 系 統 , 最 後 關 閉 電 源 。
其 他 有 關 係 統 啟 動 流 程 的 資 訊 可 以 參 考 boot (7) 手 冊 。
常 規 啟 動 流 程
當 成 功 掛 載 了 "root="核 心 引 導 選 項 指 定 的 根 檔 案 系 統 之 後 , 核 心 將 啟 動 由 "init="核 心 引 導 選 項 指 定 的 init程 式 , 從 這 個 時 間 點 開 始 , 即 進 入 了 "常 規 啟 動 流 程 ": 檢 測 硬 體 裝 置 並 載 入 驅 動 、 掛 載 必 要 的 檔 案 系 統 、 啟 動 所 有 必 要 的 服 務 , 等 等 。 對 於 systemd (1) 系 統 來 說 , 上 述 "init程 式 "就 是 systemd 程 序 , 而 整 個 "常 規 啟 動 流 程 "也 以 幾 個 特 殊 的 target 單 元 (詳 見 systemd.target (5)) 作 為 節 點 , 被 劃 分 為 幾 個 階 段 性 步 驟 。 在 每 個 階 段 性 步 驟 內 部 , 任 務 是 高 度 並 行 的 , 所 以 無 法 準 確 預 測 同 一 階 段 內 單 元 的 先 後 順 序 , 但 是 不 同 階 段 之 間 的 先 後 順 序 總 是 固 定 的 。
當 啟 動 系 統 時 , systemd 將 會 以 default.target 為 啟 動 目 標 , 藉 助 單 元 之 間 環 環 相 扣 的 依 賴 關 係 , 即 可 完 成 "常 規 啟 動 流 程 "。 default.target 通 常 只 是 一 個 指 向 graphical.target(圖 形 介 面 ) 或 multi-user.target(文 字 控 制 檯 ) 的 軟 連 線 。 為 了 強 制 啟 動 流 程 的 規 範 性 以 及 提 高 單 元 的 並 行 性 , 預 先 定 義 了 一 些 具 有 特 定 含 義 的 target 單 元 。 詳 見 systemd.special (7) 手 冊 。
下 面 的 圖 表 解 釋 了 這 些 具 有 特 定 含 義 的 target 單 元 之 間 的 依 賴 關 係 以 及 各 自 在 啟 動 流 程 中 的 位 置 。 圖 中 的 箭 頭 表 示 了 單 元 之 間 的 依 賴 關 係 與 先 後 順 序 , 整 個 圖 表 按 照 自 上 而 下 的 時 間 順 序 執 行 。
local-fs-pre.target
|
v
(各 個 mounts 與 (各 個 swap
(各 個 加 密 塊 裝
置
fsck services...) devices...) devices...) (各 個
底 層 服 務 : (各 個
底 層 虛 擬
| | | udevd, tmpfiles, 檔 案 系 統
mounts:
v v v random seed, mqueue, configfs,
local-fs.target swap.target cryptsetup.target sysctl, ...)
debugfs, ...)
| | | | |
\__________________|_________________ |
___________________|____________________/
\|/
v
sysinit.target
|
____________________________________/|\________________________________________
/ | | | \
| | | | |
v v | v v
(各 個 (各 個 | (各 個
rescue.service
timers...) paths...) | sockets...) |
| | | | v
v v | v
rescue.target
timers.target paths.target | sockets.target
. | | |
. \_________________ | ___________________/
.................................... \|/
v
basic.target
|
____________________________________/| emergency.service
/ | | |
| | | v
v v v
emergency.target
display- (圖 形 介 面 所
必 需 (各 個 系 統
服 務 )
manager.service 的 各 個 系 統
服 務 ) |
| | |
| | v
| |
multi-user.target
| | |
\_________________ | _________________/
\|/
v
graphical.target
用 斜 體 標 識 的 目 標 單 元 經 常 被 用 作 啟 動 目 標 。 有 兩 種 方 法 可 以 指 定 啟 動 目 標 : (1)使 用 systemd.unit= 核 心 引 導 選 項 (參 見 systemd (1)); (2)使 用 default.target 軟 連 線 。
因 為 timers.target 以 非 同 步 方 式 包 含 在 basic.target 中 , 所 以 timer 單 元 可 以 依 賴 於 在 basic.target 之 後 才 啟 動 的 服 務 。
INITRD(INITIAL RAM DISK) 啟 動 流 程
在 initrd內 部 , 也 可 以 將 systemd 用 作 init程 式 (由 "rdinit="核 心 引 導 選 項 指 定 )。
此 時 initrd.target 將 是 預 設 目 標 。 initrd內 部 啟 動 流 程 的 上 半 部 分 與 前 一 小 節 basic.target 之 前 的 部 分 完 全 相 同 。 隨 後 的 啟 動 流 程 將 以 initrd.target 為 目 標 (如 下 圖 所 示 )。 當 根 檔 案 系 統 裝 置 可 用 時 , 將 到 達 initd-root-device.target 目 標 。 如 果 成 功 的 將 根 檔 案 系 統 掛 載 到 /sysroot 目 錄 , 那 麼 sysroot.mount 單 元 將 被 啟 動 , 然 後 進 一 步 到 達 initrd-root-fs.target 目 標 。 initrd-parse-etc.service 將 會 分 析 /sysroot/etc/fstab 檔 案 以 掛 載 /usr (若 需 要 ) 與 帶 有 x-initrd.mount 標 記 的 掛 載 點 。 所 有 這 些 掛 載 點 都 將 被 掛 載 到 /sysroot 之 下 , 然 後 流 程 到 達 initrd-fs.target 目 標 。 再 接 下 來 initrd-cleanup.service 將 會 使 用 systemctl --no-block isolate 命 令 啟 動 initrd-switch-root.target 目 標 。 因 為 isolate 表 示 立 即 停 止 所 有 在 新 的 目 標 單 元 中 不 需 要 的 程 序 , 所 以 此 動 作 實 際 上 是 為 接 下 來 切 換 根 目 錄 做 預 先 的 準 備 (也 就 是 清 理 環 境 )。 最 後 , 啟 動 initrd-switch-root.service 服 務 , 將 系 統 的 根 目 錄 切 換 至 /sysroot 目 錄 。
(之
前 的 流 程 與 上
一 小 節 完 全 相
同 )
:
v
basic.target
| emergency.service
______________________/| |
/ | v
| initrd-root-device.target
emergency.target
| |
| v
| sysroot.mount
| |
| v
| initrd-root-fs.target
| |
| v
v initrd-parse-etc.service
(各 個 自 定 義 的 |
initrd services...) v
| (sysroot-usr.mount 以 及
| fstab 中 帶 有 x-initrd.mount
| 標 記 的 各 個 掛
載 點 )
| |
| v
| initrd-fs.target
\______________________ |
\|
v
initrd.target
|
v
initrd-cleanup.service
(使 用 isolates 啟 動
initrd-switch-root.target)
|
v
______________________/|
/ v
| initrd-udevadm-cleanup-db.service
v |
(各 個 自 定 義 的 |
initrd services...) |
\______________________ |
\|
v
initrd-switch-root.target
|
v
initrd-switch-root.service
|
v
切 換 到 主 機 上
的 作 業 系 統
關 機 流 程
systemd 系 統 在 關 機 時 同 樣 遵 循 固 定 的 流 程 , 具 體 如 下 圖 所 示 :
(與
所 有 系 統 服 務
互 斥 ) (與 所 有 檔
案 系 統 mounts, swaps, cryptsetup devices
互 斥 )
| |
v v
shutdown.target umount.target
| |
\____________________________________ ______/
\ /
v
(各 個 底 層 services)
|
v
final.target
|
_____________________________________/
\_________________________________
/ | | \
| | | |
v v v v
systemd-reboot.service systemd-poweroff.service
systemd-halt.service systemd-kexec.service
| | | |
v v v v
reboot.target poweroff.target halt.target
kexec.target
用 斜 體 標 識 的 目 標 單 元 經 常 被 用 作 關 機 目 標 。
參 見
systemd (1), boot (7), systemd.special (7), systemd.target (5), dracut (8)
跋
本 頁 面 中 文 版 由 中 文 man 手 冊 頁 計 劃 提 供 。
翻
譯 人 員 : 金 步
國
金 步 國 作 品 集
: http://www.jinbuguo.com
中 文 man 手 冊 頁 計
劃 :
https://github.com/man-pages-zh/manpages-zh