尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

小米笔记本Ubuntu双系统安装:分区、引导修复与驱动适配

小米笔记本Ubuntu双系统安装:分区、引导修复与驱动适配 小米笔记本装 Ubuntu 双系统我在过去几年里前后折腾过十几台机器从早期的 Air 13 到后来的 Pro 系列、RedmiBook踩过的坑基本能出一本小册子。这篇文章就聊透一件事在小米电脑上怎么从零把 Windows 和 Ubuntu 双系统装好、装稳并且装完之后还能正常用中文输入法、连上 Wi-Fi、跑得起开发环境。不管你是第一次摸 Linux 的新手还是装过几次但每次都要重新查资料的老手这里面的分区规划、引导修复、驱动适配三块内容应该都能直接用上。需要说明的是文中涉及的操作都会给出具体命令和参数能照抄的部分我会尽量让你少查第二次。1. 装之前先想清楚小米笔记本为什么适合折腾双系统1.1 硬件层面的先天优势小米笔记本的硬件选型对 Linux 其实相当友好这一点是很多人的共识。它用的是标准的 Intel 或 AMD 平台NVMe 固态硬盘走的是 PCIe 通道没有那些奇奇怪怪的定制 RAID 控制器Ubuntu 安装程序能直接识别到磁盘。相比之下某些一线品牌的轻薄本为了省电会启用 Intel RST 模式装 Linux 时磁盘根本认不出来还得先进 BIOS 改成 AHCI改完 Windows 又起不来了那才叫麻烦。小米这边基本没这个问题。它的无线网卡大多是 Realtek 或者 Intel 的方案Intel 的 AX 系列在 Ubuntu 上开箱即用Realtek 的 RTL8822CE、RTL8852BE 这类在新内核上也能直接认实在不行装个 DKMS 驱动包也就解决了。显卡要么是 Intel 核显要么是 Intel 加 NVIDIA 的混合方案混合显卡在 Linux 上确实要多花点心思但也远没有到不能用的地步。键盘、触摸板、摄像头、USB 接口这些外设Ubuntu 22.04 之后的内核基本都能覆盖。我自己的主力机就是一台小米笔记本装的是 Ubuntu 24.04 加 Windows 11日常写代码、跑容器、看视频全部在 Ubuntu 这边只有极少数必须用 Windows 的场景才切过去。用了一年多稳定性没问题。1.2 双系统的方案选型为什么不是虚拟机或 WSL有人会问既然 Windows 上能跑虚拟机还有 WSL2为什么非要折腾双系统。这个问题值得认真回答一次因为它直接决定你后面要花多少时间。虚拟机的优势是隔离彻底、快照方便、删了不留痕迹。缺点也明显图形性能受限跑个稍有规模的编译或者需要 GPU 的任务就吃力内存和 CPU 是按需分配的虚拟机里负荷一上来宿主机跟着卡。WSL2 更适合服务端开发文件系统和网络模型做了特殊处理但涉及内核模块、USB 设备直通、图形界面调试这些场景就力不从心了。双系统的逻辑是硬件资源百分之百归当前系统支配性能没有损耗内核是完整的驱动是原生的。代价是切换要重启磁盘要提前分好两个系统的引导要能共存。对于需要长时间在 Linux 环境下工作、对性能敏感、或者要学习系统层面知识的人来说这个代价是值得的。我的建议很直接如果你只是偶尔跑几条 Linux 命令用 WSL2 就够了如果你要把它当主力开发环境用双系统比虚拟机舒服得多。1.3 装之前必须确认的几件事动手之前有几项必须先确认否则装到一半会卡住。第一是磁盘剩余空间。Windows 的系统盘至少要留出 80GB 给 Ubuntu如果你还想把数据和系统分开放那准备 150GB 到 200GB 更从容。固态硬盘的话用 Windows 自带的磁盘管理压缩卷就行碎片整理一下再压缩能压出来的空间更多。第二是 Windows 的加密状态。Windows 11 默认会对系统盘启用设备加密装双系统前必须把它暂停或者关闭否则你在 Ubuntu 里根本看不到 Windows 分区更严重的是分区表一动Windows 可能要求你输入恢复密钥才能启动。这个坑我见过太多人踩。第三是启动模式。小米笔记本默认走 UEFI这个是标准做法Ubuntu 也推荐 UEFI 加 GPT 的组合两者保持一致才能保证引导正常。确认方式很简单进 BIOS 看看启动模式或者进 Windows 在「系统信息」里看 BIOS 模式是不是 UEFI。第四是备份。分区操作有风险重要的东西提前拷到移动硬盘或者云盘上。这不是客套话我确实见过因为误删分区导致数据全丢的。2. 准备工作从分区到启动盘一步都不能省2.1 备份与关闭 Windows 快速启动准备工作里最容易被忽略、后果又最严重的就是 Windows 的快速启动功能。这个功能本质上是把系统内核状态保存到休眠文件里关机时其实没有完全关机。结果就是 Ubuntu 挂载 Windows 的 NTFS 分区时会发现文件系统处于「脏」状态只能以只读方式挂载严重时直接拒绝挂载。关闭路径在控制面板的电源选项里找到「选择电源按钮的功能」先点「更改当前不可用的设置」然后把「启用快速启动」的勾去掉。这一步做完Windows 关机就是真关机NTFS 分区在 Linux 下才能正常读写。顺带把 BitLocker 或设备加密也处理掉。在「设置」里搜索「设备加密」如果显示已开启就先暂停保护。暂停和关闭的区别在于暂停后重启会自动恢复适合只是临时装个系统如果你打算长期双系统直接关闭更省心代价是安全性下降这个自己权衡。注意设备加密的处理一定要在分区之前完成。一旦分区表发生变动密钥保护会被触发届时进 Windows 要输 48 位恢复密钥没备份的话数据基本找不回来。2.2 磁盘空间腾挪与分区规划在 Windows 磁盘管理里压缩卷是标准做法。选中系统盘右键压缩卷输入要压出来的容量。系统会先算一下能压多少这个数字受碎片影响有时候压不出你想要的量。可以先关闭系统还原点、清理临时文件、做一次碎片整理再试。分区规划这块我给出一个常用的方案以 512GB 固态、16GB 内存的机器为例挂载点建议容量文件系统用途说明/boot/efi512MBFAT32引导分区可以和 Windows 共用一个/80GBext4系统与软件安装位置/home剩余空间ext4个人文件、配置、项目代码swap8GB 或 16GBswap交换空间内存大可以少给关于 EFI 分区要不要单独分一个我的经验是单独分更省事。Ubuntu 完全可以复用 Windows 那个 100MB 左右的 EFI 分区但如果分了单独一个将来卸载 Ubuntu 只需要删掉自己那个分区不影响 Windows 的引导文件。共用的话卸载时要手动进 EFI 分区删文件多一步操作。swap 的大小取决于你要不要休眠。如果要休眠swap 得大于等于物理内存不休眠的话16GB 内存给 8GB 就够了甚至可以用 swapfile 代替分区安装时少分一个区。我个人习惯还是分一个 8GB 的 swap 分区简单直接不折腾。2.3 启动盘制作与镜像版本选择镜像从 Ubuntu 官方中文站下载就行选桌面版。版本上我建议选 LTS也就是长期支持版。当前 Ubuntu 24.04 LTS 是主流选择22.04 LTS 也还在支持周期内硬件较老的机器用 22.04 可能更稳。版本选择有个常见误区很多人追最新的非 LTS 版本结果遇到各种驱动和软件兼容问题。LTS 版本的内核和驱动经过更多测试软件源也更稳定对新手来说省心太多。我自己的习惯是机器新就上最新 LTS机器老就退一档 LTS。启动盘制作工具Windows 下推荐用 Rufus 或者 balenaEtcher。Rufus 要注意分区类型选 GPT目标系统选 UEFI这样制作出来的盘才能在小笔记本的 UEFI 模式下启动。balenaEtcher 更傻瓜选镜像、选盘、点开始三步搞定。提示U盘容量至少 8GB制作过程会清空U盘全部数据先确认里面没有要留的东西。2.4 BIOS 设置小米笔记本的入口与关键项小米笔记本进 BIOS 的方式是关机状态下按住 F2 再按电源键或者在开机看到 logo 时连续按 F2。部分型号需要先按住 Fn 再按 F2。进不去的话试试 F10 或者 Del不同批次有点差异。进去之后要确认几项。Secure Boot 建议先关闭虽然 Ubuntu 对安全启动是支持的但如果你要装第三方驱动比如某些网卡或者显卡驱动Secure Boot 开着会要求你注册密钥多一道麻烦。装完系统后想开再开也不迟。启动顺序里要把 USB 调到硬盘前面或者直接用启动菜单临时选。小米笔记本的启动菜单快捷键一般是 F12开机时按 F12 能列出当前可启动设备选你的 U 盘就行不用改 BIOS 里的顺序。如果 BIOS 里有 Fast Boot 选项也一并关掉。这个和 Windows 的快速启动不是一回事它影响的是开机自检阶段对 USB 设备的识别关掉能避免启动盘识别不到的问题。3. 安装过程实录从U盘启动到分区落地3.1 引导U盘并进入Live环境插上制作好的启动盘重启按 F12 选择从 U 盘启动。顺利的话会看到一个黑色的 GRUB 菜单有几个选项选第一个「Try or Install Ubuntu」进入。如果卡在黑屏或者花屏多半是显卡驱动的问题。可以在 GRUB 菜单里按 e 编辑启动项在 linux 那一行的末尾加上nomodeset然后按 F10 启动。这个参数让内核暂时不使用显卡的 KMS 驱动等系统装好装完驱动再去掉。进入之后会看到「试用 Ubuntu」和「安装 Ubuntu」两个选项。可以先点试用进桌面确认一下无线网卡、触摸板、屏幕亮度这些是不是正常确认没问题再点桌面上的安装图标开始装。这一步多花五分钟能省后面很多事。语言选中文或者英文都行我习惯选英文避免某些软件的路径出现中文字符带来的小问题这个纯属个人偏好选中文完全没问题。3.2 分区方案与手动分区实操到了「安装类型」这一步是整个过程里最关键的节点。选项里有「清除整个磁盘并安装」「与 Windows 一起安装」和「其他选项」。「与 Windows 一起安装」看起来最省事但它自动分配的分区方案往往不合心意有时候会把 EFI 分区搞乱。我推荐选「其他选项」手动分区虽然多几步但结果可控。进到手动分区界面后会看到磁盘上的现有分区包括 Windows 的几个分区和一块「空闲空间」那是你之前压缩出来的。选中空闲空间点「」号开始创建分区。先创建 EFI 分区大小 512MB类型选 EFI 系统分区这一步不用挂载点。如果你的机器打算和 Windows 共用 EFI那就跳过这步后面把挂载点指向已有的 EFI 分区即可。再创建根分区大小 80GB类型 ext4挂载点选/。然后创建 home 分区剩余空间全给它类型 ext4挂载点/home。最后创建交换空间大小 8GB类型选交换空间。注意分区时务必看清楚「用于安装启动引导器的设备」这一项要选你那个 EFI 分区所在的磁盘通常是 /dev/nvme0n1。选错的话引导装到别处开机就进不去系统了。手动分区界面里有个容易搞混的地方那个用来放 EFI 的分区在手动分区列表里显示的是「EFI 系统分区」而在挂载点那一栏是空的这是正常的。有人会误以为要给它挂载/boot/efi其实在 Ubuntu 的安装器里只要类型选对了它会自动处理你也挂不上。3.3 安装选项确认与等待过程分区确认无误后点下一步安装器会弹一个确认框列出所有将要发生的变化。这里一定要逐条看清楚尤其是有没有误删 Windows 分区的操作。确认之后点「安装」系统开始复制文件。安装过程中会问时区、键盘布局、用户名密码这些。时区选上海键盘默认就行。用户名建议用全小写字母避免大小写和特殊字符带来的路径问题密码设一个自己记得住的别太简单也别太复杂。安装大概需要十到二十分钟取决于U盘速度和硬盘速度。固态硬盘的话一般十几分钟就好。这段时间可以去泡杯茶别乱按键盘。安装完成的提示出现后会让你选择「现在重启」还是「继续试用」。选重启重启前把U盘拔掉否则可能又从这个盘启动了。3.4 首次重启与引导确认重启之后正常的话会看到 GRUB 菜单里面有 Ubuntu 和 Windows Boot Manager 两个选项。如果直接进了 Windows说明启动顺序里 Windows 排在前面这时候需要进 BIOS 调整或者在 Ubuntu 里用 efibootmgr 调整。先用 efibootmgr 看一下当前的启动项sudo efibootmgr输出里会列出BootOrder和一串BootXXXX每个编号对应一个启动项。找到 Ubuntu 那个然后调整顺序sudo efibootmgr -o 0003,0001,0002把 Ubuntu 排到第一位重启之后就会优先进入 GRUB。还有一个必须处理的点Ubuntu 22.04 之后GRUB 默认关闭了 os-prober 探测功能结果是 GRUB 菜单里根本看不到 Windows 选项。要让它显示需要改配置sudo nano /etc/default/grub找到GRUB_DISABLE_OS_PROBERtrue改成false保存后执行sudo update-grub再重启菜单里就有 Windows 了。这个坑非常经典很多教程没提导致新手以为双系统装失败了。如果开机直接进 Windows 且 BIOS 也调整不动还可以用 Ubuntu Live USB 启动后执行一次引导修复或者进 Windows 用 bcdedit 把 GRUB 的启动项加回去。详细方法在第五部分。4. 装完之后的收尾工作驱动、输入法、常用软件4.1 小米笔记本的驱动适配与硬件调试系统装完第一件事是更新一遍软件源并检查驱动。打开终端sudo apt update sudo apt upgrade -y然后看「软件和更新」里的「附加驱动」如果有 NVIDIA 显卡驱动或者网卡驱动可以选就挑一个推荐版本装上。混合显卡的机器装完 NVIDIA 驱动后通常默认走核显需要跑图形任务时用 PRIME 切换。sudo prime-select query sudo prime-select nvidia无线网卡这块Intel 的基本免驱Realtek 的要看具体型号。RTL8852BE 这类比较新的网卡在较老的内核上可能没有驱动可以装 DKMS 版本sudo apt install rtl8852be-dkms装完reboot重启一次。如果装完之后无线还是不能用先用有线网连一下或者用手机 USB 共享网络临时应急装好驱动再切回无线。屏幕亮度调节和 Fn 键功能小米笔记本上的表现因型号而异。多数机型亮度键开箱可用少数需要在 GRUB 里加acpi_backlightvendor之类的参数编辑/etc/default/grub的GRUB_CMDLINE_LINUX_DEFAULT加上参数后sudo update-grub。改之前先记录原值出问题好改回来。指纹识别在 Linux 下的支持一直比较有限Goodix 的模块社区有项目在跟进但配置起来挺折腾。我的建议是别在这上面花时间指纹这东西在笔记本上用的场景本来就少输密码也就一秒的事。4.2 中文输入法配置fcitx5 还是搜狗Ubuntu 默认的 IBus 输入法对中文的支持比较基础日常用建议换成 fcitx5。它的响应速度、候选词质量和词库都比 IBus 好一截。安装sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-frontend-gtk3 fcitx5-frontend-qt5装完之后用im-config切换输入法框架im-config -n fcitx5然后设置环境变量编辑/etc/environment加上这几行GTK_IM_MODULEfcitx QT_IM_MODULEfcitx XMODIFIERSimfcitx注销重新登录fcitx5 应该就起来了托盘区会出现图标。然后添加拼音输入方案在 fcitx5 配置里把「拼音」加进去用 CtrlSpace 切换中英文。搜狗输入法在 Ubuntu 上也能装但要注意它对 fcitx 的版本有要求新版 Ubuntu 上往往需要额外装兼容包配置起来比直接上 fcitx5 麻烦。我个人的建议是新手直接用 fcitx5 加拼音方案词库够用界面干净出问题的概率低。如果你特别依赖搜狗的词库可以试试中州韵方案词库可以导入配置也不算复杂。4.3 开发环境铺开从 git 到 docker开发相关的软件我一般这么装。Git 直接来自源sudo apt install git -y git config --global user.name 你的名字 git config --global user.email 你的邮箱Python 用系统自带的需要新版本就用 update-alternatives 或者 conda 管理。pip 和虚拟环境sudo apt install python3-pip python3-venv -y python3 -m venv myenv source myenv/bin/activateDocker 建议用官方源装版本比 Ubuntu 源里的新sudo apt install ca-certificates curl gnupg -y curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg echo deb [archamd64 signed-by/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io -y sudo usermod -aG docker $USER最后一行是把当前用户加进 docker 组免得每条命令都加 sudo但需要重新登录才生效。VS Code 从微软源装最省事sudo apt install wget gpg -y wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor packages.microsoft.gpg sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg然后添加源、更新、安装。或者直接下 deb 包双击安装也成。cmake、gcc 这些编译工具一条命令搞定sudo apt install build-essential cmake -y开发环境这块没什么玄学装完之后用git --version、docker --version这类命令验证一下就行。4.4 时间同步与休眠配置双系统用户几乎都会遇到的一个问题Ubuntu 和 Windows 显示的时间差 8 小时。原因是 Windows 默认把硬件时钟当成当地时间而 Linux 默认把它当成 UTC 时间两边理解不一致。有两种解决思路。一是让 Ubuntu 迁就 Windowstimedatectl set-local-rtc 1 --adjust-system-clock二是改 Windows 的注册表让它把硬件时钟当 UTC。两种都行我习惯第一种因为改动只在 Ubuntu 这边做不影响 Windows。休眠功能看个人需要。笔记本合盖后如果能正常睡眠那就够用了。真要配置休眠swap 得大于内存还要在 GRUB 参数里指定 swap 分区步骤稍微多一点不是刚需可以先跳过。5. 常见问题排查引导、驱动、外设5.1 引导丢失后的修复思路引导问题在双系统里出现频率最高常见的有三种。第一种是开机直接进 Windows看不到 GRUB。这多半是 Windows 更新时重写了 EFI 引导顺序把 Windows Boot Manager 设成了第一项。解决方式是进 BIOS 手动调整启动顺序或者用 efibootmgr 在 Ubuntu Live 环境里调整。前面讲过的sudo efibootmgr -o命令就是干这个的。第二种是 GRUB 菜单里没有 Windows 选项。这就是 GRUB_DISABLE_OS_PROBER 的问题改配置加 update-grub 即可。第三种是 GRUB 彻底损坏开机直接报grub rescue。这时候需要从 Ubuntu Live USB 启动用 chroot 方式重建 GRUBsudo mount /dev/nvme0n1p5 /mnt sudo mount /dev/nvme0n1p1 /mnt/boot/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分区的编号要根据实际情况改lsblk -f看一下根分区和 EFI 分区分别是哪个。还有更省心的办法用 boot-repair 工具装完之后点「推荐修复」它自动帮你处理大部分引导问题。提示从 Ubuntu 修复 Windows 引导的场景相对少见因为 Windows 引导一般不会无缘无故损坏除非分区被误删。这种情况更建议用 Windows 安装盘里的启动修复或者在 PE 环境下重建。5.2 显卡、休眠与外设的典型问题混合显卡的机器在 Ubuntu 上偶尔会出现外接显示器不亮、屏幕撕裂、休眠后唤不醒的情况。外接显示器的问题通常和显卡模式有关试试切到 NVIDIA 独显模式或者用 PRIME 的 on-demand 模式看哪个稳定用哪个。屏幕撕裂可以在 NVIDIA 设置里开启「Force Full Composition Pipeline」来缓解。休眠后唤不醒多半是网卡或者显卡的电源管理在作祟。可以在 GRUB 参数里加mem_sleep_defaultdeep让系统用传统的 S3 深度睡眠而不是现代的 S0ix。这个改动对续航有一点点影响但换来的是稳定的休眠唤醒值得。触摸板偶尔失灵或者双指滚动不工作一般是驱动模型的问题。可以试试在/etc/default/grub里加i8042.nopnp1或者psmouse.synaptics_intertouch0具体哪个有效得看机型。改完记得 update-grub 并重启。蓝牙有时候搜不到设备先确认蓝牙服务在跑systemctl status bluetooth没跑就sudo systemctl enable --now bluetooth。如果在跑还是搜不到sudo rfkill list看看是不是被软阻塞了sudo rfkill unblock all解除。5.3 卸载 Ubuntu 与恢复纯 Windows有些同学装完发现用不惯想删掉 Ubuntu。流程分三步顺序不能乱。进 Windows打开磁盘管理把 Ubuntu 的那几个分区删掉。删之前确认清楚哪些是 Linux 分区别把 Windows 的自己给删了。删完之后那块空间可以合并回 Windows 分区或者留着以后用。然后处理 EFI 分区里的 Ubuntu 文件夹。Windows 下用 diskpart 给 EFI 分区分配一个盘符diskpart list disk select disk 0 list partition select partition 1 assign letterZ exit这里的 partition 1 是 EFI 分区编号以你机器实际情况为准。分配完之后打开 Z 盘进 EFI 目录把 ubuntu 文件夹删掉。最后清理启动项。用管理员权限打开命令提示符bcdedit /enum firmware找到描述里带 Ubuntu 的那一项记下它的标识符然后bcdedit /delete {标识符}三步做完重启进 Windows双系统就彻底清理干净了。5.4 常见问题速查表把前面提到的问题整理成一张表方便遇到时快速定位。现象可能原因处理方式开机直接进 Windows启动顺序被改BIOS 调整顺序或 efibootmgrGRUB 无 Windows 选项os-prober 被禁用改 grub 配置后 update-grub开机进 grub rescue引导文件损坏Live USB 下 chroot 重建NTFS 分区只读Windows 快速启动未关电源选项里关闭快速启动无线网卡不可用驱动缺失装对应 DKMS 驱动包时间差 8 小时硬件时钟基准不同timedatectl 或改注册表亮度键失灵ACPI 背光接口问题GRUB 加 acpi_backlight 参数输入法切不出来环境变量未生效检查 /etc/environment 并重登5.5 我踩过的几个坑和几条建议最后分享几个别人不太会写、但实际很有用的经验。装系统前把 Windows 的恢复分区情况看一遍。有些机器上有个几百兆的恢复分区夹在中间压缩出来的空间可能是分散的安装时手动分区要看清楚能用的连续空间是哪一块别在碎片化的空间上硬分。U盘启动时如果卡在 logo 界面超过一分钟先换个 USB 接口尤其是USB 3.0 和 2.0 混用的机器换个口往往就好了。实在不行换个U盘有些廉价U盘的主控跟 UEFI 启动兼容性不好。装完之后先别急着装一堆软件第一次进系统就做一次完整的软件更新把内核和固件升到最新很多硬件问题在新内核里已经修好了。这一步做完再考虑装驱动能少走弯路。如果你打算长期用双系统建议给 Ubuntu 的 home 分区留足空间项目代码、容器镜像、数据集这些都很占地方。我见过有人只给 home 分了 30GB用两个月就满了迁移起来很麻烦。还有一点装完系统后记得在 Windows 里再检查一次时间同步设置确保它连的是网络时间服务器。两个系统都开着自动同步切换来切换去也不会闹脾气。这套流程我前后在十几台小米笔记本上跑过从 22.04 到 24.04机型从 Air 到 Pro 都有大方向没变过。真正会卡住人的从来不是安装本身而是分区前的准备和装完后的引导处理。把这两块吃透剩下的都是顺水推舟的事。
返回列表