十分舒适的双系统:Fedora Linux 配置指南
前言
受 @RLt 的影响(?),我终于在我的新笔记本上安装了 Fedora Linux。以下是我的配置过程。
安装
由于身边并没有 u 盘,我安装的方式比较特别。概述起来就是:
- 分出一个足够大(4GB 左右)的 FAT32 分区
- 将 Fedora Live CD 的内容复制进去
- 修改
grub.cfg
并启动 Live CD - 安装
在试图学习我的操作前,请确认你的电脑是以 UEFI 方式启动的。[1]
以下是详细的叙述。
分区 & 复制
这个过程非常容易。使用 DiskGenius 在硬盘中创建出一块空白(没有分区)的空间,然后在里面放一个大约 4GB 的 FAT32 分区即可。
注意
一定要给这个 FAT32 分区起一个名字!(在文件资源管理器中直接右键重命名即可,比如FEDORA
。)
前往 Fedora 的官方网站 ,下载安装 iso 文件,双击挂载,然后把里面的东西全部复制到新的分区里。
编辑 GRUB 配置
使用文本编辑器(比如说,记事本)打开新分区里的 GRUB 配置文件:
1 |
|
定位到启动菜单的配置(含有 menuentry
的那几行),你会看到类似这样的东西:
1 |
|
请注意第二行: 其中 root=live:CDLABEL=Fedora-WS-Live-42
指定了系统文件存放的地方,如果配置错误就无法启动 Live 系统。
可以想象,这个配置文件是为标准安装过程撰写的。而且一定是刻录到 CD 中,或者用 Fedora Media Writer 标准地烧写到 U 盘上的标准情况——这对我们显然不适用。所以我们需要修改 GRUB 的配置文件:
-
将
这个更改指定了启动分区的分区标签(即名称)。注意:如果不将CDLABEL=Fedora-...
更改为LABEL=FEDORA
(其中 FEDORA 是那个分区的名字)CDLABEL
更改成LABEL
的话,大概率也会出错,因为CDLABEL
指定了目标分区是一个光盘文件系统。 -
在末尾添加
这个更改指示内核将 Live 文件系统完整地复制到硬盘中。因为 Anaconda 默认在检测分区时排除 Live CD 所在的硬盘,如果不这样做的话就无法在该硬盘上安装。rd.live.ram=1
1 |
|
提示
如果你想让加载程序在启动时自动校验文件,可以将下面的项(Test this media & start Fedora-Workstation-Live
)也按照同样的方式修改。
启动 Fedora Live
现在,你已经做好了启动的所有准备,可以启动 Fedora Linux 了。
首先,转到 Hasleo Software(或者其他任何你信得过的下载站),下载并打开 EasyUEFI Trial,然后做三件事:
- 添加 Fedora 的启动项。将启动文件设置为
<Fedora 分区>\EFI\fedora\grubx64.efi
,名称随意。 - 在启动项管理处设置一次性启动。(把鼠标悬浮在中间的小图标上来找到这个功能)
- 重启你的电脑。
现在,你应该能看到 GRUB 的界面了。恭喜你!🎉
安装 Fedora
看来你已经进入了 GNOME 桌面,但别先急着安装。还记得我说了什么吗?
对,Anaconda 会忽略 Live CD 所在硬盘。但是我们就是在需要安装的硬盘上启动的 Live CD。怎么办呢?
卸载 Live 分区
我们刚才已经通过指定 rd.live.ram=1
内核参数来让内核把整个 Live 系统复制到 RAM,这意味着我们可以把含有 Live 系统的分区卸载掉,这样 Anaconda 就不知道它是不是这个硬盘上的了。
所以,打开 Live 系统的终端,输入:
1 |
|
如果一切顺利的话,这个命令应该能成功运行,不输出任何东西。
安装 Fedora
现在,你就可以打开 Install to Hard Drive 应用来把 Fedora 安装到你的硬盘上了。
提示
如果你忘记了的话,那么记得在分区时把装有 Fedora Live 的临时分区删了。
配置
如果你在安装后不配置一下,用起来必定是十分不爽的。下面就是我的详细配置过程。
必要的应用程序
Microsoft Edge
如果你像我一样喜欢用 msedge 的话,你可以这样安装:
1 |
|
命令行美化
我们使用 Starship 来美化命令行。但是使用前提是,你需要下载并安装一个 Nerd Font。
字体安装
1 |
|
Starship 配置
1 |
|
我们这里也使用 Catppuccin 预设。
1 |
|
如果你感兴趣的话,可以自行编辑 Starship 的配置文件。
然后,按照 Starship 官方文档的说明自行配置 Shell ;)
PowerShell
虽然我也不知道为什么 PowerShell 是“必要的应用程序”
1 |
|
然后,运行以下命令来编辑 PowerShell 的配置[3]。
1 |
|
以下是我的配置文件,仅供参考。
1 |
|
互联网法术 🪄🔮🌌
个人比较喜欢歌唱之盒,而不是冲突。不过 GUI.for.歌唱之盒 不提供 Fedora 使用的 rpm 文件或 AppImage,而是给了一个装有软件的压缩包。可以下载并解压到一个你顺眼的目录,然后为它编写 .desktop 文件。具体的操作可以询问 AI,我就不过多叙述了。
桌面必要配置
桌面高级设置
运行以下指令安装 GNOME Tweaks
1 |
|
在应用菜单打开“优化”即可访问 GNOME 桌面的高级设置。
插件安装和配置
首先运行以下插件来安装 GNOME 插件管理器:
1 |
|
然后,打开浏览器,转到 Chrome Web Store 以安装 GNOME Shell Integration 插件。
最后,转到 GNOME 插件市场,搜索和安装你心仪的插件。
以下是一些个人觉得必要的插件列表:
- AppIndicator and KStatusNotifierItem Support - 在顶栏显示应用的 tray icon
- Blur my Shell - 为桌面添加美丽的模糊效果
- Dash to Dock - 将 Dash 变成 Dock(?
- GSConnect - KDE Connect 的 GNOME 实现。可以用 KDE Connect 手机 app 来实现手机和电脑的无缝联合。
最后可以在插件应用中找到部分插件的配置界面。
杂项
- 你可以安装
fastfetch
来实现一个漂亮的截图。 - 如果你需要 QQ,尽量到官网下载(请下载 rpm 版),而不是应用商店。Flatpak 上的安装包不是腾讯官方维护,且会出问题(截止本文发布时,在 Flatpak 安装的 QQ 上复制内容会导致崩溃)。
- 如果你找到了一些 AppImage 格式的应用,建议使用 AppImageLauncher 来统一管理。
引导加载程序
如果一切顺利的话,你的电脑应该能在开机后自动显示 GRUB 的 OS 选择界面。但是一个黑色的纯文字框框不是很雅观(真的很丑!),而且让本来舒适的电脑开机过程显得很割裂。
于是我尝试配置了一个几乎无缝的方案:默认启动 Windows,如果在开机时按任意键则显示 OS 选择器,用起来十分流畅。
安装 rEFInd
这样的配置过程依靠 rEFInd bootloader。你可以用如下的命令来安装到你的系统中:
1 |
|
注意
这两个命令会直接把 rEFInd 安装进你的 EFI 分区(第一个下载,第二个安装)。无需禁用安全启动,因为我们使用--shim
参数指定了 shim 文件的位置,此时refind-install
脚本会自动为 rEFInd 配置基于 shim 的安全启动。
然后重启测试。
特别注意
重启之后,如果你看到一个蓝色的界面,不要慌张 !
那是因为 shim 不认可 rEFInd 的文件,自动启动了MokManagent.efi
,让你配置 MOK(Machine Owner Keys,即机器所有者自己的 Secure Boot 密钥)。
按下 Enter 之后,再像它说的那样按一个键打开 MOK 管理菜单。
选择Enroll hash from disk
,然后进入 EFI 分区(通常是这个列表中的第一个),定位到/EFI/refind/grubx64.efi
[2],按下yes
,然后选择Continue
。
最后重启,你应该就能见到 rEFInd 界面了。
配置 rEFInd
rEFInd 是一个非常强大的引导加载器,但是默认的界面非常丑。这里我们使用 Catppuccin 主题来美化。
1 |
|
提示
如果使用 Catppuccin 主题的话,你也许会想要把背景色替换成黑色,不然启动 Windows 的时候会非常丑。
下载这个黑色的像素点,把它放到/boot/efi/EFI/refind/themes/catppuccin/assets/mocha/background.png
即可。同样记得把 mocha 换成你使用的 flavor。
然后编辑 rEFInd 的配置文件:
1 |
|
这是我的更改,你可以参考一下:
1 |
|
配置好之后,你应该就能获得无缝的双系统体验了。
GRUB 美化
我们这样配置之后并没有完全取代 rEFInd,而是使用 GRUB 作为 Linux 的启动器。所以你仍然会看到那个丑丑的黑乎乎的线框。
我们同样可以安装 Catppuccin 主题来美化 GRUB。具体的安装步骤在仓库里有解释,这里就不再赘述了。
后记
- 新电脑基本都是这样的。如果你不确定,一个比较明显的特征是:如果 Windows 开机转圈圈时显示的是你主板的 logo 而不是 Windows logo,那么一定是 UEFI 启动。 ↩
- Fedora 内置的 shim 是为 GRUB 设计的,所以 refind-install 在选用 shim 为安全引导加载器时,将 rEFInd 的文件命名为
grubx64.efi
以让 shim 能正确识别。 ↩ - 其实并不是传统意义上的“配置文件”。Shell 的“配置文件”称为 Profile,其实是一个脚本(一系列命令的集合),会在 Shell 每一次启动时首先执行。和一般的脚本不同,Profile 文件默认是用 source 方式执行的——即,把脚本里的命令完全放在当前上下文,并且应用脚本对当前上下文的改动(设置变量和别名等)。 ↩