Reboot
從 /etc/rc.local 停止無限重啟循環
長話短說,我不幸的一系列開發錯誤導致*/etc/rc.local*快速執行
reboot
(在我的情況下是在 Pi 上)。機器現在陷入無限重啟循環。我能阻止它嗎?它在登錄提示顯示之前重新啟動,即使它沒有,我也沒有時間停止它。
是否有一些神奇的鍵盤快捷鍵可以阻止 /etc/rc.local 執行?
我在這裡找到了在啟動(rc.local)中退出無限重啟循環,但這實際上處理的是先發製人的問題,而不是事後修復它。哎呀。
在 PC 上,您將編輯核心命令行並(例如)附加以下之一:
systemd.unit=emergency.target
只得到一個shell(需要systemd);systemd.unit=rescue.target
開始一些更多的東西,然後是一個shell(需要systemd);single
在 SysV 初始化系統上引導到單使用者模式。不過,不完全確定這會避免rc.local
在 Wheezy 上。或者init=/bin/bash
,這將完全避免啟動 init,而是為您提供一個 shell(然後您可以在其中以讀寫方式重新安裝根文件系統,並編輯損壞的文件)。不過,我不完全確定在 Pi 上,這會給你一個工作鍵盤。它需要一些知識,因為您將在沒有為您設置系統的情況下執行;您通常可以使用exec /sbin/init
繼續引導。(適用於任何初始化系統,因為您完全繞過它)。除非您使用 NOOBS ,否則我認為沒有辦法在 Raspberry Pi 上執行此操作。在這種情況下,按住 shift 鍵應該會給你一個恢復界面,讓你可以編輯
cmdline.txt
——這會改變核心命令行。(或者,可能只是編輯損壞的文件——如果可能的話,我建議這樣做)另一種選擇是將您的 SD 卡從 Pi 中取出,並使用 SD 讀卡器安裝引導分區(我相信是 FAT32,因此您應該能夠在 Windows 上執行此操作)或根分區(其中可能是 ext4,所以你需要執行 Linux)。然後您可以更改核心命令行
cmdline.txt
或直接修復您的rc.local
. 如果您cmdline.txt
在 Windows 上進行編輯,請確保使用能夠理解 Unix 風格的行尾並且不會弄亂它們的編輯器。就個人而言,我的方法是將 Pi 的根文件系統安裝在 Linux 機器上並編輯損壞的
rc.local
.再次啟動 Pi 後,請記住從 中刪除任何救援選項
cmdline.txt
。