双系统安装技术文档

简约无双

本文中的linux发行版以基于btrfs文件系统的kubuntu为例。

前置操作

  1. 下载linux系统镜像
  2. 制作启动盘
    建议使用ventoy。

重点操作

  1. 打开windows电脑
  2. 检查BIOS模式
    快捷键 + 打开windows runner,输入msinfo32,BIOS模式如果是UEFI的话就接着往下看。
  3. 关闭windows快速启动
    打开控制面板->硬件和声音->电源选项->选择电源按钮的功能->更改当前不可用的设置->关闭快速启动->保存修改
  4. 关闭BitLocker设备加密
  5. windows系统分区
    压缩卷,压缩出一部分未分配空间用来安装linux系统。
  6. 关闭安全启动
    联想电脑开机连续按F2进入BIOS设置。
  7. 从U盘启动
    联想电脑在开机时连按F12选择启动盘。
  8. 启动kubuntu live并安装
    1. 启动kubuntu之后选try kubuntu
    2. 连接网络之后点install kubuntu
    3. 在分区界面选手动分区
    4. 选中之前分出来的空闲空间,点创建
      1. 文件系统选btrfs
      2. 挂载点选/
    5. 选中文件系统为FAT32的windows的EFI分区,点编辑
      1. 挂载点选/boot/efi
    6. 安装

使用

开机后出现GRUB菜单

  • Kubuntu启动Linux
  • Windows Boot Manager启动Windows

可能遇到的问题

  • 重启直接进 Windows,看不到 GRUB 菜单
    Windows 管理员终端执行bcdedit /set "{bootmgr}" path "\EFI\ubuntu\grubx64.efi"或进 BIOS,把 GRUB (ubuntu) 调到第一启动项。

  • Windows 更新后把 GRUB 引导覆盖,直接进 Windows
    用 Kubuntu U 盘进入 Live 模式,执行引导修复:

    1
    2
    3
    4
    5
    6
    7
    sudo mount /dev/nvme0n1pX /mnt       #X是你的btrfs根分区号
    sudo mount /dev/nvme0n1p1 /mnt/boot/efi #p1是windows EFI分区
    for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
    sudo chroot /mnt
    grub-install /dev/nvme0n1
    update‑grub
    exit
  • 双系统时间不一致
    进入 Kubuntu 终端执行timedatectl set-local-rtc 1 --adjust-system-clock

双系统间相互扩容

windows系统扩容给linux系统

这一章节由AI生成且未经验证

执行下面命令先看磁盘布局:

1
lsblk -f

你会看到:系统Btrfs根分区(例如nvme0n1p2/sda2),后面有一大块free未分配空间。

方案A:空闲空间紧贴在Btrfs分区的右侧后面(连续相邻)【推荐】

直接把原有分区扩大占满整块硬盘,Btrfs在线扩容,得到单设备纯净Btrfs(不是多设备JBOD,以后维护最舒服)。

❗修改分区表强烈建议使用Live USB启动盘环境操作,不要直接在正在运行的系统里resize根分区,有小概率风险。

  1. 从Kubuntu U盘启动,选择Try Kubuntu,打开终端
  2. 查看磁盘,假设磁盘为/dev/nvme0n1,btrfs根分区号是p2
1
sudo growpart /dev/nvme0n1 2

growpart:把2号分区向后扩展到磁盘末尾全部空闲空间。

  1. 挂载你的btrfs根分区(替换为你的设备)

    1
    sudo mount /dev/nvme0n1p2 /mnt
  2. 通知btrfs使用整个分区全部空间

    1
    sudo btrfs filesystem resize max /mnt
  3. 卸载,重启回到本机系统

    1
    sudo umount /mnt

重启后df -h即可看到完整磁盘大小。

方案B:不能进LiveUSB /空闲空间不在分区后方(中间隔开)

直接在当前运行系统,把空余空间新建一个分区,作为第二个设备加入Btrfs存储池(多设备JBOD模式)。

缺点:同一块硬盘上的多设备Btrfs;该硬盘任意一块分区损坏,整个文件系统全部报废,不适合长期重要数据存储。适合临时救急。

  1. KDE打开「分区管理器(KDE Partition Manager)」,在未分配空间新建普通Linux分区(不要格式化!文件系统选未分配),记下新分区名,示例/dev/nvme0n1p3。

  2. 清除分区残留文件系统标记

    1
    sudo wipefs -a /dev/nvme0n1p3
  3. 将该分区加入根Btrfs池

    1
    sudo btrfs device add /dev/nvme0n1p3 /
  4. 执行balance重新分配数据(磁盘越大耗时越长,可以后台运行)

    1
    sudo btrfs balance start /
  5. 验证

    1
    2
    df -h /
    sudo btrfs device list /

此时/总容量=原分区+新分区之和。

查看Btrfs设备池
1
sudo btrfs device usage /

两种方案对比

方案 优点 缺点
A LiveUSB扩展原有分区 单设备,标准Btrfs,快照、备份、迁移都最简单,无多设备风险 需要U盘启动盘
B device add多设备在线扩容 不用重启,系统内直接完成 同盘多设备,任意一部分损坏全盘丢失;后续想变回单设备需要完整备份重拷数据

强烈建议有条件优先选方案A。

常见踩坑

  1. btrfs filesystem resize max / 执行后容量不变:底层分区本身没有扩大,resize只使用分区内部空闲空间,不能突破分区边界,这是很多人踩坑点。
  2. 不要直接对正在挂载的根分区用parted/gparted修改分区大小,会导致内核识别错乱,尽量Live环境操作。
  3. 多设备Btrfs(方案B)不要做RAID0,默认是single元数据,同盘多设备安全性很差。

如果你贴出lsblk -f输出,我可以直接给你复制粘贴的完整命令。

linux系统扩容给windows系统

应该不难,懒得写了,欢迎大家通过提PR等形式补充。

后续如何使用kubuntu系统可以看kubuntu技术文档这篇博文。

更改GRUB菜单

更改菜单顺序

1
2
3
4
5
6
cd /etc/grub.d
# 数字越小越靠前
sudo mv 30_os-prober 08_os-prober
# 重新生成 grub 配置
sudo update-grub
reboot

更改默认启动项

1
sudo nano /etc/default/grub

默认启动第一项:

1
GRUB_DEFAULT=0

或写全名:

1
GRUB_DEFAULT="Windows Boot Manager (on /dev/nvme0n1p1)"

查看完整可用名称:grep menuentry /boot/grub/grub.cfg

修改启动时间:

1
GRUB_TIMEOUT=10

记住上次选择:

1
2
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
1
2
3
# 重新生成 grub 配置
sudo update-grub
reboot
  • 标题: 双系统安装技术文档
  • 作者: 简约无双
  • 创建于 : 2026-09-05 00:00:00
  • 更新于 : 2026-10-20 09:15:21
  • 链接: https://blog.jianyuewushuang.top/2026/09/05/双系统安装技术文档/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论