ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

惠普笔记本装Win10+Ubuntu20.04双系统安装与避坑指南

惠普笔记本装Win10+Ubuntu20.04双系统安装与避坑指南 1. 先想清楚这台惠普到底该不该上双系统每次有人问我“惠普笔记本装 Windows10 和 Ubuntu20.04 双系统难不难”我都会先反问一句你打算拿 Ubuntu 干什么。这个问题的答案直接决定后面要不要折腾。如果只是想在 Linux 下跑几个命令行工具、学一学 shell、写写 Python 脚本那WSL2已经足够用了Windows10 下一条wsl --install就能起来还能跑图形程序完全没必要动分区表和引导记录。但如果你要跑 ROS、要做 SLAM、要接 USB 摄像头和串口设备、要装 NVIDIA 私有驱动、要做裸机内核模块调试那 WSL2 的边界就出来了——内核是微软定制过的硬件直通没那么自由某些外设和实时性要求高的场景会卡住。双系统的本质是用一块硬盘的物理空间换取一套完整的、原生的 Linux 运行环境代价是每次切换都得重启而且两套系统共享同一块盘、同一个 EFI 分区任何一侧的引导出问题都会影响另一侧。Ubuntu20.04 是个特殊的版本它是 LTS支持到 2025 年 4 月ROS Noetic 的官方支持平台就是它大量 SLAM、视觉、机器人相关的中文教程和开源工程都锁死在 20.04 上所以哪怕现在 22.04、24.04 都出来了依然有大批人往回装 20.04。这也是我这个标题里把版本号写死的原因——版本选错后面配环境会一路撞墙。1.1 哪些人适合真机双系统判断标准其实很简单看你的工作负载有没有触及下面这几条中的任意一条需要直接访问 GPU 做 CUDA 计算或深度学习训练需要跑 ROS 节点并且要求实时性需要连接特定型号的传感器、开发板、工业相机需要编译和加载自定义内核模块需要完整的桌面环境做 GUI 调试。命中任意一条双系统就是比虚拟机更省心的选择。虚拟机的问题在于 3D 加速是半残的跑 Gazebo 仿真会明显掉帧USB 设备透传时不时抽风而且笔记本本身性能就有限宿主加客户机两套系统一起吃内存和 CPU体验很差。反过来如果你的需求是“偶尔用一下 Linux 命令”“跑个 Docker”“学学 Vim”那就老老实实用 WSL2 或者干脆租个云主机。装双系统的时间成本不只是一两个小时后续的驱动适配、引导维护、内核升级都可能出问题这些隐性成本才是真正烦人的地方。1.2 惠普机型特有的几个坑惠普笔记本在双系统这件事上有几个和联想、戴尔不太一样的地方我踩过不止一次这里先摆出来后面每个都会展开讲。第一个是Intel RST / RAID ON 模式。惠普相当多的消费级和商用机型出厂时 SATA/NVMe 控制器默认是 RAID 模式Windows 下装了 Intel Rapid Storage Technology 驱动。这种状态下 Ubuntu20.04 的安装器完全看不到硬盘你会以为硬盘坏了。解决办法是进 BIOS 把模式改成 AHCI但直接改会导致 Windows 蓝屏进不去必须先在 Windows 里用安全模式技巧切换。第二个是Secure Boot 的修改门槛。惠普不少机型在 BIOS 里要改 Secure Boot 状态必须先设置一个 BIOS 管理员密码BIOS Administrator Password否则选项是灰的。这一步看起来简单但第一次碰的人会卡很久找不到哪里能解锁。第三个是指纹识别基本无解。惠普用的指纹模块多数是 Validity/Synaptics 的方案Linux 下驱动支持很差别指望指纹登录。第四个是部分机型的Realtek 无线网卡比如 RTL8852 系列Ubuntu20.04 的原生内核5.4里没有驱动装完系统 wifi 是灰色的得手动编译驱动或者升级内核。2. 动手之前必须确认的四件事很多人失败就失败在跳过了准备阶段直接插 U 盘开装结果分区表被写乱、Windows 崩掉、数据全没。准备工作占整个流程三成的时间但能避免九成的灾难。2.1 确认引导模式和分区表类型Windows 下按Win R输入msinfo32在“系统摘要”里看两项BIOS 模式是不是 UEFI安全启动状态是不是“打开”。再右键“此电脑”→“管理”→“磁盘管理”右键系统盘看“属性”→“卷”确认分区样式是 GPT 还是 MBR。现代惠普本基本都是 UEFI GPT但老机型或者被人重装过的机器可能是 Legacy MBR。这个信息决定了后面 U 盘启动盘怎么做、BIOS 里怎么设。如果是 UEFI GPTU 盘必须按 GPT FAT32 做启动时选带“UEFI”前缀的那一项如果是 Legacy MBR就得做 MBR 模式的盘而且不能和 UEFI 混着装。强行混装的后果是引导记录互相覆盖两边都进不去。2.2 处理硬盘控制器模式惠普最大的坑进 BIOS开机连按 F10有些机型先按 Esc 再按 F10找到 Storage 或者 System Configuration 下面的 SATA Operation / Controller Mode看是不是 RAID 或者 Intel RST。如果是别急着改先去 Windows 里做切换准备。原因是 Windows 里装的是 RST 驱动BIOS 切成 AHCI 后重新启动Windows 找不到对应驱动会直接蓝屏报INACCESSIBLE_BOOT_DEVICE。正确的做法是先把 Windows 强制以安全模式启动一次让系统重新枚举硬盘控制器并加载 AHCI 驱动。管理员权限打开 CMDbcdedit /set {current} safeboot minimal重启进 BIOS 把模式改成 AHCI保存退出。这次会进入 Windows 安全模式画面很简陋分辨率很低这是正常的。再打开 CMDbcdedit /deletevalue {current} safeboot重启Windows 正常进入此时控制器已经是 AHCI驱动也加载好了。这一步做完Ubuntu 安装器才能看到硬盘。注意如果 BIOS 里根本没有 AHCI 选项说明这台机器的控制器不支持切换那就只能考虑外接硬盘或者放弃双系统。另外改 AHCI 之前请务必确认已关闭 BitLocker否则会要求输入 48 位恢复密钥。2.3 关闭快速启动、休眠和 BitLockerWindows10 的“快速启动”是混合关机关机时不会真正关闭 NTFS 分区而是把内核状态存到 hiberfil.sys。这种情况下 Linux 挂载 NTFS 分区会只读甚至报错严重时会损坏文件系统。关闭方法有两种图形界面控制面板 → 电源选项 → 选择电源按钮的功能 → 更改当前不可用的设置 → 取消勾选“启用快速启动”。命令行更彻底直接连休眠一起干掉管理员 CMDpowercfg /h off这条命令会删除 hiberfil.sys释放出跟内存等量的空间16G 内存就省 16G顺便解决 NTFS 挂载问题。BitLocker 是另一个必须处理的点。惠普的 EliteBook、ProBook 商用系列出厂经常默认开启设备加密。加密状态下压缩卷、调整分区都可能触发恢复密钥验证重装引导后甚至直接锁盘。在“管理 BitLocker”里先暂停保护或者完全解密等双系统装好、确认稳定运行后再决定要不要重新开启。如果一定要开着 BitLocker务必把恢复密钥导出来打印或存到手机上别只存在这台电脑里。2.4 备份和空间规划分区操作是有风险的哪怕流程再熟。重要数据先拷到移动硬盘或者云盘别偷懒。另外建议顺手备份一下分区表Windows 下可以用 DiskGenius 导出分区表万一出事还能恢复回来。空间方面Ubuntu 至少要留 60G我建议 100G 起。如果你要装 ROS 全家桶、CUDA、几个深度学习框架、再加上数据集200G 都不算多。看下你的硬盘总量如果只有 256G 且 Windows 已经用了大半那还是加块硬盘或者放弃吧。3. 完整实操从压缩分区到 Ubuntu 落地准备工作做完接下来就是真正的安装流程。这里我按实际操作顺序走一遍每一步都说清楚为什么这么做。3.1 Windows 侧压缩出空闲空间右键“此电脑”→“管理”→“磁盘管理”找到 C 盘右键“压缩卷”。系统会先计算可压缩空间这个值往往比你预想的小因为页面文件、系统还原点、不可移动文件都会占位。如果你发现可压缩空间远小于预期通常是三个原因系统还原点占用了空间在“系统保护”里删掉旧还原点、页面文件没关虚拟内存先设为无压缩完再设回来、以及磁盘碎片太多机械硬盘做一次碎片整理固态硬盘用“优化”即可。我个人习惯是不在 Windows 里压缩而是直接在 Ubuntu 安装器里删掉一个已有的分区但这对新手风险更大因为容易误删 Windows 分区。折中方案是在 Windows 里压缩出比目标稍大的空间然后在 Ubuntu 安装界面里用“其他选项”手动分配给各个挂载点。压缩完成后你会在磁盘管理里看到一块标着“未分配”的黑色区域。这块就是 Ubuntu 的家。3.2 制作 U 盘启动盘镜像从 Ubuntu 官网下载 ubuntu-20.04.6-desktop-amd64.iso这是 20.04 的最后一个点版本集成了较新的内核和驱动比 20.04.0 少很多硬件兼容问题。下载完记得校验 SHA256别嫌麻烦下坏的镜像装到一半报错更浪费时间。U 盘用 Rufus 做最省事。打开 Rufus设备选 U 盘引导类型选择下载好的 iso分区类型选 GPT目标系统选 UEFI文件系统 Rufus 会自动处理成 FAT32。如果提示需要额外下载文件点确认即可。点击“开始”等进度条走完。注意U 盘会被格式化操作前确认里面没有要留的东西。另外有些 U 盘是 USB3.0 且带量产分区Rufus 里要选“以 ISO 镜像模式写入”不要选 DD 模式否则后续没法改里面的文件。3.3 BIOS 设置与启动顺序重启开机时连按 Esc 呼出 Startup Menu再按 F9 进入 Boot Menu选带 UEFI 前缀的那个 U 盘。如果找不到回 BIOSF10里的“Advanced”→“Secure Boot Configuration”确认两点。第一Secure Boot 建议先关闭。虽然 Ubuntu 的 shim 能通过微软签名的引导链启动但装 NVIDIA 私有驱动时需要注册 MOK新手容易在 MOK 管理界面卡住。关闭 Secure Boot 最省事。如果选项是灰的先去 Security 里设置 BIOS Administrator Password设置完再回来改。第二确认 Legacy Support 是关闭的如果在 UEFI 模式下装。同时确认“Boot Order”里 UEFI 启动项在列表里。保存退出机器从 U 盘启动看到 GRUB 菜单选 “Try Ubuntu without installing” 先进 Live 环境试一下——这一步很重要可以验证 wifi、触摸板、屏幕、声音是不是正常顺便确认安装器能不能看到硬盘。如果 Live 环境里sudo fdisk -l看不到你的固态硬盘那说明控制器模式还没改对回去重新处理。3.4 分区方案与安装确认 Live 环境正常后桌面上双击“Install Ubuntu 20.04 LTS”开始安装。语言选中文或英文都行我一般选英文避免路径中文带来的各种奇葩问题。键盘布局选 English (US)输入法后面再装。到了“Installation type”这一步一定要选 “Something else”中文版叫“其他选项”。千万不要选“与 Windows 一起安装”那个自动方案会自己乱分配而且对惠普的 EFI 分区处理不一定符合你的预期。进去后会看到分区列表找到那块“free space”点“”号逐个创建。我的方案是这样挂载点建议大小类型说明/boot/efi复用已有EFI 系统分区找到 Windows 那个 100M 左右的 EFI 分区设为 EFI 分区不要勾选格式化swap8-16G交换空间内存 8G 给 8G16G 以上给 16G 足够/80-120Gext4系统和软件都装这里日志文件系统选 ext4/home剩余全部ext4用户数据重装系统时保留这个分区就能保住数据关于 EFI 分区要不要新建我的实战经验是大部分惠普机型复用 Windows 的 EFI 分区没问题Ubuntu 会把 grub 装到EFI/ubuntu/目录下和 Windows 的EFI/Microsoft/并存。但如果你发现那个分区总容量只有 100M 且已被 Windows 用掉大半可以自己新建一个 512M 的 EFI 分区安装器会把引导装到新分区上代价是启动时可能出现两个 EFI 项需要手动调整启动顺序。底部“Device for boot loader installation”这一项选整块硬盘比如/dev/nvme0n1或者/dev/sda不要选分区。这是新手最容易搞错的地方选错了引导装不进去装完重启直接进 Windows。确认无误后点“Install Now”弹窗会列出所有将被格式化的分区仔细核对一遍确认没有 Windows 的分区在里面然后继续。设置用户名密码时区选 Shanghai等待安装完成大概 15 到 25 分钟取决于 U 盘速度。3.5 首次进入系统后立刻要做的几件事装完重启GRUB 菜单应该会列出 Ubuntu 和 Windows Boot Manager。先进 Ubuntu连上网如果 Live 环境里 wifi 正常这里一般也正常然后立刻做三件事。第一换软件源。打开“Software Updates”Download from 选中国的镜像站速度能快一个数量级。命令行也行编辑/etc/apt/sources.list把 archive.ubuntu.com 替换成对应镜像地址然后sudo apt update sudo apt upgrade -y第二装显卡驱动。先用命令看推荐驱动ubuntu-drivers devices输出里会标出 recommended 的那个通常是 nvidia-driver-535 或 525。用 apt 装比在“附加驱动”界面里点更可控sudo apt install nvidia-driver-535装完重启用nvidia-smi验证。如果 Secure Boot 没关安装过程中会弹 MOK 注册界面需要设置一个密码重启后进入蓝底的 MOK Manager 界面选 Enroll MOK → Continue → 输入刚才的密码。这个流程不能跳过跳过了驱动加载不了。第三装中文输入法和常用工具sudo apt install fcitx fcitx-googlepinyin vim git curl htop然后在语言支持里把键盘输入法系统切成 fcitx注销重登即可。4. 引导、时钟、驱动这三个坑几乎人人都会踩系统装完能进不代表就万事大吉了。下面这三类问题在论坛里出现频率最高我一个个说清楚原理和解法。4.1 GRUB 引导丢失与修复最常见的情况是双系统装好后某次 Windows 大版本更新或者改了一次 BIOS 启动顺序开机直接进 WindowsGRUB 菜单不见了。原因通常是 Windows 更新重写了 EFI 分区里的启动项把 Boot Manager 的默认项改回了 Windows。先别慌大多数情况不用重装。有几个排查方向。一是进 BIOS 看启动顺序惠普的 F9 Boot Menu 里应该能看到 “ubuntu” 这个条目如果能看到把它调到第一位就恢复了。二是如果 Boot Menu 里没有 ubuntu 条目需要确认 EFI 分区里的文件还在。从 U 盘 Live 环境启动挂载 EFI 分区看看sudo mkdir /mnt/efi sudo mount /dev/nvme0n1p1 /mnt/efi ls /mnt/efi/EFI/正常应该能看到 ubuntu、Microsoft、BOOT 三个目录。如果有 ubuntu 目录但启动项丢了可以用efibootmgr手动重建sudo efibootmgr -c -d /dev/nvme0n1 -p 1 -L Ubuntu -l \\EFI\\ubuntu\\shimx64.efi三是如果 ubuntu 目录都没了说明引导完全被覆盖这时候用 boot-repair 最省事。Live 环境里联网sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt update sudo apt install boot-repair boot-repair选 “Recommended repair”它会自动检测并重建所有引导项。修好之后还有一个上游问题要处理Windows 更新后 GRUB 丢失能不能预防我的做法是在 Windows 里不要开快速启动前面已经关了并且每次 Windows 大更新前先记下 EFI 分区的状态。另外更新完在 Ubuntu 里跑一次sudo os-prober sudo update-grub让 GRUB 重新扫描 Windows 引导项。os-prober在 20.04 上默认是开启的更新完能自动发现 Windows Boot Manager。如果update-grub输出里没有 Windows 条目检查/etc/default/grub里的GRUB_DISABLE_OS_PROBER是不是被设成了 true。4.2 系统时间差 8 小时这个问题所有人都会遇到现象是从 Windows 重启进 Ubuntu时间往前跳了 8 小时从 Ubuntu 重启进 Windows时间又往后跳 8 小时。不处理的话浏览器证书、日志时间戳、定时任务全乱。根因是两套系统对硬件时钟RTC的理解不同。Windows 把 RTC 当作本地时间Linux 把 RTC 当作 UTC 时间中国是 UTC8所以差 8 小时。两种解法我只能推荐一种改 Windows 或者改 Linux二选一别两边都改。改 Linux推荐给只用 Ubuntu 为主的人sudo timedatectl set-local-rtc 1 --adjust-system-clock这条命令让 Ubuntu 也把 RTC 当本地时间跟 Windows 保持一致。执行后timedatectl输出里会提示 “RTC in local TZ: yes”系统会给个警告说这样有潜在问题但对个人双系统场景完全够用。改 Windows推荐给主要用 Windows 的人在 Windows 里新建一个注册表项管理员 CMDreg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /d 1 /t REG_DWORD /f这个方案更“正统”但要注意 Windows 从休眠恢复时偶尔会重新写回本地时间所以必须确保快速启动和休眠是关闭状态。4.3 显卡驱动、亮度与外接显示器NVIDIA 驱动的坑主要集中在三个地方驱动装不上、装上了黑屏、装上了但亮度调不了。装完驱动黑屏进不去桌面多半是新驱动和内核版本不匹配或者 nouveau 没被正确屏蔽。开机进 GRUB 菜单光标停在 Ubuntu 项上按e进入编辑模式在linux那一行末尾加nomodeset ubuntu-drivers devices按 F10 启动进系统后重装驱动。nomodeset的作用是让内核不加载任何显卡驱动用基本的 VESA 模式显示能让你进系统排查。亮度调不了的问题在惠普的某些机型上很常见尤其是 OLED 屏或者使用 Intel NVIDIA 双显卡的机器。可以先试试在/etc/default/grub的GRUB_CMDLINE_LINUX_DEFAULT里加参数acpi_backlightvendor改完执行sudo update-grub重启。如果是双显卡切换的问题用prime-select管理prime-select query sudo prime-select nvidia sudo prime-select intel切完需要注销重登才生效。Ubuntu20.04 默认用 on-demand 模式还是 nvidia 模式取决于你装驱动时的选择。做深度学习必须选 nvidia纯办公选 intel 更省电。外接显示器的主副屏设置在“设置”→“显示”里可以拖拽排列也可以在命令行用 xrandrxrandr --query xrandr --output HDMI-1 --right-of eDP-1 --autoxrandr --query会列出所有可用接口惠普的 HDMI 口通常接在 NVIDIA 上Type-C 口可能接在 Intel 核显上这会导致“插了外接屏但 Ubuntu 检测不到”。遇到这种情况先确认prime-select是 nvidia 模式再检查 BIOS 里有没有把显卡模式设成混合/独显。5. 常见问题速查表与个人踩坑记录前面说的都是主线流程但真正装机时各种边角问题才是耗时间的地方。这一节我把这些年遇到过的、别人问过我的问题整理成表遇到相似症状直接对号入座。5.1 问题速查表现象大概率原因处理方式安装器看不到硬盘控制器是 RAID/RST 模式按 2.2 节切 AHCI装完重启直接进 Windows引导器安装位置选成了分区重装或 boot-repair 修复启动进不去图形界面显卡驱动冲突或 nouveau 未屏蔽GRUB 加 nomodeset 后重装驱动系统时间差 8 小时RTC 时间标准不一致按 4.2 节二选一修改指纹无法识别驱动缺失无解改用密码或面容wifi 不可用Realtek 网卡无内置驱动装 rtl8852be 驱动或升级内核蓝牙搜不到设备蓝牙固件缺失dmesg | grep -i blue看报错装 firmware合盖休眠后唤不醒休眠状态管理异常装完 NVIDIA 驱动后建议关闭自动休眠亮度无法调节背光接口识别错GRUB 加 acpi_backlightvendor外接显示器无信号HDMI 挂在独显上但当前是核显模式prime-select nvidia后重登触摸板不灵敏手势配置缺失sudo apt install xserver-xorg-input-synaptics声音只有单侧声卡通道映射错alsamixer手动调整通道引导菜单没有 Windowsos-prober 未启用检查 GRUB_DISABLE_OS_PROBER 并 update-grub5.2 几个论坛里查不到的实操心得心得一不要在 Ubuntu 安装过程中勾选“安装第三方软件”和“联网下载更新”。这两个选项会在安装阶段在线拉取显卡驱动和多媒体编解码器一是慢二是经常会因为网络波动导致安装卡死在一个进度条上。先装纯净系统进桌面后再手动装驱动可控性强得多。心得二swap 分区在 NVMe 固态上其实可以不给。如果你内存 16G 以上日常又不跑大规模内存溢出任务可以直接跳过 swap 分区Ubuntu 会用 zram 做内存压缩。真需要 swap 的时候再建一个 swapfile 也来得及sudo fallocate -l 8G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile echo /swapfile none swap sw 0 0 | sudo tee -a /etc/fstab心得三惠普的 BIOS 更新会重置启动项顺序。我有一次更新完 BIOSUbuntu 启动项直接被挪到列表末尾开机默认进 Windows。每次更新 BIOS 后进 F9 检查一下启动顺序比事后修 GRUB 省事得多。心得四把 EFI 分区备份一份。装完系统、确认一切正常后用 Live U 盘挂载 EFI 分区整个目录打包存到/home或者移动硬盘里。以后再遇到 GRUB 丢失直接解压回去再efibootmgr建项五分钟搞定比重装系统快得多。sudo tar -czvf efi-backup.tar.gz -C /mnt/efi .心得五装完 Ubuntu 第一件事是建快照或者记下当前状态。如果是虚拟机我会直接打快照真机双系统的话至少把/etc/fstab、/etc/default/grub、ubuntu-drivers devices的输出、lsblk -f的结果存一份到云笔记里。以后出问题至少有个已知正常的参照。6. 装完之后这套环境还能怎么用双系统装好只是起点真正让人回不去 Windows 的是 Ubuntu 下那套完整的工作流。如果你是为机器人或者视觉方向装的接下来的路径大概是装 ROS Noeticsudo apt install ros-noetic-desktop-full配置环境变量初始化 rosdep然后是 OpenCV、PCL、Eigen 这些基础库接着上 ORB-SLAM3 或者 VINS 这类 SLAM 框架跑通之后再接真实的传感器。这一整条链路在 Ubuntu20.04 上是最顺的网上能找到的教程也最多这也是很多人宁愿往回装 20.04 的原因。如果是做深度学习那 NVIDIA 驱动装完就是 CUDA Toolkit 和 cuDNN注意版本要匹配20.04 上常用的是 CUDA 11.x 配 cuDNN 8.xPyTorch 装对应版本。装完跑一句torch.cuda.is_available()验证一下返回 True 就说明整条链路通了。如果是纯开发那可以考虑把开发环境容器化Docker 在 Ubuntu 下的体验比 Windows 下顺畅太多不用折腾什么 Hyper-V 和 WSL 后端。我自己这几台机器上折腾下来最大的感受是双系统真正的维护成本不在安装而在后续每一次系统更新。Windows 大更新可能覆盖引导Ubuntu 内核升级可能打破 NVIDIA 驱动BIOS 更新可能重置启动顺序。所以我现在的习惯是每隔一两个月主动进一次两个系统各跑一遍更新确认都能正常启动而不是等到某天急着用的时候才发现进不去了。另外手边常备一个装了 Ubuntu Live 环境的 U 盘这东西在修引导、救数据的时候价值远超它那几十块钱的成本。还有个小技巧如果你要在两个系统之间频繁传文件别用 U 盘拷来拷去Ubuntu 这边装个ntfs-3g就能直接读写 Windows 的 NTFS 分区/etc/fstab里加上自动挂载开机就能在文件管理器里看到 Windows 的盘符方便得多。反过来 Windows 要读 ext4 就得装第三方工具了所以我一般把共享数据都放在 NTFS 分区上两边都能访问升级系统也不影响。
返回列表