創用 CC 授權條款
除非另有註明,本網站的著作Fygul Hether製作,以創用CC 姓名標示-非商業性-禁止改作 4.0 國際 授權條款釋出。

2016年2月22日 星期一

Windows, Linux雙系統開機不掉漆

以往在電腦上安裝多種作業系統時,自己習慣用GAG, THE GRAPHICAL BOOT MANAGER,令人懷念的軟體。

不過自從出現UEFI架構後,GAG就難以派上用場。

而且UEFI到目前為止,硬體廠商的作法都還不是很統一,給人的感覺就像是張飛打岳飛,打的滿天飛的混亂局面。

有些多重開機的管理程式,對UEFI的支援也不見得全面,也許在某些UEFI機器上用來滿意,在別部UEFI機器上卻出槌。

所以在當前如此混亂的局面下,雖然可做多系統開機的程式有相當多樣的選擇,為了少碰到掉漆的情況,自己還是選擇使用較為通用且不太複雜的東西。等以後硬體廠商搞定了UEFI,有明顯趨勢的作法後,再做其它的考慮。

為方便說明,這裡以一種簡單但可能還相當常見的情況為例。

自己的一部筆電,新機安裝Windows 8,但這部機器的Windows自己只做為備用的使用環境,主要使用另外安裝的Ubuntu MATE 14.04,會如此做的其中一個原因是Ubuntu Mate的開機遠比Windows快得多。也就是這部筆電上有Windows與Ubuntu MATE 14.04雙系統。

說到這裡,之前看過有人買了含正版Windows系統的筆電,用一陣子不滿意,就把Windows砍了,改裝Linux桌面系統。這樣的話,買這種含Windows的筆電,似乎有點浪費錢。只是多數筆電廠商都綁定了Windows,要找不含OS的好筆電,得另花些功夫。

回歸正題,提醒一下,若要像上述般裝雙系統,記得要先安裝Windows,再裝Linux,若順序倒過來,後裝的Windows可能會把之前裝的開機設置蓋掉,若真碰到這樣,就準備重裝Linux吧,好在重裝Linux比重裝Windows快多了。(也可以試著重新安裝GRUB 2。)

另一個提醒是,有的主機板要關閉Secure Boot或是去搞定Secure Boot Database,雙系統開機才會正常,至於這二件事怎麼做,因各家廠商做的方式很不一樣,請查閱主機版說明書,或詢問一下廠商。

裝Ubuntu MATE 14.04時,所裝開機管理程式會是GRUB 2,儘管它還不是很成熟,但還可接受,最起碼還可正常把想要的系統啟動。

雖然自己在筆電上主要用Ubuntu MATE,但有些人用雙系統時,可能希望預設是以Windows開機。以下就以修改GRUB 2的預設啟動為Windows的例子做說明。以下只談GRUB 2,別將它與更早的GRUB混為一談,它與GRUB是有所不同的。會提這點,因為當前GRUB 2的版號顯示的是1.x,難免會讓人誤解。

GRUB 2檔案結構的解說可見這篇〈GRUB2中文指南第二版(上)〉,以下僅簡單的談如何做修改。記得,以下的修改,需要root權限。當然,也需要知道怎麼編輯文字檔案。

不可直接修改開機選單檔案,而是修改另一個設定檔:/etc/default/grub

要調整其中的GRUB_DEFAULT=0

0指是第一項。開機選單中的第一項是Ubuntu

Windows可能在最後,要視實際情況,在開機時出現GRUB 2選單畫面時,算一下它的所在位置,假設它排在第5個,那就是調成:

GRUB_DEFAULT=4
修改完後,執行:

$ sudo update-grub
會更新實際的開機選單檔案:/boot/grub/grub.cfg

到此為止,該做的工作已完成了,可試著重新開機,檢查一下開啟選單的運作。

不過若看到這裡,還不急著離開的話,再附帶提到另一個常見的情況。

安裝Windows系統時,通常會把硬碟分割,把系統與資料分開放,即會有C:與D:碟,而不要混在同一分割區,這樣可方便系統重灌時不至影響到資料。既然是雙系統,很有可能想在Linux開機時自動掛載NTFS格式的資料分割區,以方便存取其中的資料。

Linux上設置自動掛載磁碟的設置檔是:/etc/fstab

它的格式欄位不難懂,把檔案開啟後,就可看到其中的註解有說明。

較會讓人困惑的會是如何知道所要自動掛載的檔案系統,也就是第一欄位,尤其硬碟裝了雙系統,又是EFI分區,又有那麼多分割之後,sda後的數字會比平常多些。

這裡就用個簡單的方法,幾乎可說是無腦的方式,可直接照抄就解決了。

先在圖形環境把Windows的D:碟掛載起來,這可以很容易辦到,從「位置」選單就可找到。什麼?搞不清其中的硬碟圖示哪個才是Windows的D:?這裡再額外傳授個小技巧,只要你在Windows環境下給硬碟做標籤名稱,Linux就會顯示這些名稱。所以可把C:命名成Win8,D:因放資料,可以命名為Data,這樣就可很清楚顯示出來並做區別了。

掛載好資料碟後,用df指命就可看到它的檔案系統,與掛載點。它的掛載點會像/media/{user_name}/Data
  • {user_name}代表的是登入系統的使用者名稱
  • Data即與前面所命名的Data相同
再看該行前面的檔案系統,如:

/dev/sda8

那麼,就可在/etc/fstab的最後加入一行:

/dev/sda8    /media/{user_name}/Data    ntfs    defaults    0    0
行中的空白可用tab或空白鍵。

掛載點也不一定要像這樣的無腦照抄,其實可另行取個較合適的名稱。

※這裡其實使用分割區的UUID來取代上述的 /dev/sda8 會更理想,後者可能會因更動了磁碟機順序而有所變動,前者則不會。可用以下指令查看分割區的UUID:


$ sudo blkid

好了,到這裡,有了理想的雙系統開機,又可在Linux下自動掛載NTFS資料碟,真是雙倍幸福。

為了持續這個幸福,另外做個提醒。

如果Windows啟用了休眠,當Windows關機時,會對其所用的磁碟寫入鎖定的標記。在此情況下,Linux在使用這資料碟時會出現問題。簡單的說,若用雙系統,而且要讓Linux存取Windows的資料碟,最好別啟用Windows的休眠功能,關閉快速啟動。

最後,如果哪一天需要在GRUB的command中啟動Windows,作法像這樣:

>inmod part_gpt
>inmod ntfs
>inmod chain
>set root=(hd0,gpt3)
>chainloader /efi/Microsoft/Boot/bootmgfw.efi
>boot

今天是2月22日,主題又是關於「雙」系統,真是巧合。

※如果發現有兩個系統的時間不一致的現象,請參閱〈Ubuntu 16.04系統時間更改為使用當地時間〉。

update: 2022-2-28,3-11

沒有留言:

張貼留言