zoukankan      html  css  js  c++  java
  • 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,进入安装界面,选择手动分区,并且选择标准分区,如下图:

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


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

    版权申明##

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

  • 相关阅读:
    Maven 环境的配置
    zTree的简单例子
    plsql免安装客户端的配置
    HDU 1232 畅通工程
    HDU 5698 瞬间移动
    Codeforces 1015E1 Stars Drawing (Easy Edition)
    Codeforces 784B Santa Claus and Keyboard Check
    Codeforces 500C New Year Book Reading
    NSarray 赋值 拷贝 等问题记录
    UINavigationController 操作记录
  • 原文地址:https://www.cnblogs.com/youxia/p/LinuxDesktop011.html
Copyright © 2011-2022 走看看