
我對 Ubuntu 中的編碼幾乎一無所知。我目前正在雙重啟動 ubuntu 16.04 LTS 和 Windows 10。但今天發生了一個錯誤,說
“找不到檔案系統”
然後grub
救援開始。經過一段時間的搜尋後,我找到了執行這些操作的解決方案:
ls
set prefix=(hd0,msdos5)/boot/grub
insmod normal
normal
我知道正在列出硬碟分割ls
區(如果我錯了請告訴我)。set prefix
當我選擇msdos5時出現錯誤。經過一番嘗試後我選擇了msdos6。然後它就跑了。但問題是,從這個問題的另一個解決方案中,我寫了這段程式碼:
set boot=(hd0,msdos6)
我想我搞砸了。可能,它涉及到硬碟的哪個分區將啟動。編寫程式碼我需要運行筆記型電腦的時候。我該如何解決這個問題?我可能還需要知道正在啟動的分區(msdos*)&我不知道如何找到它。
答案1
grub rescue>
如果在啟動時出現提示並且您必須編寫如下程式碼,我得到了此類問題的解決方案:
grub rescue> ls
grub rescue> set boot=(hd0,msdos*)
grub rescue> set prefix=(hd0,msdos*)/boot/grub
grub rescue> insmod normal
grub rescue> normal
啟動後,基於 Linux/Ubuntu 的作業系統將加載,然後打開終端機並寫入命令:
useranf@ ~ $ sudo update-grub
然後輸入這個指令:
useranf@ ~ $ sudo grub-install /dev/sda
經過這些操作後,現在終於重新啟動系統。
答案2
在 Deepak Bundela 上述的回答中,我認為以下行需要更正:
grub rescue> set boot=(hd0,msdos*)
到:
grub rescue> set root=(hd0,msdos*)
(我重複邦德拉所說的*,以免分散對真正問題的注意力)
我無法找到名為 boot 的 grub 環境變量,據我記得它一直是set root=()
我對所有說它在他們的發行版上有效的評論者感到有點困惑。他們做了一個set boot
還是一個set root
?
在grub rescue>
提示符號下,如果只是鍵入,set
它會列出所有已設定的環境變數。在我所有的 grub 救援冒險中,我從未見過boot
列出的 env 變數。