如何運行 update-grub?

如何運行 update-grub?

我進入 Live CD 並啟動終端。然後,我鍵入gksu nautilus以獲得對根目錄的臨時存取權限。打開管理器視窗後,我點擊“檔案系統”並導航到該/etc/default/grub目錄。然後,我雙擊 Grub 檔案以對 和 進行TIMEOUT更改TIMEOUT_QUIET

更改後我保存了文件。然後我回到終端機模式並輸入:

gksu update-grub

我收到的錯誤訊息是:

找不到 / 的裝置(/dev 是否​​已安裝?)

我不知道此時該怎麼辦。我該如何運行update-grub來更新更改?在此先感謝您的幫忙。請非常詳細和具體地回答您的問題,因為我對這個環境完全陌生。

答案1

第 1 階段 - 注意:不要使用 Live CD。

  • 在你的 Ubuntu 中開啟一個終端機(同時按Ctrl+ Alt+ )T
  • 類型gedit admin:///etc/default/grub
    這將運行文字編輯器編輯器,如果您使用另一個,只需鍵入它的名稱而不是gedit.
  • 進行您想要進行的更改並儲存它們。
  • 關閉 gedit。
    您的終端應該仍然打開。
  • 在終端機中輸入sudo update-grub,等待更新完成。
  • 重新啟動電腦。

第 2 階段 - 登入系統後

  • 再次開啟終端機 ( Ctrl++ Alt) T
  • 在終端機中輸入gksu gedit /etc/default/grub
  • 若要在啟動時查看 grub 選單,
    請註解或刪除以下行:GRUB_HIDDEN_TIMEOUT=0
    • 要註釋,請#在該行的開頭添加,結果將是#GRUB_HIDDEN_TIMEOUT=0
  • 儲存文件。
  • 再次在終端機運作sudo update-grub

如果您只想在啟動時看到 grub 選單,則應該撤銷先前對檔案所做的變更。

答案2

您收到該訊息是因為 Live CD 未安裝可寫入檔案系統。它僅用於試用 Ubuntu 或挽救損壞的系統。執行 asudo update-grub僅適用於已安裝的 Ubuntu 版本,您對底層 GRUB 檔案具有寫入權限(而在 Live CD 上則沒有)。

答案3

你可以從已安裝的Ubuntu 發行版上的Live CD 執行update-grub (儘管我假設這適用於任何[基於debian?] linux 發行版。它是「必需的」(可能還有其他方法,但知道這個,我不知道)根本不關心它們)如果您克隆驅動器並且已經在計算機中安裝了新驅動器,我在這裡廣泛地提到克隆,因為從某種意義上說, update-grub 步驟是它的一個子集,並且方法具有相同的。

我應該在這裡限定這一點;對於克隆很重要,對於更新 grub 並不重要:我僅在 BIOS 系統上完成了此操作。我還沒有在 UEFI 系統上嘗試過。 UEFI 系統需要一個 FAT 分割區來啟動加載,我還沒有測試過這個分割區是否應該在複製複製步驟中順便出現。我預計它確實會影響實時會話期間合成本機 grub 環境所需的 [bind-]mounting...

此頁面對此進行了詳細說明:http://frugaltech.happystoic.com/ssdlinux。我已經多次使用此方法,並且您可以使用它無限地交換硬碟。這樣,交換實體硬碟變得如此微不足道,人們很容易將其作為自己的愛好和/或嘗試修復其他人搞砸的電腦。

