詳解在 Ubuntu 中引導到救援模式或緊急模式

你可能已經知道,在 RHEL 7 、RHEL 8 、Ubuntu 16.04 LTS 及其更新的版本的 Linux 發行版中 運行等級Runlevels 已經被 系統目標Systemd target 所替代。更多關于 運行等級Runlevel 和 系統目標Systemd targets 的信息,參考 ??這篇指南?? 。
這篇指南是針對 Ubuntu 編寫的,但是,下面所給的步驟應該也適用于大多數使用 systemd 作為默認服務管理器的 Linux 發行版。
在進入主題前,讓我們簡單的理解:什么是 救援rescue 模式 和 緊急Emergency 模式,以及這兩種模式的目的是什么。
什么是救援模式?
在 Linux 發行版中,救援模式等效于使用 SysV 作為默認的服務器管理器的 單用戶single user 模式。在救援模式中,將掛載所有的本地文件系統,將僅啟動一些重要的服務。但是,不會啟動一般的服務(例如,網絡服務)。
救援模式在不能正常引導系統的情況下是很有用的。此外,我們可以在救援模式下執行一些重要的救援操作,例如,??重新設置 root 密碼?? 。
什么是緊急模式?
與救援模式相比,在緊急模式中,不會啟動任何的東西。不會啟動服務、不會掛載掛載點、不會建立套接字、什么都不會啟動。你將所擁有的只是一個 原始的 shell 。緊急模式適用于調試目的。
首先,我們將看到如何在 Ubuntu 22.04 和 20.04 LTS 發行版中引導到救援模式或緊急模式。在 Ubuntu 22.04 和 20.04 LTS 中的過程是完全相同的!
在 Ubuntu 22.04 / 20.04 LTS 中引導到救援模式
我們可以使用兩種方法來引導到救援模式。
方法 1
打開你的 Ubuntu 系統。在 BIOS 徽標出現后,按下 ??ESC?? 按鍵來顯示 GRUB 菜單。
在 GRUB 菜單中,選擇第一項,并按下 ??e?? 按鍵來編輯它。

GRUB Menu In Ubuntu 22.04 / 20.04 LTS
按下 ??↓??? 按鍵,并找到以單詞 ??linux??? 開頭的一行代碼,并在其結尾處添加下面的一行代碼。為到達其結尾處,只需要按下 ??Ctrl + e??? 組合鍵,或使用你鍵盤上的 ??END??? 按鍵或 ??←???/??→?? 按鍵。

Edit Grub Boot Menu Entries To Enter Into Rescue Mode In Ubuntu 22.04 / 20.04 LTS
在添加上面的代碼行后,按下 ??Ctrl + x??? 組合鍵或按下 ??F10?? 按鍵來引導到救援模式。
數秒后,你將作為 root 用戶來登錄到救援模式(即單用戶模式)。將會提示你按下回車鍵來進入維護。
下圖是 Ubuntu 22.04 / 20.04 LTS 系統的救援模式的樣子:

Boot Into Rescue Mode In Ubuntu 22.04 / 20.04 LTS
現在,在救援模式中做你想做的任何事。在救援模式中,在你執行任何操作前,你可能需要以 讀/寫模式來掛載根(??/??)文件系統。

Mount Root File System In Read Write Mode In Ubuntu 22.04 / 20.04 LTS
在完成后,按下 ??Ctrl + d?? 組合鍵來引導到正常模式。或者,你可以輸入下面的任意一個命令來引導到正常模式。
或者,
如果你想重新啟動系統,而不是引導到正常的模式,輸入:
方法 2
在這種方法中,你不需要編輯 GRUB 啟動菜單項目。
打開系統電源,并從 GRUB 啟動菜單中選擇 Ubuntu 高級選項Advanced options for Ubuntu。

Choose Advanced Options For Ubuntu From Grub Boot Menu
接下來,你將看到一個帶有內核版本的可用的 Ubuntu 版本的列表。在 Ubuntu 中的 GRUB 啟動菜單中選擇 恢復模式Recovery mode 。

Choose Recovery Mode In Grub Boot Menu In Ubuntu 22.04 / 20.04 LTS
數秒后,你將看到 Ubuntu 的 恢復Recovery 菜單。從恢復菜單中,選擇 進入 root 的 shell 提示符Drop to root shell prompt 選項 ,并按下回車鍵。

Enter Into Root Shell Prompt In Ubuntu 22.04 / 20.04 LTS
現在,你將進入維護。

Ubuntu Maintenance Mode
通過輸入下面的命令來 以讀/寫模式的方式 來掛載根(??/??)文件系統:

