安裝、維護 linux 與 Windows 雙系統
4 人贊了文章
本文以 Ubuntu 16.04 和 Windows 8.1/10 為例,介紹了適合個人的雙系統安裝與維護方法。
另外,文末也簡單介紹了安裝盤的製作。
材料要求
Windows 應該使用 install.wim 安裝的版本,也就是說至少是 Vista。
但是,Vista 和 7 的安裝盤沒有 USB3.0 驅動,盤內的 dism.exe 也無法用於展開 install.wim。如果確實需要安裝這兩個版本的系統,可以先準備 Win8 以上的安裝盤,再把 Vista 或 7 的 install.wim 更名複製進去。
linux 要能夠安裝較新的 grub,它必須至少能識別已安裝的 Windows。現處於支持期間的發行版都可以完成這個任務。
本文基於實踐總結,並僅針對個人用戶。本文所寫內容未必在您的機器上同樣適用。
裝機有風險,操作需謹慎。如果是重裝系統,每步操作前務必再三確認安全。
安排分區
我的老爺機對 UEFI 的支持有問題,因此無法以 UEFI 為實踐環境。這裡繼續使用 BIOS+MBR 的方式。此文也可看作是上一代技術的告別禮。
使用 LiveCD 中的 GParted 分區。
MBR 最多劃分4個主分區。這裡也使用4個主分區。以 500G 硬碟為例,順序如此安排:
16G swap | 150G ext4 | 150G NTFS | 150G NTFS
第一個用於交換分區,第二、三用於系統,把常用的系統放在第2分區,第四分區用於存儲。
如果您使用的是 SSD,分區可以是任意順序。
右鍵點擊要安裝 Windows 的分區,選擇 edit flags,勾選 boot 並保存。
安裝/重裝系統
LiveCD 中分區結束後,即可雙擊安裝系統的應用圖標。按提示操作,把 linux 發行版安裝到分區時規劃好的地方,覆寫分區前務必確認目標分區是否保存重要數據。
重啟機器,使用 Windows 啟動盤進入安裝界面(WinRE),不要點立即安裝,直接按鍵: Shift + F10 啟動命令提示符。
首先要知道操作的源和目標分別是什麼,先啟動分區管理器:diskpart
通過下面的命令,查看 WinRE 掛載了哪些分區:
diskpart> list volume
查找 volume,找到相關的分區。如果有卷標,這個操作會更清晰、方便。
這裡設 U 盤為 E:,要重裝的系統盤為 C:。(WinRE 所在的盤符 X: 里沒有我們需要的文件 install.wim)
那麼操作的源就是 E:Sourcesinstall.wim,目標就是C:。
這時就開始重裝了。首先要清理分區,接著解壓系統,之後設置引導,最後更新 grub。
清理分區前請再三確認此分區是否留有重要數據。
> format C: /Q> dism /Apply-Image /ImageFile:E:Sourcesinstall.wim /Index:1 /ApplyDir:C:> bcdboot C:Windows
bcdboot 為系統添加引導文件,不能缺少這一步。否則 bootmgr 會抱怨找不到 BootBCD,grub 也找不到 Windows。
如果 bcdboot 執行失敗,很有可能是分區沒有設為 active。這個問題有兩個解決方法。一是如前文所述,在 LiveCD 的分區時,通過 edit flags 功能添加 boot 標記。二是在 diskpart 命令中修改分區標記:
# 設目標分區為 disk 0 上的 partition 2diskpart> list diskdiskpart> select disk 0diskpart> list partitiondiskpart> select partition 2diskpart> active
bcdboot 執行結束之後,退出圖形界面的安裝程序,機器會自動重啟。
重啟後進入 linux 執行更新 grub 即可:
$ sudo update-grub$ sudo reboot
不出意外的話,grub 會發現新安裝的 Windows。至此 Windows 重裝的引導階段結束。重啟後選擇 Windows 即可完成後續的安裝進程。
附:安裝盤準備
安裝盤可以是 USB 存儲設備、硬碟、光碟。
推薦使用 USB 存儲設備,確實無奈的情況下可以直接刻制光碟。
另外,軟盤和 Windows XP 不在本文的討論範圍之內。:D
在 Windows 下準備:
製作 linux 發行版的安裝盤可以使用 YUMI 等工具。也有其他有趣的工具可以選擇。這裡有個網站可以參考:
Boot and run Linux from a USB flash memory stick | USB Pen Drive Linux製作 Windows 的安裝盤要準備一個 MSDN 版的系統安裝鏡像。
設 U 盤為 G:,將鏡像文件展開到 G: 里後,在管理員提示符下執行以下命令即可:
> bootsect /nt60 G: /mbr
U 盤的分區可能需要設為 active/boot 屬性。
在 linux 發行版下準備:
最簡單直接的方法就一句話:遇事不決用 dd。
root# dd if=system-installer.iso of=/dev/sdz bs=4M conv=fsync
要直接寫入磁碟,必須為 root 許可權(使用 sudo 命令來提權)。有了許可權後,所有磁碟都暴露在風險之下,所以,操作之前務必再三檢查 U 盤對應的 /dev 下是哪個文件,錯寫到主硬碟上後果非常嚴重。
也可尋找一些較溫和的工具來完成這項任務。
註:關於 Windows 安裝盤,部分 BIOS 只承認從 0 開始的分區,或者分區必須為 active/boot 屬性。一些工具會在驅動器的開始留下一定的空間,或者不會修改分區屬性。這點要注意一下。
更新記錄:2018-01-07 基於實踐,大改動2017-04-20 初稿
推薦閱讀: