Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束。如果某条评论中出现了两个$,MathJax 会将两个$之间的内容按照数学公式进行排版,从而导致评论区格式混乱。如果大家的评论中用到了$,但是又不是为了使用数学公式,就请使用\$转义一下,谢谢。

想从头阅读该系列吗?下面是传送门:

前言##

上一篇讲了,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,硬盘分四个区就可以了。

  1. 第一个分区,EFI 分区,用于存放 EFI 文件。
  2. 第二个分区,安装 Fedora 29,挂载到 Fedora 29 的根目录。
  3. 第三个分区,安装 Ubuntu 18.10,挂载到 Ubuntu 18.10 的根目录。
  4. 交换分区,被 Fedora 和 Ubuntu 共享。

安装过程:

  1. 先安装 Fedora 29,在安装过程中划出第一个分区和第二个分区,安装过程中不设置交换分区。
  2. 再安装 Ubuntu 18.10,在安装过程中划出第三个分区和第四个分区,和 Fedora 29 公用第一个分区,不动第二个分区。
  3. 两个系统都安装好之后,进入 Fedora 29,通过修改/etc/fstab文件,指定交换分区为第四个分区,也就是两个系统公用这个交换分区。

系统安装实战##

先安装 Fedora 29,进入安装界面,选择手动分区,并且选择标准分区,如下图:

Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

点击自动创建,Fedora 29 的安装程序会为我们创建四个分区,如下图:

Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

根据前面的分析,我们把 Fedora 29 放到一整个分区中,不需要为/boot目录单独分区,也不要交换分区。所以删除后两个分区,当然第二个分区也要调小一点,为后面安装 Ubuntu 留下空间,如下图:

Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

然后点完成,继续安装系统。

安装完成之后,进入系统,可以查看/boot/efi目录下的文件,会发现里面有一个fedora目录,查看/boot目录,可以看到用于启动操作系统的 Linux 内核镜像和 initramfs 镜像文件在这里。查看/etc/fstab文件,可以看到 Fedora 29 只挂载了两个分区,而且没有交换分区。如下图:

Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

重启计算机,开始安装 Ubuntu 18.10。

进入安装界面,选择其它选项,以便手动进行分区操作。如下图:

Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

Ubuntu 的安装程序已经自动识别出了前两个分区,而且知道第一个分区是 EFI 分区,第二个分区已经安装了 Fedora 29。这个真的很智能。如下图:

Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

我们要做的,就是把剩下的空间再分成两个区。第三个分区安装 Ubuntu 18.10,第四个分区设置为交换分区。如下图:

Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

然后继续安装系统就可以了。

系统安装完成后,重启电脑。可以通过 Grub 的启动界面选择我们要进入的系统,如下图:

Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

进入 Ubuntu 系统,可以查看和系统启动有关的目录和文件,也可以查看/etc/fstab文件,可以看到它有三个分区,和 Fedora 相比,就是多了一个交换分区。如下图:

Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

把该文件的最后一行加入到 Fedora 29 的/etc/fstab文件中,就可以让 Fedora 29 也使用第四个分区作为交换空间了。使用free命令可以查看内存使用情况和交换分区使用情况。如下图:

Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

至此,在同一个硬盘上安装多个 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 的环境变量可以查看和设置。如下图:

Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

关于 Grub 逆天的功能,请查看我上一篇中关于 Grub 的章节。另外,就是查看 Grub 的官方文档。

安装 Nvidia 显卡驱动##

安装 Nvidia 显卡驱动的方式有很多,其中一种就是去 Nvidia 的官网下载最新的驱动,然后自己编译安装。这个过程比较麻烦,主要有两个问题,一是编译需要一定的基础,二是每当你更新了内核,就需要重新编译一次。所以我这里选择简单的方式。简单的方式就是直接从软件仓库进行安装,Fedora 29 使用dnf,Ubuntu 18.10 使用apt-get

Fedora 29 的官方软件仓库中是没有 Nvidia 的驱动的。不过我们可以使用第三方软件仓库 RPM Fusion。如下图:

Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

通过下面的界面,可以为 Fedora 29 启动 RPM Fusion 支持:

Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

然后,通过sudo dnf install akmod-nvidia就可以为 Fedora 29 安装 Nvidia 驱动了。下图界面可以提示安装成功,Fedora 29 用的版本是 410.66:

Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

而 Ubuntu 对 Nvidia 显卡的驱动支持一直都不错,在 Ubuntu 的官方软件仓库中,一直都有 Nvidia 的软件包,直接安装就可以了。如下图:

Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

使用软件包安装 Nvidia 的驱动还有一个好处,那就是如果驱动不能正确运行,也非常方便进行补救。只需要使用Ctrl+Alt+F3切换一个虚拟控制台,进入字符界面,使用sudo dnf remove命令或sudo aptitude purge命令删除刚安装的软件包即可。

Fedora 29 的一些体验##

Ubuntu 18.10 默认使用运行于 Xorg 的 Gnome,而 Fedora 29 默认使用运行于 Wayland 的 Gnome。不过可以在登录的时候进行选择。如下图:

Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

我还是喜欢 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-themesudo dnf search icon-theme,可以看到目前流行的 adapta-gtk-theme 和 numix-icon-theme 都在里面。如下两图:

Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

所以,在 Fedora 29 中,要对系统进行美化,几个sudo dnf install命令就搞定了。

而 Ubuntu 的美化就要稍微麻烦一点,它的官方软件仓库里是没有什么主题包可用的。不过不用担心,我们可以去 github 上找,一般的主题都会对 Ubuntu 提供支持,以 PPA 的方式提供可直接安装的软件包。如下两图:

Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

也就是说,如果我们想把 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 屏搭配 Nvidia GTX 1050Ti 显卡的电脑上的效果,缩放倍数设置为 200%,那字体真的是如丝一般顺滑。下面三图都是 4K 分辨率,打开请慎重:

Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

Linux 桌面玩家指南:11. 在同一个硬盘上安装多个 Linux 发行版以及为 Linux 安装 Nvidia 显卡驱动

4K 屏,缩放比例设置为 200%,其界面布局仍然和 1920x1080 完全一样,但是字体更加细腻。其实 Gnome 3 本来就支持高分屏,不过以前需要使用gsettings set org.gnome.desktop.interface scaling-factor 2来手动设置,现在直接进入系统设置界面,对我们要更方便一点。

版权申明##

该随笔由京山游侠在2018年11月08日发布于博客园,引用请注明出处,转载或出版请联系博主。QQ邮箱:1841079@qq.com

上一篇:纯C#实现Hook功能


下一篇:学习笔记-AngularJs(七)