Mount Root File System In Read Write Mode In Ubuntu
在救援模式中做你想做的任何事。
在完成后,輸入 ??exit?? 來返回到恢復菜單。
最后,選擇 救援正常啟動Resume normal boot 選項,并按下回車鍵。

Boot Into Normal Mode In Ubuntu
再次按下回車鍵來退出恢復模式,并繼續引導到正常模式。

Exit The Recovery Mode In Ubuntu
如果你不想引導到正常模式,從救援模式中輸入 ??reboot?? 并按下回車鍵來重新啟動你的系統。
在 Ubuntu 22.04 / 20.04 LTS 中引導到緊急模式
當 GRUB 菜單出現時,按下 ??e?? 按鍵來編輯它。

GRUB Menu In Ubuntu 22.04 / 20.04 LTS
找到以單詞 ??linux?? 開頭的一行代碼,并在其結尾處添加下面的一行代碼:

Edit Grub Boot Menu Entries To Enter Into Emergency Mode In Ubuntu 22.04 / 20.04 LTS
在添加上面的代碼行后,按下 ??Ctrl + x??? 組合鍵,或按下 ??F10?? 按鍵來引導到緊急模式。
數秒后,你將作為 ??root?? 用戶來進入維護。將會提示你按下回車鍵來進入緊急模式。
下圖是 Ubuntu 22.04 / 20.04 LTS 系統的緊急模式的樣子:

Boot Into Emergency Mode In Ubuntu 22.04 / 20.04 LTS
現在,在緊急模式中做你想做的任何事。在緊急模式中,在你執行任何操作前,你可能需要以讀/寫模式來掛載根(??/??)文件系統。
在完成后,按下 ??Ctrl + d?? 組合鍵來引導到正常模式。或者,你可以輸入下面的任意一個命令來引導到正常模式。
或者,
如果你想重新啟動系統,而不是引導到正常模式,輸入:
在 Ubuntu 18.04 LTS 中引導到救援模式
啟動你的 Ubuntu 系統。當 GRUB 菜單出現時,選擇第一項并按下按鍵 ??e??? 來編輯。(為到達其行尾處,只需要按下 ??Ctrl + e??? 組合鍵,或使用你鍵盤上的 ??END??? 按鍵或 ??←???/??→?? 按鍵):

Grub Menu
如果你沒有看到 GRUB 菜單,只需要在 BIOS 徽標出現后,按下 ??ESC?? 按鍵來顯示 GRUB 菜單。
找到以單詞 ??linux??? 開頭的一行代碼,并在其結尾處添加下面的一行代碼(為到達其行尾處,只需要按下 ??Ctrl + e??? 組合鍵,或使用你鍵盤上的 END??按鍵或???←??/??→` 按鍵):

Edit Grub Menu
在添加上面的代碼行后,只需要按下 ??Ctrl + x??? 組合鍵,或按下 ??F10??? 按鍵來引導到救援模式。數秒后,你將作為 ??root?? 用戶進入維護(即單用戶模式)。
下圖是 Ubuntu 18.04 LTS 服務器系統的救援模式的樣子:

Ubuntu Rescue Mode
接下來,輸入下面的命令來掛載根(??/??)文件系統為讀/寫模式。
在 Ubuntu 18.04 LTS 中引導到緊急模式
引導你的 Ubuntu 到緊急模式基本與上述方法相同。你所需要做的全部工作是,在編輯 GRUB 菜單時,將 ??systemd.unit=rescue.target??? 替換為 ??systemd.unit=emergency.target?? 。

Edit Grub Menu
在你添加 ??systemd.unit=emergency.target??? 后,按下 ??Ctrl + x??? 組合鍵,或按下 ??F10?? 按鍵來引導到緊急模式。

Ubuntu Emergency Mode
最后,你可以使用下面的命令來以讀/寫模式的方式來掛載根(??/??)文件系統:
在救援模式和緊急模式之間切換
如果你正在救援模式中,你不必像我上述提到的那樣來編輯 GRUB 的菜單啟動項。相反,你只想要輸入下面的命令來立刻切換到緊急模式:
同樣,為從緊急模式切換到救援模式,輸入:
總結
現在,你知道了什么是救援模式和緊急模式,以及如何在 Ubuntu 22.04 、20.04 和 18.04 LTS
系統中啟動到這些模式。正如我已經提到的,在這里提供的這些步驟應該也適用于大多數當前使用 systemd 作為默認服務管理器的 Linux
發行版。
























