双系统安装技术文档
本文中的linux发行版以基于btrfs文件系统的kubuntu为例。
前置操作
- 下载linux系统镜像
- 制作启动盘
建议使用ventoy。
重点操作
- 打开windows电脑
- 检查BIOS模式
快捷键+ 打开windows runner,输入 msinfo32,BIOS模式如果是UEFI的话就接着往下看。 - 关闭windows快速启动
打开控制面板->硬件和声音->电源选项->选择电源按钮的功能->更改当前不可用的设置->关闭快速启动->保存修改 - 关闭BitLocker设备加密
- windows系统分区
压缩卷,压缩出一部分未分配空间用来安装linux系统。 - 关闭安全启动
联想电脑开机连续按F2进入BIOS设置。 - 从U盘启动
联想电脑在开机时连按F12选择启动盘。 - 启动kubuntu live并安装
- 启动kubuntu之后选
try kubuntu - 连接网络之后点
install kubuntu - 在分区界面选
手动分区 - 选中之前分出来的空闲空间,点
创建- 文件系统选
btrfs - 挂载点选
/
- 文件系统选
- 选中文件系统为FAT32的windows的EFI分区,点
编辑- 挂载点选
/boot/efi
- 挂载点选
- 安装
- 启动kubuntu之后选
使用
开机后出现GRUB菜单
Kubuntu启动LinuxWindows 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
7sudo 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根分区,有小概率风险。
- 从Kubuntu U盘启动,选择Try Kubuntu,打开终端
- 查看磁盘,假设磁盘为
/dev/nvme0n1,btrfs根分区号是p2
1 | sudo growpart /dev/nvme0n1 2 |
growpart:把2号分区向后扩展到磁盘末尾全部空闲空间。
挂载你的btrfs根分区(替换为你的设备)
1
sudo mount /dev/nvme0n1p2 /mnt
通知btrfs使用整个分区全部空间
1
sudo btrfs filesystem resize max /mnt
卸载,重启回到本机系统
1
sudo umount /mnt
重启后df -h即可看到完整磁盘大小。
方案B:不能进LiveUSB /空闲空间不在分区后方(中间隔开)
直接在当前运行系统,把空余空间新建一个分区,作为第二个设备加入Btrfs存储池(多设备JBOD模式)。
缺点:同一块硬盘上的多设备Btrfs;该硬盘任意一块分区损坏,整个文件系统全部报废,不适合长期重要数据存储。适合临时救急。
KDE打开「分区管理器(KDE Partition Manager)」,在未分配空间新建普通Linux分区(不要格式化!文件系统选未分配),记下新分区名,示例
/dev/nvme0n1p3。清除分区残留文件系统标记
1
sudo wipefs -a /dev/nvme0n1p3
将该分区加入根Btrfs池
1
sudo btrfs device add /dev/nvme0n1p3 /
执行balance重新分配数据(磁盘越大耗时越长,可以后台运行)
1
sudo btrfs balance start /
验证
1
2df -h /
sudo btrfs device list /
此时/总容量=原分区+新分区之和。
查看Btrfs设备池
1 | sudo btrfs device usage / |
两种方案对比
| 方案 | 优点 | 缺点 |
|---|---|---|
| A LiveUSB扩展原有分区 | 单设备,标准Btrfs,快照、备份、迁移都最简单,无多设备风险 | 需要U盘启动盘 |
| B device add多设备在线扩容 | 不用重启,系统内直接完成 | 同盘多设备,任意一部分损坏全盘丢失;后续想变回单设备需要完整备份重拷数据 |
强烈建议有条件优先选方案A。
常见踩坑
btrfs filesystem resize max /执行后容量不变:底层分区本身没有扩大,resize只使用分区内部空闲空间,不能突破分区边界,这是很多人踩坑点。- 不要直接对正在挂载的根分区用parted/gparted修改分区大小,会导致内核识别错乱,尽量Live环境操作。
- 多设备Btrfs(方案B)不要做RAID0,默认是single元数据,同盘多设备安全性很差。
如果你贴出lsblk -f输出,我可以直接给你复制粘贴的完整命令。
linux系统扩容给windows系统
应该不难,懒得写了,欢迎大家通过提PR等形式补充。
后续如何使用kubuntu系统可以看kubuntu技术文档这篇博文。
更改GRUB菜单
更改菜单顺序
1 | cd /etc/grub.d |
更改默认启动项
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 | GRUB_DEFAULT=saved |
1 | # 重新生成 grub 配置 |
- 标题: 双系统安装技术文档
- 作者: 简约无双
- 创建于 : 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 进行许可。