前言

  • linux太好用了,太丝滑了,太漂亮了,大家都快来用linux
  • linux is the best
  • 其实关于linux的配置,安装教程,网上有很多很多,我对linux也不太了解,所以本篇我就是记录一下我遇到的一些问题,以及解决方法,作为备忘。关于为什么我选择fedora?原因很简单,就是稳定点,nixos的 .nix 文件不太好配,并且不是普通的FHS标准,方法不太通用,Arch虽然够轻够快,教程也多,社区也活跃,但是滚挂概率实在是有点高,于是我选择fedora,fedora我目前遇到的问题就是,有一部分插件在fedora的包管理器中是没有的,并且有一部分插件的使用方法没有提及fedora下的教程,这里如果你所需要的软件如果在dnf中没有,可以去Flatpak,镜像网站,或者copr看看。
  • 这里贴一个清华的镜像网站:https://mirrors.tuna.tsinghua.edu.cn/help/fedora/

其次,既然你都开始折腾linux了,基础的一些分盘操作,安装操作肯定都会了,我这边就不细讲了。

  • 对于不同的硬件,安装方法可能会有些许不同
  • 这里我的设备是:

    • GPU:NVIDIA GeForce RTX 5060
    • CPU:AMD AI 9
    • 主板:ASUS

准备

  • 1块移动硬盘(剩余空间最好100GB以上)1台主机
  • 把原移动硬盘中重要的资料备份(利用ventoy的无损安装一般不会格式化硬盘,但是还是以防万一)
  • 下载 DiskGenius,安装在主机硬盘上(可能用不到,但是如果装炸了,重新删除分区,合并分区会方便很多)
  • 下载 Fedora Everything 43的iso -> https://fedoraproject.org/misc/#everything

创建ventoy引导区

  • 传统安装系统,得格式化硬盘烧录一次,但是利用ventoy,可以无损地创建一个虚拟引导盘,引导iso文件挂载至硬盘

    1.压缩卷

    • windows下搜索 “创建并格式化硬盘分区” ,打开磁盘管理器
      类似这样:
      请输入图片描述
    • 在windows下把你的移动硬盘压缩出100GB左右的“未分配空间”(实际大小根据所需可以调整),当你看到压缩出的100GB那个空间的框框变黑了,就说明成功了。这时候就不要动了。

    先不要建立新分区,就让它黑在那儿!!!
    先不要建立新分区,就让它黑在那儿!!!
    先不要建立新分区,就让它黑在那儿!!!

2.安装ventoy虚拟引导盘

  • 下载ventoy后,解压,直接运行.exe文件,随后在“设备”里选择自己的移动硬盘,再在“配置选项”里选择“无损安装”,随后点击“分区设置”,勾选 “在磁盘最后保留一些空间”,填入你刚才压缩出来的那个空间大小(比如 100GB),最后点安装。
  • 一定要选“无损安装”!!!!!! 否则会格式化硬盘
  • 一定要选“无损安装”!!!!!! 否则会格式化硬盘
  • 一定要选“无损安装”!!!!!! 否则会格式化硬盘
    请输入图片描述

如果这是你第一次在这块盘上装 Ventoy,它可能依然会警告你,出现格式化提示,不用理会

安装后,再次进入磁盘管理器,如果你的移动硬盘里,刚刚压缩出来的区域还是黑色,并且出现一个隐藏分区“VTOYEFI”约32MB-128MB 的小分区,则说明引导核心已经导入,安装虚拟引导盘成功。


