cfan曾分享過如何將wubi安裝好的ubuntu系統(tǒng)遷移到windows xp和windows 7系統(tǒng)下的方法,但這一方法并不適用于windows 10,我們需要另辟蹊徑,借助grub-2.02-for-windows來實現(xiàn)windows 10下的遷移,這個方法的一大好處就是,只要讀者的windows 10電腦硬盤足夠大,就可以遷移任意多個ubuntu系統(tǒng),并且無需讀者自己創(chuàng)建每個ubuntu系統(tǒng)的引導(dǎo)文件wubildr和wubildr.mbr,以及無需修改每個ubuntu系統(tǒng)內(nèi)部的grub.cfg配置文件。
圖1 用7-zip打開的ubuntu映像文件root.disk
首先準(zhǔn)備wubi安裝好的ubuntu系統(tǒng),拷貝復(fù)制“x:/ubuntu”文件夾到windows 10電腦下的一個ntfs分區(qū),用7-zip打開ubuntu系統(tǒng)映像文件root.disk(圖1),導(dǎo)出其中的“/boot/grub/grub.cfg”文件到一個文件夾中,然后找到grub.cfg配置文件中的ubuntu啟動菜單項(圖2)。
圖2 ubuntu內(nèi)部grub.cfg配置文件中的啟動菜單項關(guān)鍵內(nèi)容
下載并解壓grub-2.02-for-windows.zip,以系統(tǒng)管理員身份打開command窗口,進入grub-2.02-for-windows文件夾,執(zhí)行命令“grub-install.exe boot-directory=c: --target=i386-pc //./physicaldrive0”(圖3)。此處三個參數(shù)分別為:
“boot-directory=c:”表示grub安裝于c盤
“--target=i386-pc”表示引導(dǎo)目標(biāo)平臺是i386-pc(也是默認(rèn)目標(biāo)平臺,還有其他平臺模式,比如i386-efi、x86_64-efi等等)
“//./physicaldrive0”表示電腦硬盤1的設(shè)備號,此設(shè)備號由windows命令行中執(zhí)行“wmic diskdrive list brief”獲得,硬盤1是“//./physicaldrive0”,硬盤2是“//./physicaldrive1”,其他類推。
以上安裝完成后,此電腦啟動管理開始由grub2負(fù)責(zé)。
圖3 windows 10管理員權(quán)限命令行中安裝grub-2.02-for-windiws
現(xiàn)在我們來grub-2.02-for-windiws配置文件grub.cfg。使用notepad++或者其他文本工具在c盤grub文件夾下創(chuàng)建grub.cfg文件,增加windows 10和ubuntu啟動菜單項。windows 10啟動菜單項內(nèi)容簡單,設(shè)置c盤為根文件系統(tǒng)(hd0是硬盤1,msdos1是主分區(qū)1,主分區(qū)2是msdos2,擴展分區(qū)1是msdos5,擴展分區(qū)2是 msdos6,其他類推),裝載windows 10系統(tǒng)的bootmgr文件,執(zhí)行boot啟動windows 10。打開前面從root.disk中導(dǎo)出的ubuntu系統(tǒng)內(nèi)部grub.cfg文件,找到linux內(nèi)核文件名和內(nèi)存盤文件名(比如“l(fā)inux 3.13.0-62-lowlatency”和“initrd.img-3.13.0-62-lowlatency”圖2紅色標(biāo)示部分),參考圖2中ubuntu啟動菜單項,拷貝其中部分代碼到正的grub.cfg文件中,增加ubuntu啟動菜單項。grub.cfg文件完整內(nèi)容如下表所示(表1)。
表1 grub-2.02-for-windiws配置文件grub.cfg內(nèi)容(見附圖)
表1-grub.cfg文件內(nèi)容截圖
重新啟動電腦,進入windows 10(圖4、圖5)。
圖4 grub-2.02-for-windiws啟動管理界面
圖5 windows 10系統(tǒng)
啟動ubuntu。遷移的電腦硬盤分區(qū)與原安裝電腦根本不同,引導(dǎo)ubuntu會出現(xiàn)uuid錯誤并進入initramfs系統(tǒng)。不過我們可以在grub引導(dǎo)界面鍵入“c”鍵進入grub的命令行模式,執(zhí)行三次ls命令(圖6),得到分區(qū)號和uuid信息及ubuntu系統(tǒng)映像文件主文件夾名并記住(圖6黃色標(biāo)示的部分),鍵入“esc”鍵回到grub引導(dǎo)界面啟動windows 10,在windows 10系統(tǒng)中前面創(chuàng)建的grub.cfg配置文件,修改分區(qū)號(表1第13行)、uuid(表1第16行)和root.disk文件全路徑名稱(表1第14和第16行),再次啟動電腦進入ubuntu(圖7)。
圖6 grub-2.02-for-windiws命令行模式執(zhí)行l(wèi)s命令結(jié)果
圖7 ubuntu系統(tǒng)
后我們說說多個ubuntu遷移到windows 10的問題。對于多個ubuntu系統(tǒng)遷移,只需將“x:/ubuntu”文件夾拷貝完成后(x:/ubuntu1、x:/ubuntu2……),修改grub.cfg文件,增加啟動菜單項即可(圖8)。所有啟動菜單項格式內(nèi)容一樣,區(qū)別的是啟動菜單項名稱(表1第10行),分區(qū)號(表1第13行)、uuid(表1第16行)、root.disk文件全路徑名(表1第14和第16行)、內(nèi)核文件名和內(nèi)存盤文件名(表1第16和第17行)。
圖8 增加多個ubuntu啟動菜單項
對于中文名稱啟動菜單項,grub-2.02-for-windows是支持的,grub.cfg配置文件時在啟動菜單項名稱前面(表1中第3行與第4行之間)插入相應(yīng)內(nèi)容即可(表2)。
表2-支持中文菜單顯示截圖