Linux + Win 雙系統卻不見Grub 開機選單?

文章推薦指數: 80 %
投票人數:10人

Step. 4 - Mount Ubuntu and its Boot Articles31Tags31Categories13HomeArchivesTagsCategoriesLinkAbout安裝了Linux+Windows的雙系統,但卻不見開機選單?放心,很多人跟你一樣。

事先聲明在磁區間操作有一定風險,若操作不當導致不可逆的後果,本站概不負責。

本文全程以Ubuntu20.04.3LTS操作,其他版本不一定適用。

MBR(MasterBootRecord,主啟動磁區)首先,一般計算機在開機時,會先執行BIOS之後才進入OS。

但其實準確的說,在進入OS前,會先經過MBR(MasterBootRecord),也就是主啟動磁區。

至於進入哪個作業系統,這就靠MBR的設定了。

BootLoader(開機引導)雙系統並非什麼新鮮事,但對新手來說,可能會持續糾結DualBooting的問題好一陣子。

為了方便使用雙系統,大多數的作法是在進入OS前,載入一個選單,由使用者手動選擇來決定使用哪個OS以達到雙系統的目的。

而這個選單就是大家所說的BootLoader(開機引導)。

其中GNUProject中的程式「GRUB(GRandUnifiedBootloader)」極具代表性。

而Ubuntu預設就會安裝Grub(以下以Ubuntu做解說)Linux+Windows雙系統若使用者在已有WindowsSystem下的計算機安裝第二(或更多)個系統,那對MBR會有什麼影響?當計算機只有單一系統時,MBR理所當然的只會進入該系統。

但若是安裝了第二個系統,這時MBR有著極大的可能會被第二個系統所覆寫,進而導致一個「MBR會指向越晚安裝的系統」的現象。

安裝OS的順序也有關係?正因為大多數情況下MBR會被最後一個安裝的系統給覆蓋設定,因此若是最後一個安裝的系統有如GURB之類的開機引導,那麼就可以成功顯示開機選單。

因此大多數情況下都會建議使用者先安裝Windows後,才安裝Linux。

由於前面提到的,Ubuntu預設會自動為使用者安裝Grub,因此若是先安裝Windows再安裝Ubuntu的話,那麼MBR將會指向Linux的BootLoader也就是Grub。

我偏要先安裝Linux再裝Windows同理,若是讓MBR指向Windows的BootLoader,那將不會有Grub,也就是會直接進入Windows。

即便如此,在某些情況下仍然有著需要最後安裝Windows的需求。

而大多數的新手玩家在安裝完雙系統後,發現開機選單消失,大多數都是因為上述原因。

這時候其實只需要手動再安裝一次Grub即可。

正式開始-手動安裝Grub以覆寫MBR設定Step.1-準備UbuntuLiveCD你需要準備一個裝有UbuntuOS的開機碟,靠它來協助你手動安裝Grub。

Step.2-進入Ubuntu利用開機碟進入Ubuntu的安裝界面。

注意!別急著按下安裝,我們僅需要使用試用模式即可,按下「TryUbuntu(試用Ubuntu)」後進入Ubuntu桌面環境。

Step.3-確定EFI、Ubuntu及Ubuntu’sBoot所在磁區接著掛載原有的Ubuntu安裝區。

使用fdisk-l指令查看當前磁區狀況。

記得使用root權限執行。

$sudofdisk-l ...... DeviceStartEndSectorsSizeType /dev/sda12048624639622592304MEFISystem ...... /dev/sda4173963264886562815712599552339.8GLinuxfilesystem /dev/sda588656281689187532753125122.5GLinuxfilesystem ......每個人的磁區編號不同,以上面例子來說:/dev/sda1為EFISystem。

EFI的磁區編號不重要,記得是在哪個硬碟就好,如上述為/dev/sda。

而Ubuntu則是裝在/dev/sda4。

若當初在安裝Ubuntu時,有選擇另外分割Boot,那麼就會看到如例子中的/dev/sda5,反之則沒有。

Step.4-MountUbuntuanditsBoot確認完計算機上的磁區後,就可以開始操作了。

首先先將Ubuntumount起來,以下的磁區請依個人在Step.3所見更改。

sudomount/dev/sda4/mnt sudomount/dev/sda5/mnt/boot/efi#若Boot有獨立分割才需要Step.5-安裝Grub$sudochroot/mnt $grub-install/dev/sda#請自行依照個人在`Step.3`所見的EFI磁碟編號更改。

...... $update-grub ......Step.6-重新開機,迎接Grub的到來😃reboot安裝過程報錯cannotfindefidirectory這可能是因為Grub安裝程式抓不到你掛載下來的EFI目錄,這時請在grub-install後加上參數「--efi-directory=/mnt/boot/efi」來指定。

若還有其他錯誤,那麼請試著將路徑參數手動指定(請自行確認計算機上的路徑):grub-install--boot-directory=/mnt/boot--efi-directory=/mnt/boot/efi--target=x86_64-efi 若錯誤依舊無法解決,那麼可能是在前面幾個步驟出錯,請自行再檢查一次,或者將錯誤訊息丟上Google,以及到Ubuntu社群「askubuntu.com」看看大家的討論。

不再自動進入Windows,改為自動進入Ubuntu!?開機選單呢!!編輯以下檔案:sudovim/etc/default/grub 找到「GRUB_TIMEOUT_STYLE=hidden」在前方加上「#」註解掉,即「#GRUB_TIMEOUT_STYLE=hidden」,保存並關閉。

在更早的版本中則是「GRUB_HIDDEN_TIMEOUT=0」,一樣將其註解為「#GRUB_HIDDEN_TIMEOUT=0」後保存。

沒意外的話就可以在Reboot之後看見Grub選單了!Author:Alpaca0x0Link:https://blog.alpaca0x0.com/posts/Dual-Boot-with-Grub/CopyrightNotice:AllarticlesinthisblogarelicensedunderCCBY-NC-SA4.0unlessstatingadditionally.WindowsLinuxGrubDonateBTCPreviousPostSimplysettingupaProxyServerwithSSHNextPostRaspberryPi4(Ubuntu)configureautoconnecttowifiAlpaca0x0廢到笑,學渣一隻。

Articles31Tags31Categories13FollowMeCatalog1.事先聲明2.MBR(MasterBootRecord,主啟動磁區)3.BootLoader(開機引導)4.Linux+Windows雙系統5.安裝OS的順序也有關係?6.我偏要先安裝Linux再裝Windows7.正式開始-手動安裝Grub以覆寫MBR設定7.1.Step.1-準備UbuntuLiveCD7.2.Step.2-進入Ubuntu7.3.Step.3-確定EFI、Ubuntu及Ubuntu’sBoot所在磁區7.4.Step.4-MountUbuntuanditsBoot7.5.Step.5-安裝Grub7.6.Step.6-重新開機,迎接Grub的到來😃8.安裝過程報錯9.不再自動進入Windows,改為自動進入Ubuntu!?開機選單呢!!RecentPostCTF「hackme」WebWriteUp2022-04-11ChangerootpasswordinMySQL82022-01-29Ubuntu更換/Home到新硬碟2022-01-27HowtousePPPoEtoconnectnetworkonUbuntu2022-01-21BuildaFTPServerwith「vsftpd」2022-01-19简Localsearch✨網站已更新最新版本👉點擊刷新



請為這篇文章評分?