安装fedora

  • 将你的Fedora Everything 的iso放入目前最大的分区,不是VTOYEFI分区也不是过程你压缩出来的未分配卷,是你移动硬盘剩下的那些空间,比如你有1TB,压缩了100GB,那就把iso放入剩下900GB的那个分区。
  • 确保你的移动硬盘接入的主机usb接口是usb4以下的,因为fedora是没有雷电驱动的,如果你接入雷电接口,在后续的安装过程中会出现找不到外置移动硬盘的情况导致黑屏,报错等等一系列奇奇怪怪的问题,所以请务必确保移动硬盘要接入usb4以下的接口
  • 然后重启电脑,进入bios,进bios的方法可以去自己机器主板品牌的官网查询,随后在bios里把“安全启动”关闭(如果你实在不想关也可以,但是后续配置显卡驱动会比较麻烦,而且有可能会出现一些奇奇怪怪的问题,所以强烈建议关闭)“安全启动”,一般“安全启动”是在“advanced”或者“safe”选项卡下的。随后更改启动盘为自己的移动硬盘,最后保存重启。
  • 重启后会出现一个ventoy正在搜索iso的等待界面,文字显示的好像是“ventoy is scanning the files...”,这里等待的时间于你的iso存放深度,以及硬盘原有文件的数量有关,可能需要比较久,我当时就扫描了差不多10分钟,耐心等待一下即可。
  • 扫描成功后,你会进入一个蓝色的界面,顶上写着ventoy,这里就是ventoy的虚拟引导盘,在这里选择你要挂载的fedora iso 镜像文件,随后界面会刷新一下进入下一项选择,这里选择带有grub2的那一行,通过键盘上的小键盘上下左右键和enter键来选择,grub2就是后续引导选择我们进入windows还是linux的程序。
  • 做完上述,你会彻底进入fedora43的安装,由于我们选择的是everything版,所有大部分安装都需要我们自己配置,但是都很简单,不确定的就拍照问问AI,我这边就说几点比较重要的:

      1. 进入界面后,一定要先选择连接网络,因为后续的安装都需要联网,选择连接的网络一定不能是那种需要进入网页进行注册登录的,要选择通过直接输入密码来连接的网络。
      1. 软件源就选它下面那个默认的(点进去啥都不要干,然后直接点确定就可以了,它会自动选择地理位置离你最近的软件源进行安装),在软件安装选择界面,我推荐你左边那栏勾上“workstation”那版(因为custom版是不带网卡驱动的,到时进入系统还需要你自己配网卡驱动,非常麻烦,需要先连接手机usb,通过usb共享网络来装网卡驱动,并且workstation是带图形化界面的,文件管理器,基础应用那些都带了,会极大减轻你之后配置系统时的工作量,而且如果niri炸了,你还可以回到默认的gonme界面急救),右边的那栏需要选择安装的有:Development Tools,C Development Libraries,System Tools,这三个是必须要装的,其他的你可以选装,比如Hardware Support,Fonts。
      1. 然后右下角(第二行最后一个)的存储配置,点进去后要在底下选择手动分区,然后点击上面的那个加号创建分区,它会自动识别你当时已经压缩但是还未分配盘符的压缩卷,之后看看界面的上方,看它所占用的空间是不是你当时压缩出来的那个还未分配盘符的压缩卷(非常重要!!!非常重要!!!),比如你压缩了100GB,那上面应该就要显示100GB左右(不一定完全就是100GB,可能会小一点,这是正常的),然后生成好后点击确定即可。(安装分区的过程可能会让你确定是否写入配置,这里点确定就好了)。这个步骤有不确定的地方建议问AI,把自己的要求和想要达成的操作以及目的和AI说清楚。
        -这边有一些安装教程,可以参考一下:
    • https://tips.pfrlju.com/tech/lashonda/fedora-everything-netinstall-guide-how-to-build-the-fedora-you-actually-want/
    • https://blog.csdn.net/allway2/article/details/154882794
    • 最后开始安装,然后稍等一下就可以捏。

