詳解在 Ubuntu 中引導(dǎo)到救援模式或緊急模式
你可能已經(jīng)知道,在 RHEL 7 、RHEL 8 、Ubuntu 16.04 LTS 及其更新的版本的 Linux 發(fā)行版中 運(yùn)行等級(jí)Runlevels 已經(jīng)被 系統(tǒng)目標(biāo)Systemd target 所替代。更多關(guān)于 運(yùn)行等級(jí)Runlevel 和 系統(tǒng)目標(biāo)Systemd targets 的信息,參考 ??這篇指南?? 。
這篇指南是針對(duì) Ubuntu 編寫的,但是,下面所給的步驟應(yīng)該也適用于大多數(shù)使用 systemd 作為默認(rèn)服務(wù)管理器的 Linux 發(fā)行版。
在進(jìn)入主題前,讓我們簡(jiǎn)單的理解:什么是 救援rescue 模式 和 緊急Emergency 模式,以及這兩種模式的目的是什么。
什么是救援模式?
在 Linux 發(fā)行版中,救援模式等效于使用 SysV 作為默認(rèn)的服務(wù)器管理器的 單用戶single user 模式。在救援模式中,將掛載所有的本地文件系統(tǒng),將僅啟動(dòng)一些重要的服務(wù)。但是,不會(huì)啟動(dòng)一般的服務(wù)(例如,網(wǎng)絡(luò)服務(wù))。
救援模式在不能正常引導(dǎo)系統(tǒng)的情況下是很有用的。此外,我們可以在救援模式下執(zhí)行一些重要的救援操作,例如,??重新設(shè)置 root 密碼?? 。
什么是緊急模式?
與救援模式相比,在緊急模式中,不會(huì)啟動(dòng)任何的東西。不會(huì)啟動(dòng)服務(wù)、不會(huì)掛載掛載點(diǎn)、不會(huì)建立套接字、什么都不會(huì)啟動(dòng)。你將所擁有的只是一個(gè) 原始的 shell 。緊急模式適用于調(diào)試目的。
首先,我們將看到如何在 Ubuntu 22.04 和 20.04 LTS 發(fā)行版中引導(dǎo)到救援模式或緊急模式。在 Ubuntu 22.04 和 20.04 LTS 中的過程是完全相同的!
在 Ubuntu 22.04 / 20.04 LTS 中引導(dǎo)到救援模式
我們可以使用兩種方法來引導(dǎo)到救援模式。
方法 1
打開你的 Ubuntu 系統(tǒng)。在 BIOS 徽標(biāo)出現(xiàn)后,按下 ??ESC?
? 按鍵來顯示 GRUB 菜單。
在 GRUB 菜單中,選擇第一項(xiàng),并按下 ??e?
? 按鍵來編輯它。
GRUB Menu In Ubuntu 22.04 / 20.04 LTS
按下 ??↓?
?? 按鍵,并找到以單詞 ??linux?
?? 開頭的一行代碼,并在其結(jié)尾處添加下面的一行代碼。為到達(dá)其結(jié)尾處,只需要按下 ??Ctrl + e?
?? 組合鍵,或使用你鍵盤上的 ??END?
?? 按鍵或 ??←?
??/??→?
? 按鍵。
Edit Grub Boot Menu Entries To Enter Into Rescue Mode In Ubuntu 22.04 / 20.04 LTS
在添加上面的代碼行后,按下 ??Ctrl + x?
?? 組合鍵或按下 ??F10?
? 按鍵來引導(dǎo)到救援模式。
數(shù)秒后,你將作為 root 用戶來登錄到救援模式(即單用戶模式)。將會(huì)提示你按下回車鍵來進(jìn)入維護(hù)。
下圖是 Ubuntu 22.04 / 20.04 LTS 系統(tǒng)的救援模式的樣子:
Boot Into Rescue Mode In Ubuntu 22.04 / 20.04 LTS
現(xiàn)在,在救援模式中做你想做的任何事。在救援模式中,在你執(zhí)行任何操作前,你可能需要以 讀/寫模式來掛載根(??/?
?)文件系統(tǒng)。
Mount Root File System In Read Write Mode In Ubuntu 22.04 / 20.04 LTS
在完成后,按下 ??Ctrl + d?
? 組合鍵來引導(dǎo)到正常模式。或者,你可以輸入下面的任意一個(gè)命令來引導(dǎo)到正常模式。
或者,
如果你想重新啟動(dòng)系統(tǒng),而不是引導(dǎo)到正常的模式,輸入:
方法 2
在這種方法中,你不需要編輯 GRUB 啟動(dòng)菜單項(xiàng)目。
打開系統(tǒng)電源,并從 GRUB 啟動(dòng)菜單中選擇 Ubuntu 高級(jí)選項(xiàng)Advanced options for Ubuntu。
Choose Advanced Options For Ubuntu From Grub Boot Menu
接下來,你將看到一個(gè)帶有內(nèi)核版本的可用的 Ubuntu 版本的列表。在 Ubuntu 中的 GRUB 啟動(dòng)菜單中選擇 恢復(fù)模式Recovery mode 。
Choose Recovery Mode In Grub Boot Menu In Ubuntu 22.04 / 20.04 LTS
數(shù)秒后,你將看到 Ubuntu 的 恢復(fù)Recovery 菜單。從恢復(fù)菜單中,選擇 進(jìn)入 root 的 shell 提示符Drop to root shell prompt 選項(xiàng) ,并按下回車鍵。
Enter Into Root Shell Prompt In Ubuntu 22.04 / 20.04 LTS
現(xiàn)在,你將進(jìn)入維護(hù)。
Ubuntu Maintenance Mode
通過輸入下面的命令來 以讀/寫模式的方式 來掛載根(??/?
?)文件系統(tǒng):
Mount Root File System In Read Write Mode In Ubuntu
在救援模式中做你想做的任何事。
在完成后,輸入 ??exit?
? 來返回到恢復(fù)菜單。
最后,選擇 救援正常啟動(dòng)Resume normal boot 選項(xiàng),并按下回車鍵。
Boot Into Normal Mode In Ubuntu
再次按下回車鍵來退出恢復(fù)模式,并繼續(xù)引導(dǎo)到正常模式。
Exit The Recovery Mode In Ubuntu
如果你不想引導(dǎo)到正常模式,從救援模式中輸入 ??reboot?
? 并按下回車鍵來重新啟動(dòng)你的系統(tǒng)。
在 Ubuntu 22.04 / 20.04 LTS 中引導(dǎo)到緊急模式
當(dāng) GRUB 菜單出現(xiàn)時(shí),按下 ??e?
? 按鍵來編輯它。
GRUB Menu In Ubuntu 22.04 / 20.04 LTS
找到以單詞 ??linux?
? 開頭的一行代碼,并在其結(jié)尾處添加下面的一行代碼:
Edit Grub Boot Menu Entries To Enter Into Emergency Mode In Ubuntu 22.04 / 20.04 LTS
在添加上面的代碼行后,按下 ??Ctrl + x?
?? 組合鍵,或按下 ??F10?
? 按鍵來引導(dǎo)到緊急模式。
數(shù)秒后,你將作為 ??root?
? 用戶來進(jìn)入維護(hù)。將會(huì)提示你按下回車鍵來進(jìn)入緊急模式。
下圖是 Ubuntu 22.04 / 20.04 LTS 系統(tǒng)的緊急模式的樣子:
Boot Into Emergency Mode In Ubuntu 22.04 / 20.04 LTS
現(xiàn)在,在緊急模式中做你想做的任何事。在緊急模式中,在你執(zhí)行任何操作前,你可能需要以讀/寫模式來掛載根(??/?
?)文件系統(tǒng)。
在完成后,按下 ??Ctrl + d?
? 組合鍵來引導(dǎo)到正常模式?;蛘撸憧梢暂斎胂旅娴娜我庖粋€(gè)命令來引導(dǎo)到正常模式。
或者,
如果你想重新啟動(dòng)系統(tǒng),而不是引導(dǎo)到正常模式,輸入:
在 Ubuntu 18.04 LTS 中引導(dǎo)到救援模式
啟動(dòng)你的 Ubuntu 系統(tǒng)。當(dāng) GRUB 菜單出現(xiàn)時(shí),選擇第一項(xiàng)并按下按鍵 ??e?
?? 來編輯。(為到達(dá)其行尾處,只需要按下 ??Ctrl + e?
?? 組合鍵,或使用你鍵盤上的 ??END?
?? 按鍵或 ??←?
??/??→?
? 按鍵):
Grub Menu
如果你沒有看到 GRUB 菜單,只需要在 BIOS 徽標(biāo)出現(xiàn)后,按下 ??ESC?
? 按鍵來顯示 GRUB 菜單。
找到以單詞 ??linux?
?? 開頭的一行代碼,并在其結(jié)尾處添加下面的一行代碼(為到達(dá)其行尾處,只需要按下 ??Ctrl + e?
?? 組合鍵,或使用你鍵盤上的 END??按鍵或?
??←??/?
?→` 按鍵):
Edit Grub Menu
在添加上面的代碼行后,只需要按下 ??Ctrl + x?
?? 組合鍵,或按下 ??F10?
?? 按鍵來引導(dǎo)到救援模式。數(shù)秒后,你將作為 ??root?
? 用戶進(jìn)入維護(hù)(即單用戶模式)。
下圖是 Ubuntu 18.04 LTS 服務(wù)器系統(tǒng)的救援模式的樣子:
Ubuntu Rescue Mode
接下來,輸入下面的命令來掛載根(??/?
?)文件系統(tǒng)為讀/寫模式。
在 Ubuntu 18.04 LTS 中引導(dǎo)到緊急模式
引導(dǎo)你的 Ubuntu 到緊急模式基本與上述方法相同。你所需要做的全部工作是,在編輯 GRUB 菜單時(shí),將 ??systemd.unit=rescue.target?
?? 替換為 ??systemd.unit=emergency.target?
? 。
Edit Grub Menu
在你添加 ??systemd.unit=emergency.target?
?? 后,按下 ??Ctrl + x?
?? 組合鍵,或按下 ??F10?
? 按鍵來引導(dǎo)到緊急模式。
Ubuntu Emergency Mode
最后,你可以使用下面的命令來以讀/寫模式的方式來掛載根(??/?
?)文件系統(tǒng):
在救援模式和緊急模式之間切換
如果你正在救援模式中,你不必像我上述提到的那樣來編輯 GRUB 的菜單啟動(dòng)項(xiàng)。相反,你只想要輸入下面的命令來立刻切換到緊急模式:
同樣,為從緊急模式切換到救援模式,輸入:
總結(jié)
現(xiàn)在,你知道了什么是救援模式和緊急模式,以及如何在 Ubuntu 22.04 、20.04 和 18.04 LTS
系統(tǒng)中啟動(dòng)到這些模式。正如我已經(jīng)提到的,在這里提供的這些步驟應(yīng)該也適用于大多數(shù)當(dāng)前使用 systemd 作為默認(rèn)服務(wù)管理器的 Linux
發(fā)行版。