首页 > 基础资料 博客日记

Fedora 43物理机部署复盘

2026-04-04 11:30:02基础资料围观1

文章Fedora 43物理机部署复盘分享给大家,欢迎收藏极客资料网,专注分享技术知识

一直很希望尝试一下平铺式桌面,在虚拟机中跟着up主Reaper_6的视频Fedora 颜值拉满:Niri+ Dank Material Shell 一步到位体验了一下,感觉窗口管理确实要比堆叠桌面高效得多了。终究还是不满足于仅在VM中使用,最终决定把个人的主力环境部署成这个组合。中间遇到了很多坑,也借助LLM解决了不少的问题,这里做一个大概完成后的复盘。由于整个过程较为分散,跌跌撞撞,基本没有留下太多截图,总体通过个人印象与bash命令历史等来记录一下过程中的问题与大概的解决方案,已经尽量详实。

环境

  笔记本:联想小新Pro 14 2023款

  • CPU: AMD锐龙7 7840HS(核显)
  • 内存: 32GB
  • 系统:Win11(为运行wsl已开启Hyper-V虚拟化)

Fedora 43系统安装

  • 关闭硬盘的BitLocker加密保护

    • 由于之前是Windows11系统,默认情况下硬盘应该已经被BitLocker加密初始化了,要安装双系统,应该先将硬盘内容解密,以免出现相关问题

    • 由于我只有一个1T的硬盘,全部分给了Windows的C盘,所以可以使用下面的命令查看BitLocker状态,可以看到硬盘上已经被BitLocker加密了的

      > manage-bde -status C:
      BitLocker 驱动器加密: 配置工具版本 10.0.26100
       版权所有 (C) 2013 Microsoft Corporation。保留所有权利。
       
       卷 C: [Windows]
       [OS 卷]
       
       大小: 951.64 GB
       BitLocker 版本: 2.0
       转换状态: 仅加密了已用空间
       已加密百分比: 100.0%
       加密方法: XTS-AES 128
       保护状态: 保护关闭
       锁定状态: 已解锁
       标识字段: 未知
       密钥保护器: 找不到
      
    • 如果有恢复密钥,建议先把恢复密钥备份好(作用是在主板/TPM/BIOS变更、启动异常、Windows系统损坏、启动项更改等应急情况下解密硬盘数据)

    • 使用下面的命令彻底解密C盘

      manage-bde -off C:
      
    • 上面的解密命令是一个异步命令,执行完之后需要使用下面的命令查看当前解密进度,直到提示已完全解密为止

      > manage-bde -status C:
      BitLocker 驱动器加密: 配置工具版本 10.0.26100
       版权所有 (C) 2013 Microsoft Corporation。保留所有权利。
       
       卷 C: [Windows]
       [OS 卷]
       
       大小: 951.64 GB
       BitLocker 版本: 无
       转换状态: 完全解密
       已加密百分比: 0.0%
       加密方法: 无
       保护状态: 保护关闭
       锁定状态: 已解锁
       标识字段: 无
       密钥保护器: 找不到
      
  • 关闭Windows快速启动

    • 控制面板 → 电源选项 → 选择电源按钮的功能 → 更改当前不可用的设置 → 取消勾选“启用快速启动”
    • 随后重启一次
  • 为Fedora分配安装空间

    • 磁盘管理 → 右键Windows(C:) → 压缩卷 → 输入想要的容量 →确认

    • 注意上述操作完成后应该多了一块未分配空间,不要执行任何操作(新建卷、格式化、分配盘符等)

      图片

  • 制作Fedora 43启动U盘

    [!WARNING]
    制作启动盘会清空U盘数据,建议使用空U盘或提前备份数据

    • Fedora Media Writer,易用性很高且是官方推荐的启动盘制作工具
    • 因为我想要比较定制化、节省空间的安装,所以我选择的是Fedora Everything 43 Network Install这个镜像,可以在安装时选择要安装哪些软件包
    • 选择iso镜像(这里也提供选从网络下载的选项) → 选择U盘 → 刻录
    • 刻录完之后建议就弹出U盘,因为在某些情况下Windows可能会写入额外的元数据,导致后续在引导过程中的Test this media在4.8%进度时误报FAIL(参考
  • 使用启动U盘安装Fedora 43

    • 重启后按Fn+F12进入临时启动设备选择,选择Test this media & Install Fedora 43

    • 检查通过后就会进入Fedora的安装界面

    • 最小化安装:Base Environment选择Fedora Custom Operating System,Additional software全不选

    • 这里最可能有问题的是INSTALLATION DESTINATION这里,由于我们按是双系统来安装的,所以需要挂载Windows的EFI分区,为保险起见我没有选择Automatic,选择Custom进行手动分区

      图片

      • 在我的场景中显示的未知分区有

        • nvme0n1p1 260 MiB:Windows的EFI分区
        • nvme0n1p2 16 MiB:Windows的保留分区
        • nvme0n1p3 651.64 GiB ntfs:Windows的C盘
        • nvme0n1p4 1.95 GiB ntfs:Windows恢复分区
        • sda 115.59 GiB iso9660:当前使用的启动U盘
      • 选中nvme0n1p1(EFI分区)

        • Mount Point:/boot/efi
        • Desired Capacity、Device Type、File System不动,Reformat、Encrypt不勾选
        • Update Settings
      • 新建/boot

        • 左下角+

          • Mount Point:/boot
          • Desired Capacity:1 GiB​或1024 MiB
          • 确认创建
        • 随后左边会多出一个新选项,选中它后在右边确认

          • Mount Point:/boot
          • Device Type:Standard Partition
          • File System:改成ext4
          • Reformat:可以勾选,这个新分区可以保持格式化
          • Encrypt:不要勾
          • Label:任意,如fedora-boot
      • 新建根分区/

        • 左下角+

          • Mount Point:/boot
          • Desired Capacity:留空(会分配剩余可用空间)
          • 确认创建
        • 选中新建的根分区,在右边确认

          • Mount Point:/

          • Device Type:如果它显示成 Btrfs 相关类型,就保持

          • File System:建议保持 btrfs

          • Encrypt:不勾选

          • Reformat:可以勾选

          • Volume:保持默认fedora_fedora

            • 整个Btrfs卷/池的名字
          • Label:可以留空

          • Name:root

            • 这里设置的是挂载在Btrfs里的子卷名
          • Update Settings

      图片

  • 安装完成后重启会自动进入GRUB引导,选择启动的系统(Fedora/Windows)

环境配置

  由于我是最小化安装,不带有桌面环境,进入后为命令行界面

  • 一条命令安装DankLinux(太方便啦!)

    curl -fsSL https://install.danklinux.com | sh
    
    • 选择窗口管理器(推荐niri)和终端(我选的ghostty)

    • 安装过程中需要提供用户密码

    • 安装脚本运行完毕后安装DankLinux专属登录界面

      sudo dnf copr enable avengemedia/danklinux
      sudo dnf install dms-greeter
      
    • 重启即可进入niri桌面环境

    • System Check中出现缺少的包自行安装补齐即可

Android on Linux?Waydroid!

  • 既然已经使用Linux系统了,Android其实也是一个定制化的Linux衍生系统,那么理论上来讲在Linux中运行Android应该比Windows更加原生和高效,通过询问LLM,我了解到Waydroid这个方案,应该是Linux中无感运行Android软件的最终解决方案

    Waydroid:一种基于容器的启动完整Android系统的方法,在运行Wayland桌面环境的常规GNU/Linux系统上

  • Waydroid安装

    • 具体应参考官方安装文档,对于Fedora系统可以直接从官方软件包仓库进行安装

      sudo dnf install waydroid
      
    • 初始化——下载安装lineage系统(参考

      • 在国内网络环境下不建议直接运行Waydroid的可视化界面进行初始化,网络原因可能导致镜像下载失败

      • 选择手动下载lineage的system和vendor镜像(在官方的SourceForge页面下载),注意一定要选择与本机架构相同的镜像版本(例如本机为x86_64),本人选择的镜像文件分别为

        • lineage-20.0-20260312-MAINLINE-waydroid_x86_64-vendor.zip
        • lineage-20.0-20260312-VANILLA-waydroid_x86_64-system.zip
      • 解压上述镜像文件后应该为一个system.img​一个vendor.img​,两个文件都放到/usr/share/waydroid-extra/images目录下后,执行

        sudo waydroid init -f
        

        即可初始化成功

      • waydroid服务状态查看/启动/设置自启动(似乎这并不意味着启动Waydroid里的Android系统,但要启动Android系统需要这个服务),建议直接设置自启动

        sudo systemctl status waydroid-container.service
        sudo systemctl start waydroid-container.service
        sudo systemctl enable waydroid-container.service
        
      • 在我们的环境下配置完成后直接在App Launcher启动Waydroid即可进入Android系统!

        图片

    • 网络问题相关配置

      • 似乎刚进入时网络不通,应该是防火墙设置的问题,我们需要开放UDP的53和67端口、启用转发并添加对waydroid网卡的信任。以防出现问题(参考),我这里修改了Waydroid的网络配置文件/usr/lib/waydroid/data/scripts/waydroid-net.sh​,将LXC_USE_NFT​设为false,这里的作用是让Waydroid使用iptables而不是nftables

      • 对于Fedora系统使用firewall-cmd进行配置,其他系统请查询对应命令

        firewall-cmd --zone=trusted --add-port=67/udp
        firewall-cmd --zone=trusted --add-port=53/udp
        firewall-cmd --zone=trusted --add-forward
        firewall-cmd --zone=trusted --add-interface=waydroid0
        # 持久化
        firewall-cmd --runtime-to-permanent
        
    • 解决arm64 apk安装问题

      • 默认情况下Waydroid只支持本机架构的apk安装,但市面上有很多软件不提供x86架构的安装包,这需要我们为Waydroid安装一个转译层,安装完成后即可无痛安装arm64架构的apk了,这里直接使用社区开发的waydroid_scripts进行一键安装即可

        git clone https://github.com/casualsnek/waydroid_script
        cd waydroid_script
        python3 -m venv venv
        venv/bin/pip install -r requirements.txt
        # AMD平台下libndk效率较高,Intel平台或许可以尝试libhoudini
        sudo venv/bin/python3 main.py install libndk
        
      • waydroid_scripts还提供很多其它功能,如安装google全家桶、microg、magisk面具、隐藏状态栏等,请参考项目README

    • 拷贝安装包到Waydroid的Download目录下

      sudo cp ~/Downloads/xxx.apk ~/.local/share/waydroid/data/media/0/Download
      

虚拟机?脱离VMware生态,拥抱KVM+QEMU

  • Linux下的虚拟化,最出名的尤属KVM+QEMU这个原生级方案,通过LLM了解到Incus这个容器/虚拟机管理器,可以通过命令行的形式非常便捷地进行容器与虚拟机管理

  • 安装Incus(可参考官方安装文档

    virt-viewer是一个用于显示虚拟机图形界面的轻量级客户端。通过SPICE或VNC协议连接到由QEMU/KVM启动的虚拟机窗口,后续的incus console命令就是对virt-viewer的调用封装

    sudo dnf install incus virt-viewer
    newgrp incus-admin
    sudo usermod -aG incus-admin $USER
    sudo systemctl start --now incus.socket incus.service
    incus admin init
    
  • 配置防火墙规则

    sudo firewall-cmd --zone=trusted --add-interface=incusbr0 --permanent
    
  • 配置并启动一个带桌面环境的Ubuntu虚拟机

    # 虚拟机初始化
    incus init images:ubuntu/24.04/desktop my-ubuntu --vm
    incus config set my-ubuntu limits.cpu 4
    incus config set my-ubuntu limits.memory 4GiB
    
    # 安装音频驱动(如果启动后出现了音频设备报错)
    sudo dnf install qemu-audio-spice qemu-ui-spice-core
    
    # 启动虚拟机(start是让虚拟机跑起来,但不会弹出虚拟机的桌面)
    incus start my-ubuntu
    # 连接虚拟机桌面(在另一个终端运行)
    incus console my-ubuntu --type=vga
    # 关闭虚拟机
    incus stop my-ubuntu
    

    1775272609961339855

Windows

  在incus中配置Windows虚拟机比Linux虚拟机略复杂一些,主要原因是Windows不自带KVM的VirtIO驱动,会导致进入安装程序后看不到硬盘,网络可能也会有问题。

  (本段内容由AI提供,本人还未实践)这个问题最佳的解决方案应该是使用Distrobuilder重新封装Windows的iso镜像文件,这种方法会自动将VirtIO驱动注入到Windows的安装程序(WinPE)和系统镜像中,进入安装界面后能直接看到incus分配的虚拟硬盘,无需再手动加载驱动。这种方式生成的镜像会预置好incus-agent的基础环境,方便后续通过命令行管理,且在重封装时会针对虚拟化环境做优化。

  本人在Gemini的“误导”下使用的是手动加载驱动的方法注入VirtIO驱动。

  • 安装virtio-win

    sudo wget https://fedorapeople.org/groups/virt/virtio-win/virtio-win.repo -O /etc/yum.repos.d/virtio-win.repo
    sudo dnf install virtio-win
    
  • 配置Win11虚拟机

    incus init win11 --empty --vm
    incus config set win11 limits.cpu 4
    incus config set win11 limits.memory 8GiB
    incus config device override win11 root size=64GiB
    incus config set win11 security.secureboot true
    incus config set win11 security.csm false # 使用UEFI模式启动
    
    # 解决权限问题?不知道是否必要这样做
    sudo mkdir -p /var/lib/incus/iso
    sudo mv ~/Downloads/win11.iso /var/lib/incus/iso/
    sudo chmod 644 /var/lib/incus/iso/win11.iso
    sudo chcon -t svirt_home_t /var/lib/incus/iso/win11.iso
    
    # 添加安装介质与VirtIO驱动
    incus config device add win11 install-media disk source=/var/lib/incus/iso/win11.iso boot.priority=10
    # 其实有一个直接的命令(如下),但使用这条命令我实操的时候没找到对应驱动
    ## incus config device add win11 virtio-drivers disk source=/usr/share/virtio-win/virtio-win.iso
    incus config set win11 raw.qemu -- "-drive file=/usr/share/virtio-win/virtio-win.iso,index=3,media=cdrom,if=ide"
    
  • 安装Win11虚拟机

    • 通过raw.qemu​挂载了virtio-win.iso后,在安装界面的“你想将Windows安装在哪里?”窗口(此时是一片空白),需要点击“加载驱动程序”(Load driver),然后按以下路径寻找:

      • viostor​ → w11​ → amd64

        • 解释:viostor是块设备存储驱动,w11对应Windows 11,amd64是64位架构。
    • 随后就可以正常进行Win系统的安装了

  • 在Win11虚拟机中安装VirtIO驱动支持(否则鼠标会被困在里面!)

    # 先把虚拟机关机
    incus config unset win11 raw.qemu
    incus config device remove win11 install-media
    incus config device add win11 virtio-drivers disk source=/usr/share/virtio-win/virtio-win.iso
    # 随后开机、连接进入Win后像安装VMware Tool一样安装VirtIO驱动
    

    图片


文章来源:https://www.cnblogs.com/lentikr/p/19820568/260403_fedora_setup
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云