装了 Windows 和 Linux 双系统,开机却只显示 Windows?想用 grub-install 修复引导,输完命令却跳出一堆报错?别慌,小编当初第一次折腾双系统时,跟你一模一样,对着黑屏发呆半小时,最后还是靠 grub-install 救回来的。这命令看着复杂,其实掌握了门道一点都不难。今天就手把手教你咋正确用它,参数啥意思、出错了咋整,连双系统配置流程都给你列清楚,新手跟着做就行。
一、grub-install 正确使用步骤,新手照着敲就行
不管你是修复引导还是新装系统,用 grub-install 基本就这几步,记不住可以存下来:
- 先搞清楚你的系统是 UEFI 还是 BIOS 模式。简单说,开机按 F2/F12 进 BIOS,能看到 “UEFI” 字样的就是 UEFI 模式,没有的就是 BIOS(Legacy)模式。这一步很重要,模式搞错了,命令再对也没用。
- 打开终端,切换到管理员权限,输入 “sudo su”(输入密码时屏幕不显示,输完回车就行)。新手常忘这步,结果权限不够报错,白忙活半天。
- 确定要安装引导的硬盘。一般是 “/dev/sda”(第一块硬盘),要是你有多个硬盘,用 “lsblk” 命令看看,别选错了。比如你想让引导装在第二块硬盘,就写成 “/dev/sdb”。
- 输入核心命令。UEFI 模式用 “grub-install –target=x86_64-efi –boot-directory=/boot/dev/sda”;BIOS 模式直接用 “grub-install /dev/sda”。输完等几秒,出现 “Installation finished. No error reported” 就成了。
- 最后更新一下配置,输入 “update-grub”(Ubuntu/Debian)或 “grub2-mkconfig -o /boot/grub2/grub.cfg”(CentOS),不然可能不显示新系统。
小编提醒一句,每一步输完命令别急着敲回车,先检查一遍,尤其硬盘路径别写错,多一个数字少一个字母都可能出错。
二、必学参数详解,表格一看就懂
grub-install 的参数不少,但常用的就这几个,记不住没关系,对着表格查:
参数 | 作用 | 示例 | 啥时候用 |
---|---|---|---|
–target | 指定系统架构和模式 | grub-install –target=x86_64-efi | UEFI 模式必须加,不然识别不了 |
–boot-directory | 指定 boot 目录位置 | grub-install –boot-directory=/mnt/boot | 修复其他分区的系统时用,比如从 U 盘启动修硬盘里的系统 |
–recheck | 强制重新检查设备 | grub-install –recheck /dev/sda | 之前安装失败,怀疑设备识别错了的时候 |
–force | 强制安装(谨慎用) | grub-install –force /dev/sda | 遇到 “设备不支持” 报错,确认没问题再用,可能有风险 |
可能有人会问,参数这么多,我全加上行不行?别!参数加错了反而容易出错,新手先把常用的这几个搞明白,够用了。比如 UEFI 模式就加 –target,修复其他系统就加 –boot-directory,别画蛇添足。
三、常见错误解决,报错再也不怕
用 grub-install 最烦的就是报错,小编整理了几个新手常遇到的,附上报错提示和解决办法:
- 报错 “cannot find EFI directory”
这多半是 UEFI 模式没指定对 EFI 分区。解决办法:先挂载 EFI 分区,比如 “sudo mount /dev/sda1 /boot/efi”(sda1 是你的 EFI 分区,用 lsblk 找),再重新运行命令,加上 “–efi-directory=/boot/efi” 参数。 - 报错 “permission denied”
简单,你没加管理员权限!前面加 sudo 就行,比如 “sudo grub-install /dev/sda”。小编第一次用的时候就忘加了,盯着报错看了半天,才反应过来。 - 报错 “invalid device /dev/sda1”
你把硬盘写成分区了!grub-install 要装在硬盘(/dev/sda),不是分区(/dev/sda1)。改一下路径,比如 “grub-install /dev/sda” 就好。 - 报错 “failed to get canonical path of `/cow’”
这是用 live 启动盘时常见的错,因为你没挂载系统分区。先挂载你要修复的系统分区,比如 “sudo mount /dev/sda5 /mnt”,再用 “–root-directory=/mnt” 参数,命令变成 “grub-install –root-directory=/mnt/dev/sda”。
四、双系统配置全流程,从装系统到引导修复
以 Windows 10 + Ubuntu 22.04 为例,全程图文级步骤(文字描述够详细,新手能看懂):
- 先在 Windows 里用磁盘管理分出一块空闲空间(至少 20GB),别格式化,留着给 Ubuntu。
- 用 U 盘装 Ubuntu,选 “与 Windows 共存”,安装过程中别碰 Windows 分区,不然容易丢数据。小编有个朋友就手贱删了 Windows 分区,最后哭着找我恢复,折腾了一下午。
- 装完重启,要是能看到 Ubuntu 选项,直接跳过下一步;要是只显示 Windows,就得用 grub-install 修复了。
- 插 Ubuntu 启动盘,选 “Try Ubuntu without installing”(试用模式),打开终端:
- 先找 Ubuntu 安装的分区:“sudo fdisk -l”,看哪个分区类型是 “Linux”,记下路径(比如 /dev/sda5)
- 挂载这个分区:“sudo mount /dev/sda5 /mnt”
- 挂载必要的目录:“sudo mount –bind /dev/mnt/dev”“sudo mount –bind /sys/mnt/sys”“sudo mount –bind /proc/mnt/proc”
- 切换到该分区:“sudo chroot /mnt”
- 安装引导:“grub-install /dev/sda”
- 更新配置:“update-grub”
- 退出重启:“exit”“sudo reboot”
- 重启后就能看到双系统选项了,用方向键选系统,回车就行。
五、个人折腾出来的心得,新手一定要看
用 grub-install 快 5 年了,小编总结出这几点:别害怕报错,报错信息是帮你解决问题的线索,比如看到 “EFI” 就想模式对不对,看到 “permission” 就检查权限。
双系统配置时,尽量把 Linux 装在单独的分区,别和 Windows 挤在一起,不然后期想扩容都麻烦。还有就是一定要备份重要数据,尤其修复引导前,谁也保不准手滑输错命令。
其实这命令没那么难,第一次可能要折腾一小时,多练两次,十分钟就能搞定。小编现在修引导,闭着眼睛都能敲对命令 —— 都是练出来的。你要是第一次没成功,别灰心,再试一次,实在不行留言问我,咱一起解决。