以下內容可能是您在那裡找到的內容的有用解釋:

  1. Ctrl+ Alt+用於 Bash 終端機並在即時會話期間T輸入超級使用者 shell ( )。sudo -s

  2. 掛載完整安裝磁碟機分割區([或將成為]您的永久 Linux 檔案系統根目錄)。

    2a.如果完整安裝已存在於您的硬碟上,請跳至 (2)。如果您正在複製:[基於您沒有進行全新安裝的假設,因為在這種情況下這都是完全自動的]如果您的完整安裝尚未存在於該分割區上,那麼現在是時候簡單地

    rsync -a /existing/linux/filesystem/live-mount-point/ /new/linux/filesystem/live-mount-point/ 
    

    [這些安裝點純粹是針對即時會話環境的 - 在 Ubuntu 中,它們通常採用「/media/ubuntu/???」的形式] 將其安裝到新磁碟機 [分割] 上。

    2b.其他作業系統完整安裝可以在此處以相同的方式處理。我通常使用基於 Windows 的資源提前將 Windows 分割區批量複製到新驅動器,但我也使用過 rsync 並且它適用於 Win XP(假設您支援正確的分割區格式,例如 ntfs;我認為即時會話媒體通常包含替代格式支持)。只要小心拼寫, /如果您完全命名目標,請在來源目錄中使用尾隨。

  3. /dev將 live 、/proc和目錄綁定/sys到您要使用的[已安裝]永久完整安裝分割區上各自的目錄。上面連結中詳細介紹的腳本透過「for」語句非常優雅地完成了這項任務。此外,給出的腳本本身不需要作為腳本執行。可以從 bash 提示字元逐行輸入它。

  4. chroot到永久完整安裝分割區。完成 (3) 和 (4) 後,系統現在「虛擬駐留在」您的「最終檔案系統」中,並且 GRUB 將同質運行。如果沒有這些步驟,grub 會假設您的系統只是一個即時會話,我不知道它在這種情況下具體做什麼,但它並不是期望的結果,正如本線程上面提到的那樣。

  5. 在與永久安裝相對應的(驅動器,而不是安裝點)上執行 grub-install /dev/sdX(或如果是多驅動器 [、多開機] 系統,則在將託管 GRUB 的驅動器上)運行 grub-install。這裡的靈活性可能取決於您的年份和 BIOS。據我所知,如果沒有必要,運行“grub-install”不會有任何害處,所以如果我使用這種實時會話方法,我總是這樣做。

  6. 運行 update-grub ,它將像正在運行的系統嵌套在未來的永久分區中一樣,發現您可能擁有的所有核心和可啟動作業系統。

  7. 如果您沒有實際更改硬碟,請跳至 (5)。否則,編輯或驗證您的 /new/linux/filesystem/live-mount-point/etc/fstab檔案以確保您的[新]環境的檔案系統結構正確。如果您處於這個級別,您肯定已經了解如何使用 blkid fstab 取得 UUID。

    恕我直言:您應該始終在fstab 中使用UUID(而不是“dev/sdXY”形式),因為在其自己的範圍內,它不受物理硬碟重新配置的影響,除了需要UUID 值的文字更新的程度(例如,如果在將來某個時候您會為 /home 目錄安裝額外的 HDD 等)。它只是最基本、最穩健、最不變的方法。

  8. 退出 chroot、退出 supershell、退出 bash、關閉並在沒有即時媒體的情況下啟動系統。您現在應該到達您想要的位置了。

    重要注意: mount 和 的參數是與即時會話對應的chroot目錄(通常是掛載點,例如/mnt/??或)。/media/??在大多數(如果不是全部)情況下,完整安裝駐留在其自己的分區中,因此術語“目錄”和“安裝點”在這裡本質上是同義詞。 grub-install 的參數是實體磁碟機(通常/dev/sdX,其中「X」是與系統中的磁碟機、sda、sdb 等相對應的字母,而且它不應該依賴會話)。

現在你應該完成了。我使用這種方法同時以各種排列方式複製了 Windows(XP 和 7)以及 Ubuntu 和 Puppy,它並沒有讓我失望。我認為您可以使用不同發行版的即時媒體(不過,我只使用了不同的 Ubuntu 版本和 Mint),只要它們提供您打算使用的 GRUB 版本。您可以使用此功能移動分割區、交換磁碟機、組合其他作業系統安裝以及複製到 SSD 或從 SSD 複製。不過,我只能說它在同一台機器上工作。我假設在先前的完整安裝過程中可能已跳過其他電腦可能需要的驅動程式。我的經驗是切換電腦中的驅動器需要這種方法,但是切換帶有驅動器的電腦需要完全[重新]安裝。

也許有人可以揭穿這一點..?

相關內容