雙系統使用Linux引導

2022-02-17 09:37:19 字數 1871 閱讀 7689

今天在裝linux的window雙系統時,出現在無法使用linux引導的問題,開機總是自動進windows,照理來說我先裝的window,後裝的linux,應該是開機進grub引導才對。在主機板的boot裡根本沒有linux項,後來用easyuefi檢查發現linux的啟動項被禁止和隱藏了!!

後來查了查,部分品牌的電腦會出現無法使用linux引導的問題,bios的boot裡只有windows的啟動項。如果是傳統的引導方式,可以通過easybcd在windows系統下新增linux啟動項,而uefi的啟動方式就沒法用window引導linux了。

此時可以使用linux的引導檔案替換windows的引導檔案,讓主機板以為你這是windows的引導項。

雖然通過正常的方式無法進入linux系統,但是可以通過linux的啟動盤找到linux的啟動項,我用的是manjaro系統,插入燒錄好的u盤,選擇usb方式引導,在detect efi bootloaders裡可以找到安裝好的manjaro系統的引導項。通過它可以進入linux系統。

進入系統的/boot/efi/efi/目錄可以看到如下三個資料夾

總用量 32

drwx------ 2 root root 8192 10月 7 05:53 boot

drwx------ 2 root root 8192 10月 7 14:14 manjaro

drwx------ 4 root root 8192 10月 7 15:07 microsoft

其中manjaro裡的grubx64.efi就是linux的bootloader。

為了開機使用linux引導我們可以使用manjaro的grubx64.efi替換microsoft的bootmgfw.efi,在我電腦上的具體命令是:

# 備份原檔案

cp microsoft/boot/bootmgfw.efi microsoft/boot/bootmgfw1.efi

# 替換

cp manjaro/grubx64.efi microsoft/boot/bootmgfw.efi

但這麼以來即使你在linux的grub裡選擇windows boot manager項也不能進入windows了,因為這個啟動項指向的windows bootloader已經被linux替換了,所以還需要修改grub的windows啟動項,讓它指向我們備份的bootmgfw1.efi。efi檔案是不可讀的,我們可以修改的是cfg檔案。

看乙個當前目錄的boot資料夾,裡面有乙個叫grub.cfg的檔案,使用cat命令檢視內容:

cat boot/grub.cfg

search.fs_uuid 766eca58-fb60-457a-b79c-607f2c728407 root hd1,gpt4

set prefix=($root)'/boot/grub'

configfile $prefix/grub.cfg

發現它實際上是引用的/boot/grub/grub.cfg的內容,使用vim開啟它,搜尋windows可以發現windows的啟動項

menuentry 'windows boot manager (on /dev/sdb1)' --class windows --class os $menuentry_id_option 'osprober-efi-000e-17eb'
將chainloader中的bootmgfw.efi改成bootmgfw1.efi

重啟應該就可以了。

雙系統引導系統修復

裝了win7 linux,如果出現引導系統損壞,進不了系統的情況,可按如下步驟解決 1 製作大白菜製作u盤系統,裡面有乙個引導系統修復,修復後,win7 可進入,但linux不可以,因為linux引導剛被覆蓋了 2 使用linux的u盤系統,安裝boot repair,sudo add apt re...

xp linux 雙系統引導修復

情況一 先修復安裝centos grub,後,xp 無法引導,修復xp 引導 xp linux 雙系統 重新安裝centos後 xp無法引導,修復 xp引導 用xp安裝光碟進入修復模式 按r fixboot fixmbr 成功情況二 修復xp後 centos 無法引導 先修復xp,後修復安裝cent...

Ubuntu Windows雙系統修復引導

其實之前就想寫這篇文章了,只不過裝完系統忙著配環境就忘了。最近又重灌了一次win8,原因是坑爹的建立還原點失敗 題外話 好的,進入正題。首先說明 在windows存在的前提下安裝ubuntu 或者ubuntu系列 是不需要修復引導的。因為grub會自動搜尋存在硬碟中的系統。而在ubuntu存在的前提...