在教程正式開始之前,先花一點時間說明 efi 分割槽的組成和作用。
首先,在你裝了 windows 之後,windows 在裝機過程中會將硬碟劃分出乙個約 100m 大小的分割槽,稱為 efi 分割槽這個分割槽就是起引導作用的。在資源管理器中是看不到的這個分割槽的,可以在磁碟管理中看到,管理則需要借助 dg 工具。便於說明,在裝好了 linux 之後,我將 efi 掛載至 boot 分割槽截圖:
可以看到,該分割槽包含 3 個資料夾(如果你沒有裝 linux 的話,就只有兩個),分別是 boot、microsoft 和 manjaro,其中 boot 資料夾就是 uefi 引導所必需的檔案。
我們繼續開啟microsoft/boot
資料夾:
這些檔案就是啟動 windows 10 所必需的,包含了語言包、字型等,bcd 包含了 windows 引導開始以後的資訊。其中,bootmgfw.efi 是 windows 預設引導檔案。
efi/boot/bootx64.efi
efi/microsoft/boot/bootmgfw.efi
以上是採用 uefi 啟動 windows 10 的檔案結構,也就是說,當你按下開機按鈕的時候,首先 uefi 找到 efi 分割槽的 boot 資料夾,然後載入bootx64.efi
檔案,讀取檔案資訊,找到efi/microsoft/boot/bootmgfw.efi
,按照bootmgfw.efi
的要求,載入所需的啟動資訊,啟動 windows 10。
在正式裝系統之前,我們還需要做一些準備工作:
這個功能的作用是在於關機的時候不完全斷電,類似將系統處於「休眠」狀態,這樣可以讓開機更加迅速。但這也就導致了只能使用 windows 系統。
在預設情況下,uefi 韌體只會載入那些被簽名的引導程式。在缺少 secure boot 功能的傳統 pc 機上,惡意的後門程式可以載入自身,進而搖身一變偽裝成乙個引導程式。這樣的話,bios 就會在啟動的時候載入後門程式,這樣它就可以躲過作業系統,把自己隱藏得很深。
但是不得不說,這對我們安裝 linux 造成了很大的困擾,也是直接導致我們重啟到 windows 10 後進不去 linux 的原因。
首先我們要關閉這個功能:進入 bios 找到 secure boot,選擇 disabled,這樣就關閉了。當然,有些人進入 bios 會發現 secure boot 這個選項是灰色的(比如我的就是),這時你需要先給你的 bios 設乙個密碼,然後就能關 secure boot 了。
所有的準備都已經完成,這時就可以準備燒錄 u 盤了,不推薦 ultraiso,經親測,軟碟通僅燒錄 ubuntu 能成功,其它絕大多數發行版都會失敗。推薦「rufus」和「usbwriter」,這兩個軟體都可以。
燒錄完成後,重啟按f12
,選擇從 usb 裝置啟動,對於絕大多數發行版來說一路回車就行了,只需要注意一點:在選擇掛載 boot 位置的時候,一定要掛載在 efi 分割槽,別的都不行。
重啟之後,不出意外的話,你會直接進入 windows 10,不要擔心,這時 linux 已經安裝成功了,我們只需要將引導檔案替換一下。
先用 dg 開啟 efi 分割槽,你會看到多了乙個資料夾,名稱取決於你安裝的是哪乙個發行版。我安裝的是 manjaro linux,名稱就是 manjaro,開啟之後會發現裡面有乙個名為 grubx64.efi 的檔案,這就是啟動 linux 的引導檔案。和 windows 10 的 bootmgfw.efi 類似,我們想要用 grubx64.efi 引導代替掉 bootmgfw.efi,這樣就可以用 grub 引導了。步驟:
進入管理員命令列。方法:win + x,再按 a
輸入bcdedit /set path \efi\manjaro\grubx64.efi
。提示操作成功的話,就完成了。
注:經人提醒,如果輸入以上命令提示「引數錯誤」的話,將 改為 『』,原因是 powershell 和 cmd 語法的差別。至此,如果你安裝的是除 arch 之外絕大多數發行版,那麼接下來就和你沒有啥關係了,你已經成功了,好好享受吧!
開機之後會發現進入 grub 的引導了,通常會包含至少三個選項(以 manjaro 舉例):manjaro、manjaro 高階選項和 windows manager。這就代表你已經完美的解決了 windows 和 linux 雙系統引導的問題。
這一點是我安裝 arch llinux 的時候發現的,arch linux 安裝過程是手動安裝的,在編寫 grub 的時候會掃瞄不到 windows manager 所在的分割槽(當然可能不是所有人都會遇到),所以在 grub 介面可能會看不到 windows manager 選項,導致進不去 windows 10,這裡就需要手動編輯 grub 資訊,我們開啟/boot/grub/grub.cfg
檔案,發現裡面確實沒有 windows 10 的啟動資訊,在後面加上:
1
menuentry "microsoft
windows
10"
注意:
這裡的$hints_string
,代表的是終端執行命令:
1
sudo
grub-probe --target=hints_string /boot/efi/efi/microsoft/boot/bootmgfw.efi
後的輸出;
而$fs_uuid
代表的是:
1
sudo
grub-probe --target=fs_uuid /boot/efi/efi/microsoft/boot/bootmgfw.efi
的輸出。
然後儲存。在終端執行命令:sudo grub-mkconfig -o /boot/grub/grub.cfg
,就 ok 了。
到此,arch linux 和 windows 10 雙系統也配置完畢了。
在使用這一年多的時間,遇到了以下的幾個問題:
在 windows 10 進行了乙個大更新後,會發現 grub 引導介面沒有了,還是直接進入了 windows 10,這時只需要按照替換引導檔案
的方法重新輸入一遍命令就行。
使用 linux 某個發行版一段時間之後,難免會想嘗試一下另乙個發行版。這時請務必將之前的髮型版的引導檔案刪除,否則可能會出現無論怎麼設定都無法進入 grub 的情況。例如:我之前用的是 ubuntu,我現在換成了 manjaro,我就需要用 dg 刪除 efi 分割槽的 ubuntu 資料夾。
在我使用 manjaro 更新了一次 linux 的核心後,進不去 windows 10 了,這個時候千萬不要直接修復 windows 10 引導,這會格式化 efi 分割槽,只需要按上面 修復 windows 引導 的方法編輯一下 grub 就可以了。
最後:祝使用愉快。
本文採用:署名-非商業性使用-禁止演繹 4.0 國際協議進行許可,閱讀 相關說明
Linux 與 windows10 配置NFS服務
服務端 ip 192.168.1.10 linux 客戶端 ip 192.168.1.99 win 10 用 yum 安裝 nfs 以及rpcbind root bogon yum y install nfs utils rpcbind 編輯配置檔案客戶端訪問,內容如下圖 建立目錄 home xyl...
Windows10安裝Linux系統(WSL)
wsl是 windows subsystem for linux 的縮寫,顧名思義,wsl就是windows系統的linux子系統,其作為windows元件搭載在windows10周年更新 1607 後的windows系統中 1.linux單系統 2.win linux 雙系統 3.win 虛擬機器...
Windows 10意義何在?
1 windows 10正式版 從微軟公布的一些先階段測試版的測試人員數量看,可以發現,大多數消費者對新版的微軟作業系統充滿了更多的期待。開始選單與metro完美結合,更方便人性化的操作體驗和視覺感受 cortana語音的期待,雖然現階段的語音不夠完善,但以微軟的戰略布局不易看出對這一塊的重心之大 ...