配置雷电驱动(如果你不需要雷电驱动,可以直接跳过这里)

  • 经过上述配置,你应该已经成功进入系统了。
  • 在使用普通usb装载系统的时候,引导程序会生成一个UUID。你在启动的时候,终端中一闪而过的那几个红色的报错,大概率就是雷电接口识别不到的报错。
  • Linux 启动分为两个阶段。在第一阶段(initramfs),内核只加载最基本的驱动。原来的系统只准备了 USB 驱动,而雷电 4 需要 PCIe 桥接驱动。换了口之后,第一阶段找不到驱动,自然就认不出那个 UUID 对应的分区了
  • 在开始配置前,我先贴几个配置教程以及各位大佬们的解决方法。

    1. https://linuxkernel.org.cn/doc/html/latest/admin-guide/thunderbolt.html
    2. https://forum.archlinuxcn.org/t/topic/12172
    3. https://zhuanlan.zhihu.com/p/268071508(这个是windows下的)
  • 由于目前我搜到的都是关于Arch的教程,于是在经过了我对AI的反复拷打,终究配置成功了(
  • 这三篇资料,他们解决问题的共同逻辑是:内核必须在尝试寻找 UUID 之前,先完成 PCIe 隧道的建立。现在Fedora卡住的原因就是因为内核加载太快,在隧道还没打通时就去找硬盘,导致了死锁。
  • 现在开始配置:
  • 首先打开终端命令行,使用nano或者vim打开你的/etc/default/grub文件。我这边都使用nano来操作
nano /etc/default/grub

然后在 GRUB_CMDLINE_LINUX 那行后面加上 thunderbolt.force_power=1
加上后就是:

GRUB_CMDLINE_LINUX="rhgb quiet thunderbolt.force_power=1"
  • 随后执行 sudo grub2-mkconfig -o /boot/grub2/grub.cfg 更新 GRUB 配置文件使其生效
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  • 然后打开/etc/udev/rules.d/99-thunderbolt.rules
nano /etc/udev/rules.d/99-thunderbolt.rules

写入配置:

ACTION=="add", SUBSYSTEM=="thunderbolt", ATTR{authorized}=="0", ATTR{authorized}="1"
  • 复制粘贴进去即可
  • 之后再创建 /etc/dracut.conf.d/usb4.conf ,随后打开这个文件
mkdir -p /etc/dracut.conf.d
nano /etc/dracut.conf.d/usb4.conf
  • 将下列配置粘贴进去:
# 强制加载所有相关的 PCIe 和雷电模块
add_drivers+=" thunderbolt xhci_hcd xhci_pci pcieport nvme nvme_core "
# 强制包含 udev 规则,确保在 initrd 阶段就自动授权
install_items+=" /etc/udev/rules.d/99-thunderbolt.rules "
  • 之后再执行:
sudo grubby --update-kernel=ALL --args="thunderbolt.force_power=1 pcie_ports=native pci=nocpci rootdelay=60 nvme_core.default_ps_max_latency_us=0"
  • 随后执行 sudo dracut -f --verbose 重新生成 Initramfs
sudo dracut -f --verbose
  • 现在基本就配置好了,剩下就是检查一下有没有成功:
  • 输入:
sudo lsinitrd /boot/initramfs-$(uname -r).img | grep -E "thunderbolt|nvme|xhci"

如果输出中能看见thunderbolt 字眼,则说明成功了

  • 输入:

    ls -d /sys/bus/thunderbolt/devices/domain*
  • 如果输出中有thunderbolt 字眼,则也说明成功了
  • 例如:
    请输入图片描述
    这是我的输出
  • 如果你还想检查一下,可以再执行 boltctl listsudo grubby --info=DEFAULT
boltctl list
sudo grubby --info=DEFAULT
  • 只要第一个输出了status: authorized字样, 第二个输出了thunderbolt 字眼,就可以放心了。
  • 最后要点击关机,关机,关机,不要点重启!!! 然后把移动硬盘拔下来换到雷电口去,再开机进bios,修改启动盘为雷电口的那个,随后保存重启,应该就可以正常通过雷电USB进入系统了捏!

安装Nvidia显卡驱动

nvidia-smi
  • 如果输出NVIDIA-SMI has failed...:这是正常的。说明驱动已安装,但内核还没切换到新驱动,需要重启。
  • 如果显示 command not found:说明驱动可能没装好,或者路径没配。
  • 如果显示表格(包含显存占用、驱动版本号):说明驱动已经自动加载了(通常在 Fedora 上极少见,除非你手动执行了 modprobe)
  • 然后检查一下开源驱动是否还在占位:
lsmod | grep -i nouveau
  • 如果有输出:说明系统还在用开源驱动,新驱动必须等重启屏蔽它后才能接管

屏蔽nouveau

nano /etc/modprobe.d/blacklist-nouveau.conf
  • 然后粘贴:
blacklist nouveau
options nouveau modeset=0
  • 之后再打开/etc/default/grub,依然是在GRUB_CMDLINE_LINUX那行,在后面加上rd.driver.blacklist=nouveau,nova_core modprobe.blacklist=nouveau,nova_core
nano /etc/default/grub
# 修改后应该变成:GRUB_CMDLINE_LINUX="rhgb quiet thunderbolt.force_power=1 rd.driver.blacklist=nouveau,nova_core modprobe.blacklist=nouveau,nova_core"
  • 随后使配置生效,再重新生成 initramfs 镜像
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo dracut --force
  • 最后重启即可,大概率是成功的。
  • 后来后使用下述命令来检查nouveau是否被禁用,以及NVIDIA驱动是否接管
lsmod | grep nouveau
nvidia-smi

安装niri和DMS

#!/bin/bash

echo "======================================"
echo "  配置 Fedora 右键菜单: Open in Kitty"
echo "======================================"

# 1. 安装 nautilus-python 依赖
echo "[1/4] 检查并安装 nautilus-python 依赖..."
sudo dnf install -y nautilus-python

# 2. 创建扩展存放的目录
echo "[2/4] 创建 Nautilus 扩展目录..."
EXT_DIR="$HOME/.local/share/nautilus-python/extensions"
mkdir -p "$EXT_DIR"

# 3. 写入 Python 扩展脚本
echo "[3/4] 写入右键菜单扩展脚本..."
cat << 'EOF' > "$EXT_DIR/open_kitty.py"
import os
import urllib.parse
from gi.repository import Nautilus, GObject

class OpenKittyExtension(GObject.GObject, Nautilus.MenuProvider):
    def __init__(self):
        super().__init__()

    # 当右键点击某个文件夹时触发
    def get_file_items(self, files):
        if len(files) != 1 or not files[0].is_directory():
            return []
        item = Nautilus.MenuItem(
            name="NautilusPython::open_kitty_file",
            label="Open in Kitty",
            tip="Open Kitty terminal in this directory"
        )
        item.connect('activate', self.menu_activate_cb, files[0])
        return [item]

    # 当在文件夹空白处右键时触发
    def get_background_items(self, current_folder):
        item = Nautilus.MenuItem(
            name="NautilusPython::open_kitty_bg",
            label="Open in Kitty",
            tip="Open Kitty terminal in this directory"
        )
        item.connect('activate', self.menu_activate_cb, current_folder)
        return [item]

    # 执行打开 Kitty 的动作
    def menu_activate_cb(self, menu, file_obj):
        if file_obj.is_gone():
            return
        
        uri = file_obj.get_uri()
        if uri.startswith("file://"):
            # 解析 URL 编码(处理路径中的空格和中文)
            path = urllib.parse.unquote(uri[7:])
            # 在后台启动 kitty 并指定工作目录
            os.system(f"kitty -d \"{path}\" &")
EOF

# 4. 重启 Nautilus 使其生效
echo "[4/4] 重启文件管理器以应用更改..."
nautilus -q

echo "======================================"
echo "  配置完成!"
echo "  现在打开任意文件夹右键,即可看到 'Open in Kitty' 选项。"
echo "======================================"
  • 将上述代码保存为 install_kitty_menu.sh
  • 然后运行下述命令:
#赋予运行权限
chmod +x install_kitty_menu.sh
#运行
./install_kitty_menu.sh
  • 运行完后应该就可以了(运行这个脚本的时候,可能会遇到版本冲突的问题,如果遇到了,就去问问AI,一般来说是把那个旧版本的删除就可以了)
  • 2.输入niri重启后,找不到进入niri桌面的方法

    • 在你进系统输入密码的那个界面,点击右下角的小齿轮图片,如果niri安装成功,那边有一个选项叫做“niri”,选择那个选项再进系统就可以了
    1. pacman -S报错?

      • 这个是Arch的命令,换成dnf install就可以了!