前言
去年暑假的時(shí)候枪汪,寫了一篇如何裝 Linux 和 Windows 10 雙系統(tǒng)的文章發(fā)在了簡(jiǎn)書上涌穆,我寫這篇文章的原因是當(dāng)初裝雙系統(tǒng)確實(shí)是折騰了許久,網(wǎng)上也找不到一篇詳盡的教程雀久。由于去年對(duì)于寫教程還不是熟練宿稀,而這一年多的使用過程也遇到了一些問題,所以就準(zhǔn)備「Refactoring」這篇文章赖捌。
EFI 分區(qū)
在教程正式開始之前祝沸,先花一點(diǎn)時(shí)間說明 EFI 分區(qū)的組成和作用。
首先越庇,在你裝了 Windows 之后罩锐,Windows 在裝機(jī)過程中會(huì)將硬盤劃分出一個(gè)約 100m 大小的分區(qū),稱為 EFI 分區(qū)這個(gè)分區(qū)就是起引導(dǎo)作用的卤唉。在資源管理器中是看不到的這個(gè)分區(qū)的涩惑,可以在磁盤管理中看到,管理則需要借助 DG 工具桑驱。便于說明竭恬,在裝好了 Linux 之后,我將 EFI 掛載至 boot 分區(qū)截圖:
可以看到熬的,該分區(qū)包含 3 個(gè)文件夾(如果你沒有裝 Linux 的話萍聊,就只有兩個(gè)),分別是 Boot悦析、Microsoft 和 Manjaro寿桨,其中 Boot 文件夾就是 UEFI 引導(dǎo)所必需的文件。
我們繼續(xù)打開 Microsoft/Boot
文件夾:
這些文件就是啟動(dòng) Windows 10 所必需的,包含了語言包亭螟、字體等挡鞍,BCD 包含了 Windows 引導(dǎo)開始以后的信息。其中预烙,bootmgfw.efi 是 Windows 默認(rèn)引導(dǎo)文件墨微。
- EFI/Boot/bootx64.efi
- EFI/Microsoft/Boot/bootmgfw.efi
以上是采用 UEFI 啟動(dòng) Windows 10 的文件結(jié)構(gòu),也就是說扁掸,當(dāng)你按下開機(jī)按鈕的時(shí)候翘县,首先 UEFI 找到 EFI 分區(qū)的 Boot 文件夾,然后加載 bootx64.efi
文件谴分,讀取文件信息锈麸,找到 EFI/Microsoft/Boot/bootmgfw.efi
,按照 bootmgfw.efi
的要求牺蹄,加載所需的啟動(dòng)信息忘伞,啟動(dòng) Windows 10。
準(zhǔn)備工作
在正式裝系統(tǒng)之前沙兰,我們還需要做一些準(zhǔn)備工作:
關(guān)閉 Windows 的快速啟動(dòng)
這個(gè)功能的作用是在于關(guān)機(jī)的時(shí)候不完全斷電氓奈,類似將系統(tǒng)處于「休眠」?fàn)顟B(tài),這樣可以讓開機(jī)更加迅速鼎天。但這也就導(dǎo)致了只能使用 Windows 系統(tǒng)舀奶。
關(guān)閉 BIOS 的 Secure Boot 的功能
在默認(rèn)情況下,UEFI 固件只會(huì)加載那些被簽名的引導(dǎo)程序斋射。在缺少 Secure Boot 功能的傳統(tǒng) PC 機(jī)上育勺,惡意的后門程序可以加載自身,進(jìn)而搖身一變偽裝成一個(gè)引導(dǎo)程序绩鸣。這樣的話怀大,BIOS 就會(huì)在啟動(dòng)的時(shí)候加載后門程序纱兑,這樣它就可以躲過操作系統(tǒng)呀闻,把自己隱藏得很深。
但是不得不說潜慎,這對(duì)我們安裝 Linux 造成了很大的困擾捡多,也是直接導(dǎo)致我們重啟到 Windows 10 后進(jìn)不去 Linux 的原因。
首先我們要關(guān)閉這個(gè)功能:進(jìn)入 BIOS 找到 Secure Boot铐炫,選擇 disabled垒手,這樣就關(guān)閉了。當(dāng)然倒信,有些人進(jìn)入 BIOS 會(huì)發(fā)現(xiàn) Secure Boot 這個(gè)選項(xiàng)是灰色的(比如我的就是)科贬,這時(shí)你需要先給你的 BIOS 設(shè)一個(gè)密碼,然后就能關(guān) Secure Boot 了。
安裝 Linux
所有的準(zhǔn)備都已經(jīng)完成榜掌,這時(shí)就可以準(zhǔn)備刻錄 U 盤了优妙,不推薦 UltraISO,經(jīng)親測(cè)憎账,軟碟通僅刻錄 Ubuntu 能成功套硼,其它絕大多數(shù)發(fā)行版都會(huì)失敗。推薦「Rufus」和「USBWriter」胞皱,這兩個(gè)軟件都可以邪意。
刻錄完成后,重啟按 f12
反砌,選擇從 USB 設(shè)備啟動(dòng)雾鬼,對(duì)于絕大多數(shù)發(fā)行版來說一路回車就行了,只需要注意一點(diǎn):在選擇掛載 boot 位置的時(shí)候于颖,一定要掛載在 efi 分區(qū)呆贿,別的都不行。
重啟之后森渐,不出意外的話做入,你會(huì)直接進(jìn)入 Windows 10,不要擔(dān)心同衣,這時(shí) Linux 已經(jīng)安裝成功了竟块,我們只需要將引導(dǎo)文件替換一下。
替換引導(dǎo)文件
先用 DG 打開 EFI 分區(qū)耐齐,你會(huì)看到多了一個(gè)文件夾浪秘,名稱取決于你安裝的是哪一個(gè)發(fā)行版。我安裝的是 Manjaro Linux埠况,名稱就是 Manjaro耸携,打開之后會(huì)發(fā)現(xiàn)里面有一個(gè)名為 grubx64.efi 的文件,這就是啟動(dòng) Linux 的引導(dǎo)文件辕翰。和 Windows 10 的 bootmgfw.efi 類似夺衍,我們想要用 grubx64.efi 引導(dǎo)代替掉 bootmgfw.efi,這樣就可以用 GRUB 引導(dǎo)了喜命。步驟:
- 進(jìn)入管理員命令行沟沙。方法:win + x,再按 a
- 輸入
bcdedit /set {bootmgr} path \EFI\Manjaro\grubx64.efi
壁榕。提示操作成功的話矛紫,就完成了。
注:經(jīng)人提醒牌里,如果輸入以上命令提示「參數(shù)錯(cuò)誤」的話颊咬,將 {bootmgr} 改為 '{bootmgr}',原因是 PowerShell 和 CMD 語法的差別。
至此喳篇,如果你安裝的是除 Arch 之外絕大多數(shù)發(fā)行版缓呛,那么接下來就和你沒有啥關(guān)系了,你已經(jīng)成功了杭隙,好好享受吧哟绊!
開機(jī)之后會(huì)發(fā)現(xiàn)進(jìn)入 GRUB 的引導(dǎo)了,通常會(huì)包含至少三個(gè)選項(xiàng)(以 Manjaro 舉例):Manjaro痰憎、Manjaro 高級(jí)選項(xiàng)和 Windows Manager票髓。這就代表你已經(jīng)完美的解決了 Windows 和 Linux 雙系統(tǒng)引導(dǎo)的問題。
修復(fù) Windows 引導(dǎo)
這一點(diǎn)是我安裝 Arch Llinux 的時(shí)候發(fā)現(xiàn)的铣耘,Arch Linux 安裝過程是手動(dòng)安裝的洽沟,在編寫 GRUB 的時(shí)候會(huì)掃描不到 Windows Manager 所在的分區(qū)(當(dāng)然可能不是所有人都會(huì)遇到),所以在 GRUB 界面可能會(huì)看不到 Windows Manager 選項(xiàng)蜗细,導(dǎo)致進(jìn)不去 Windows 10裆操,這里就需要手動(dòng)編輯 GRUB 信息,我們打開 /boot/grub/grub.cfg
文件炉媒,發(fā)現(xiàn)里面確實(shí)沒有 Windows 10 的啟動(dòng)信息踪区,在后面加上:
menuentry "Microsoft Windows 10" {
insmod part_get
insmod fat
insmod search_fs_uuid
insmod chain
search --fs-uuid --set=root $hints_string $fs_uuid
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
注意:
這里的 $hints_string
,代表的是終端執(zhí)行命令:
sudo grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
后的輸出吊骤;
而 $fs_uuid
代表的是:
sudo grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
的輸出缎岗。
然后保存。在終端執(zhí)行命令:sudo grub-mkconfig -o /boot/grub/grub.cfg
白粉,就 OK 了传泊。
到此,Arch Linux 和 Windows 10 雙系統(tǒng)也配置完畢了鸭巴。
附加問題
在使用這一年多的時(shí)間眷细,遇到了以下的幾個(gè)問題:
- 在 Windows 10 進(jìn)行了一個(gè)大更新后,會(huì)發(fā)現(xiàn) GRUB 引導(dǎo)界面沒有了鹃祖,還是直接進(jìn)入了 Windows 10溪椎,這時(shí)只需要按照
替換引導(dǎo)文件
的方法重新輸入一遍命令就行。 - 使用 Linux 某個(gè)發(fā)行版一段時(shí)間之后惯豆,難免會(huì)想嘗試一下另一個(gè)發(fā)行版池磁。這時(shí)請(qǐng)務(wù)必將之前的發(fā)型版的引導(dǎo)文件刪除奔害,否則可能會(huì)出現(xiàn)無論怎么設(shè)置都無法進(jìn)入 GRUB 的情況楷兽。例如:我之前用的是 Ubuntu,我現(xiàn)在換成了 Manjaro华临,我就需要用 DG 刪除 EFI 分區(qū)的 Ubuntu 文件夾芯杀。
- 在我使用 Manjaro 更新了一次 Linux 的內(nèi)核后,進(jìn)不去 Windows 10 了,這個(gè)時(shí)候千萬不要直接修復(fù) Windows 10 引導(dǎo)揭厚,這會(huì)格式化 EFI 分區(qū)却特,只需要按上面 修復(fù) Windows 引導(dǎo) 的方法編輯一下 GRUB 就可以了。
最后:祝使用愉快筛圆。
提問請(qǐng)閱讀關(guān)于提問裂明,否則不予解答
提問請(qǐng)閱讀關(guān)于提問,否則不予解答
提問請(qǐng)閱讀關(guān)于提問太援,否則不予解答
本文轉(zhuǎn)自我的博客:
原始鏈接:https://blog.itswincer.com/posts/ad42f575/
文章作者:_小二上酒(WincerChan)
許可協(xié)議: 署名-非商業(yè)性使用-禁止演繹 4.0 國(guó)際 (CC BY-NC-ND 4.0)