Linux 桌面玩家指南:11. 在同一個硬碟上安裝多個 Linux 發行版以及為 Linux 安裝 Nvidia 顯示卡驅動
特別說明:要在我的隨筆後寫評論的小夥伴們請注意了,我的部落格開啟了 MathJax 數學公式支援,MathJax 使用
$
標記數學公式的開始和結束。如果某條評論中出現了兩個$
,MathJax 會將兩個$
之間的內容按照數學公式進行排版,從而導致評論區格式混亂。如果大家的評論中用到了$
,但是又不是為了使用數學公式,就請使用\$
轉義一下,謝謝。
想從頭閱讀該系列嗎?下面是傳送門:
- Linux 桌面玩家指南:01. 玩轉 Linux 系統的方法論 【約 1.1 萬字,22 張圖片】
- Linux 桌面玩家指南:02. 以最簡潔的方式打造實用的 Vim 環境 【約 0.97 萬字,7 張圖片】
- Linux 桌面玩家指南:03. 針對 Gnome 3 的 Linux 桌面進行美化 【約 0.58 萬字,32 張圖片】
- Linux 桌面玩家指南:04. Linux 桌面系統字型配置要略 【約 1.2 萬字,34 張圖片】
- Linux 桌面玩家指南:05. 發部落格必備的圖片處理和視訊錄製神器 【約 0.25 萬字,14 張圖片】
- Linux 桌面玩家指南:06. 優雅地使用命令列及 Bash 指令碼程式語言中的美學與哲學 【約 1.4 萬字,16 張圖片】
- Linux 桌面玩家指南:07. Linux 中的 Qemu、KVM、VirtualBox、Xen 虛擬機器體驗 【約 0.95 萬字,31 張圖片】
- Linux 桌面玩家指南:08. 使用 GCC 和 GNU Binutils 編寫能在 x86 真實模式執行的 16 位程式碼 【約 0.6 萬字,17 張圖片】
- Linux 桌面玩家指南:09. X Window 的奧祕 【約 0.5 萬字,14 張圖片】
- Linux 桌面玩家指南:10. 沒有 GUI 的時候應該怎麼玩 【約 0.5 萬字,32 張圖片】
前言
上一篇講了,10月份是一個很開心的月份,因為在這個月裡陸續釋出了 Ubuntu 18.10 和 Fedora 29。在這一篇中,我將會展示如何在同一個硬碟中同時安裝這兩個作業系統,併為這兩個系統安裝 Nvidia 顯示卡驅動。本來,要嘗試新系統,一個虛擬機器就可以搞定的事,沒必要在同一個硬碟安裝多個系統這麼麻煩。但是虛擬機器中沒有 Nvidia 的顯示卡,無法測試這兩個新系統對顯示卡驅動的支援如何。所以,為了測試顯示卡驅動能否順利安裝,我還是選擇了在實體機上安裝這兩個系統。當然,為了顯示安裝過程,為了方便截圖,我還是在虛擬機器中操作了一遍,安裝過程的截圖都來自於虛擬機器。
四年前,我寫了一篇安裝 Linux 時碰到的硬碟分割槽的陷阱及應對,提出了硬碟分割槽分為 msdos 分割槽和 gpt 分割槽兩種,而 Legacy BIOS 只支援從 msdos 分割槽的硬碟啟動,UEFI BIOS 只支援從 gpt 分割槽的硬碟啟動。而且 UEFI BIOS 和 gpt 分割槽的硬碟,必須要作業系統能夠支援才行。我四年前寫這一篇的時候,正式因為 Ubuntu 的安裝程式把硬碟改成了 gpt 分割槽而 WinXP 無法識別,害我折騰了很久。當然,現在不用擔心這個問題了,因為不管是最新的 Win10,還是各個 Linux 發行版,對 UEFI BIOS 和 gpt 分割槽的硬碟的支援,都是沒有問題的。在這一篇中,我同時探明瞭,如果要使用 UEFI 模式安裝作業系統,硬碟的第一個分割槽一定要是 EFI 分割槽(其實其檔案系統是 FAT32 格式),在 Linux 系統中,這個分割槽掛在到/boot/efi
目錄。
同樣,四年前,我也寫了一篇在同一個硬碟上安裝多個 Linux 發行版及 Fedora 21 、Fedora 22 初體驗。在這一篇中,我在同一個硬碟上安裝了 CentOS、Fedora 和 Ubuntu 三個系統,當然,這時我採用的是 msdos 分割槽。同時,我丟擲了一個錯誤的觀點:因為使用 UEFI 模式安裝作業系統時,每一個系統的第一個分割槽都必須是 EFI 分割槽,會產生衝突,所以要安裝多個作業系統到同一個硬碟,只能使用 Legacy BIOS 和 msdos 分割槽。現在看來,這個觀點當然是錯的不能再錯了,因為 Linux 和 Win10 共存的案例比比皆是,誰說兩個在 EFI 分割槽會衝突的?其實 EFI 分割槽只有一個,只不過每個系統在 EFI 分割槽中有一個單獨的資料夾而已。
所以在這一篇中,我當然是使用 UEFI BIOS 和 gpt 分割槽來安裝多個 Linux 發行版了。然後,我分別在這兩個系統中安裝 Nvidia 顯示卡驅動,當然是採取最簡單的方式。事實證明,Fedora 中的第三方軟體倉庫 RPM Fusion 和 Ubuntu 中個人維護的軟體倉庫 PPA 是多麼的方便。
硬碟分割槽的設計
通過前面的分析,可以看出,安裝一個 Linux 發行版,最少需要把硬碟分成三個區,第一個 EFI 分割槽,掛載到/boot/efi
目錄,第二個分割槽是存放 Linux 系統的主要位置,為 ext4 檔案系統,掛載到/
根目錄,第三個分割槽作為交換分割槽,交換分割槽可以不要,但是有一個肯定更好。EFI 分割槽和交換分割槽是可以多個 Linux 發行版共享的。所以,要同時安裝 Fedora 29 和 Ubuntu 18.10,硬碟分四個區就可以了。
- 第一個分割槽,EFI 分割槽,用於存放 EFI 檔案。
- 第二個分割槽,安裝 Fedora 29,掛載到 Fedora 29 的根目錄。
- 第三個分割槽,安裝 Ubuntu 18.10,掛載到 Ubuntu 18.10 的根目錄。
- 交換分割槽,被 Fedora 和 Ubuntu 共享。
安裝過程:
- 先安裝 Fedora 29,在安裝過程中劃出第一個分割槽和第二個分割槽,安裝過程中不設定交換分割槽。
- 再安裝 Ubuntu 18.10,在安裝過程中劃出第三個分割槽和第四個分割槽,和 Fedora 29 公用第一個分割槽,不動第二個分割槽。
- 兩個系統都安裝好之後,進入 Fedora 29,通過修改
/etc/fstab
檔案,指定交換分割槽為第四個分割槽,也就是兩個系統公用這個交換分割槽。
系統安裝實戰
先安裝 Fedora 29,進入安裝介面,選擇手動分割槽,並且選擇標準分割槽,如下圖:
點選自動建立,Fedora 29 的安裝程式會為我們建立四個分割槽,如下圖:
根據前面的分析,我們把 Fedora 29 放到一整個分割槽中,不需要為/boot
目錄單獨分割槽,也不要交換分割槽。所以刪除後兩個分割槽,當然第二個分割槽也要調小一點,為後面安裝 Ubuntu 留下空間,如下圖:
然後點完成,繼續安裝系統。
安裝完成之後,進入系統,可以檢視/boot/efi
目錄下的檔案,會發現裡面有一個fedora
目錄,檢視/boot
目錄,可以看到用於啟動作業系統的 Linux 核心映象和 initramfs 映象檔案在這裡。檢視/etc/fstab
檔案,可以看到 Fedora 29 只掛載了兩個分割槽,而且沒有交換分割槽。如下圖:
重啟計算機,開始安裝 Ubuntu 18.10。
進入安裝介面,選擇其它選項,以便手動進行分割槽操作。如下圖:
Ubuntu 的安裝程式已經自動識別出了前兩個分割槽,而且知道第一個分割槽是 EFI 分割槽,第二個分割槽已經安裝了 Fedora 29。這個真的很智慧。如下圖:
我們要做的,就是把剩下的空間再分成兩個區。第三個分割槽安裝 Ubuntu 18.10,第四個分割槽設定為交換分割槽。如下圖:
然後繼續安裝系統就可以了。
系統安裝完成後,重啟電腦。可以通過 Grub 的啟動介面選擇我們要進入的系統,如下圖:
進入 Ubuntu 系統,可以檢視和系統啟動有關的目錄和檔案,也可以檢視/etc/fstab
檔案,可以看到它有三個分割槽,和 Fedora 相比,就是多了一個交換分割槽。如下圖:
把該檔案的最後一行加入到 Fedora 29 的/etc/fstab
檔案中,就可以讓 Fedora 29 也使用第四個分割槽作為交換空間了。使用free
命令可以檢視記憶體使用情況和交換分割槽使用情況。如下圖:
至此,在同一個硬碟上安裝多個 Linux 發行版大功告成。
關於啟動選單
Linux 系統的啟動是由 Grub 管理的,Grub 的系統探測功能很強大,只要硬碟上安裝的系統都可以探測出來,探測的結果會存放在配置檔案中,最後會以啟動介面的形式展示出來。因為我們是先安裝的 Fedora,後安裝的 Ubuntu,所以啟動介面是 Ubuntu 中的紅色樣式。如果我們先安裝 Ubuntu,再安裝 Fedora,那麼啟動選單應該是 Fedora 的樣式。
配置檔案放到哪裡在呢?分別是/boot/efi/EFI/ubuntu/grub.cfg
和/boot/efi/EFI/fedora/grub.cfg
。這個配置檔案不要手動編輯,是自動生成的。配置檔案不僅在安裝系統的時候可以生成,在更新系統的時候也可以生成,我們也可以手動更新。只要我們升級了核心,或者更新了 initramfs 映象,或者修改了/etc/default/grub
配置檔案,都要更新 Grub 的配置檔案。關於這一點,我上一篇講 Grub 的章節有講到。現在我們在同一塊硬碟上安裝了多個 Linux 發行版,也就存在了多份 Grub 的配置檔案,那麼 Grub 究竟用的是哪一個呢?通過 Grub 的環境變數可以檢視和設定。如下圖:
關於 Grub 逆天的功能,請檢視我上一篇中關於 Grub 的章節。另外,就是檢視 Grub 的官方文件。
安裝 Nvidia 顯示卡驅動
安裝 Nvidia 顯示卡驅動的方式有很多,其中一種就是去 Nvidia 的官網下載最新的驅動,然後自己編譯安裝。這個過程比較麻煩,主要有兩個問題,一是編譯需要一定的基礎,二是每當你更新了核心,就需要重新編譯一次。所以我這裡選擇簡單的方式。簡單的方式就是直接從軟體倉庫進行安裝,Fedora 29 使用dnf
,Ubuntu 18.10 使用apt-get
。
Fedora 29 的官方軟體倉庫中是沒有 Nvidia 的驅動的。不過我們可以使用第三方軟體倉庫 RPM Fusion。如下圖:
通過下面的介面,可以為 Fedora 29 啟動 RPM Fusion 支援:
然後,通過sudo dnf install akmod-nvidia
就可以為 Fedora 29 安裝 Nvidia 驅動了。下圖介面可以提示安裝成功,Fedora 29 用的版本是 410.66:
而 Ubuntu 對 Nvidia 顯示卡的驅動支援一直都不錯,在 Ubuntu 的官方軟體倉庫中,一直都有 Nvidia 的軟體包,直接安裝就可以了。如下圖:
使用軟體包安裝 Nvidia 的驅動還有一個好處,那就是如果驅動不能正確執行,也非常方便進行補救。只需要使用Ctrl+Alt+F3
切換一個虛擬控制檯,進入字元介面,使用sudo dnf remove
命令或sudo aptitude purge
命令刪除剛安裝的軟體包即可。
Fedora 29 的一些體驗
Ubuntu 18.10 預設使用運行於 Xorg 的 Gnome,而 Fedora 29 預設使用運行於 Wayland 的 Gnome。不過可以在登入的時候進行選擇。如下圖:
我還是喜歡 Xorg,Wayland 還是不太完美。例如,我在上面的作業系統安裝過程中,本來是想使用sudo gedit /etc/fstab
來修改 Fedora 29 的/etc/fstab
檔案,結果gedit
的圖形介面啟動不了,提示不能開啟 display :0。最後我只能先sudo dnf install vim
安裝一個 Vim,在使用sudo vim /etc/fstab
完成了這個操作。但是在運行於 Xorg 的 Gnome 中就沒有這個問題,gedit
的圖形介面啟動很順利。
另外,運行於 Wayland 的 Gnome shell 不能重啟。就是先按Alf+F2
鍵,會彈出一個對話方塊,輸入r
,點確認,在 Xorg 中,Gnome shell 會重啟,這對新安裝了 extension、theme 的情況下特別有用。而在 Wayland 中是不能重啟的。
關於對系的美化,Fedora 29 要比 Ubuntu 18.10 支援得要好,其實它們都是用的 Gnome 3.30,所不同者,就是 Fedora 29 的官方軟體倉庫中自帶的主題包要多一些。使用sudo dnf search gtk-theme
和sudo dnf search icon-theme
,可以看到目前流行的 adapta-gtk-theme 和 numix-icon-theme 都在裡面。如下兩圖:
所以,在 Fedora 29 中,要對系統進行美化,幾個sudo dnf install
命令就搞定了。
而 Ubuntu 的美化就要稍微麻煩一點,它的官方軟體倉庫裡是沒有什麼主題包可用的。不過不用擔心,我們可以去 github 上找,一般的主題都會對 Ubuntu 提供支援,以 PPA 的方式提供可直接安裝的軟體包。如下兩圖:
也就是說,如果我們想把 Ubuntu 18.10 整成和上面相同的 Fedora 29 的介面,只需要以下幾個命令就可以了:
sudo add-apt-repository ppa:tista/adapta
sudo add-apt-repository ppa:numix/ppa
sudo apt-get update
sudo apt-get install adapta-gtk-theme
sudo apt-get install numix-icon-theme-circle
這樣一搞,這兩個系統就完全沒有區別了,因為它們都是用的 Gnome 3.30。
新的系統對高分屏的支援也不錯,可以直接在解析度設定介面設定縮放倍數了。如下兩圖:
所以,如果我要是有一個 4K 屏的話,我把它的縮放比例設定為 200%,就可以得到和 1920x1080 一樣大小的圖形介面,但是字型顯示會更加細膩。其實 Gnome 3 本來就支援高分屏,不過以前需要使用gsettings set org.gnome.desktop.interface scaling-factor 2
來手動設定,現在直接進入系統設定介面,對我們要更方便一點。
求打賞
我對這次寫的這個系列要求是非常高的:首先內容要有意義、夠充實,資訊量要足夠豐富;其次是每一個知識點要講透徹,不能模稜兩可含糊不清;最後是包含豐富的截圖,讓那些不想裝 Linux 系統的朋友們也可以領略到 Linux 桌面的風采。如果我的努力得到大家的認可,可以掃下面的二維碼打賞一下:
版權申明
該隨筆由京山遊俠在2018年11月08日釋出於部落格園,引用請註明出處,轉載或出版請聯絡博主。QQ郵箱:[email protected]