詳解在 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
發行版。