V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Sponsored by
LinkedIn
不坐班的神仙工作 · 去任何你想去的地方远程,赚一线城市的工资
2000 个不用出门 Social 的全球远程工作,帮助 V2EX 的小伙伴开启全新的工作方式。
Promoted by LinkedIn
alex2019
V2EX  ›  Linux

救救孩子吧, Windows10 下安装 Centos8 后,想尽办法,折腾一天,修复不了 Win10 引导。

  •  
  •   alex2019 · 2020-09-13 17:27:01 +08:00 · 5380 次点击
    这是一个创建于 742 天前的主题,其中的信息可能已经有所发展或是发生改变。

    昨天用 U 盘安装 Centos8.2,官网下载的系统( http://mirrors.aliyun.com/centos/8.2.2004/isos/x86_64/CentOS-8.2.2004-x86_64-boot.iso ),安装很顺利,但修复 Win10 引导这里死活不成功。

    用 grub2-mkconfig 根本找不到 Win10 启动项,但是在磁盘里又能看到 100M 左右的 Windows 的 EFI 分区。 然后尝试了百度+谷歌的各种 grub2 配置方案,比如 set root=(hd0,gpt1),chainloader /EFI/xxx 。 启动项都能找到 Win10,但就是启动不了。

    附带说明:

    1 执行命令 grub2-mkconfig -o /boot/grub2/grub.cfg 永远只有如下两句话: Generating grub configuration file ... done 我看别人都有 "Found Windos 10 on xxxx",我不管怎么折腾,都没得这句话。

    2 装完 centos 后,/boot/efi/EFI/boot/ 目录下只有 centos 文件夹,这好像不正常,你们是还有 /boot/efi/EFI/boot/Boot 和 /boot/efi/EFI/boot/Microsoft 文件夹对吧?

    参考教程: https://blog.csdn.net/qq_40058321/article/details/105743701?utm_medium=distribute.pc_relevant.none-task-blog-blogcommendfrommachinelearnpai2-4.add_param_iscf&depth_1-utm_source=distribute.pc_relevant.none-task-blog-blogcommendfrommachinelearnpai2-4.add_param_iscf

    就想知道我这到底是哪里出了问题??? 或者让我恢复 Windows10 吧,这系统我不要了~

    42 条回复    2020-09-20 17:12:56 +08:00
    Flash1
        1
    Flash1  
       2020-09-13 17:28:15 +08:00
    下个 PE 修复一下
    jy28520
        2
    jy28520  
       2020-09-13 17:33:44 +08:00
    折腾 Arch 的时候 wiki 看到这么一条 需要安装 os-prober 才能发现 windows 。原文链接如下
    https://wiki.archlinux.org/index.php/GRUB#MS_Windows
    whenov
        3
    whenov  
       2020-09-13 17:38:18 +08:00
    开机时进入 efi boot menu 有 windows 启动项吗?可以按 ESC 或 F12 之类的进入,不同电脑按键不同
    alex2019
        4
    alex2019  
    OP
       2020-09-13 17:42:17 +08:00
    @jy28520 刚刚试了,
    yum -y install os-prober

    grub2-mkconfig -o /boot/grub2/grub.cfg

    还是没反应,找不到 win10.
    alex2019
        5
    alex2019  
    OP
       2020-09-13 17:43:57 +08:00
    @whenov 我配置 grub.cfg 文件后有了。刚装完系统没有。
    @Flash1 centos 下能做 pe 吗? 不然就另外找台电脑了。
    sunmlight
        6
    sunmlight  
       2020-09-13 17:45:52 +08:00
    下载一个 PE 系统,里面工具包可修复 windows 开机启动项
    majunbo
        7
    majunbo  
       2020-09-13 17:55:46 +08:00
    重做呗,多大点事?
    alex2019
        8
    alex2019  
    OP
       2020-09-13 17:56:42 +08:00
    @majunbo 已经重做三遍了。每次结果都一样。
    whenov
        9
    whenov  
       2020-09-13 18:04:17 +08:00 via iPhone
    @alex2019 我说的是 efi boot menu,跟 grub 没关系
    7654
        10
    7654  
       2020-09-13 18:08:56 +08:00   ❤️ 1
    安装一个 The rEFInd Boot Manager
    让 rEFInd 管理启动项
    或者按三楼说的,按 BIOS 的启动快捷键,手动启动 Win 试试
    alex2019
        11
    alex2019  
    OP
       2020-09-13 18:12:57 +08:00
    @whenov 哦哦,不能看到。只有 2 个硬盘启动选项。
    sky96111
        12
    sky96111  
       2020-09-13 18:40:19 +08:00   ❤️ 1
    先确认下 EFI 分区有没有 win10 的引导文件,不用 GRUB 直接用 refind 也可以
    chust
        13
    chust  
       2020-09-13 18:50:28 +08:00 via iPhone
    该不会是安装 centos 时格式化 esp 分区了吧?
    JackieMe
        14
    JackieMe  
       2020-09-13 20:05:09 +08:00 via Android
    看下 /etc/grub.d/30_os-prober 有没有执行权限? EFI 分区内容没问题的话,正确挂载然后 os-prober 正常工作的话应该很简单啊。实在不行自己写 40_custom 吧,Google 一下写一个也很简单。
    vone
        15
    vone  
       2020-09-13 20:17:13 +08:00
    如果你是两个磁盘的话,有一种可能是你的 efi 分区本来就在 centos 安装的盘上。你装 centos 时就已经把引导分区格式化了。你现在看到的那个 efi 分区可能是 centos 创建的。
    giter
        16
    giter  
       2020-09-13 20:25:08 +08:00 via iPhone
    我记得 WEPE 有系统引导修复功能,当时我把 win10 的整个引导都删了,引导磁盘也删了,最后通过 PE 系统修复好了引导
    ljsh093
        17
    ljsh093  
       2020-09-13 20:29:01 +08:00 via iPhone
    不如跑虚拟机,还方便很多
    xyjincan
        18
    xyjincan  
       2020-09-13 22:59:48 +08:00 via Android
    开机按 f12 选系统也挺好
    seliote
        19
    seliote  
       2020-09-13 23:21:50 +08:00
    starcraft
        20
    starcraft  
       2020-09-13 23:34:46 +08:00 via iPhone   ❤️ 3
    uefi 只要 /Microsoft 没动,是永远不可能启动不了,还需要你说的什么所谓的修复的。哪怕你 grub 装一半退了,都能启动 win,要是 uefi 界面看不到 winbootmgr,U 盘随便装个什么系统的引导盘,shell 找 Microsoft 下 efi 肯定能启动。
    双系统能出问题,无非就是先装 win10 只给 100M ESP,Linux 又激进,各种新特性,类似 grub 这类启动器都去支持,再加上第一次装机的人,对 os boot 各种一知半解,乱改安装设置,其实这些人仅仅只是想要在启动界面多一个入口那么简单,而结果就是各种野 blog 复制粘贴,一顿操作,连个 install 命令都 auto 不下去。
    SiliusMo
        21
    SiliusMo  
       2020-09-13 23:58:56 +08:00
    efi 双系统要区分是一个硬盘一个系统还是一个硬盘两个系统.

    如果两个系统在不同的硬盘上,则有两个 efi 分区. linux 系统安装完成, 但引导还没安装时, 去 Windows 的盘里把 Microsoft 的文件夹复制过来再安装引导, 就能发现了. 开机启动顺序选择 linux 的那一块硬盘.

    如果两个系统安装在同一硬盘上则安装 linux 时不应该设置新的 efi 分区, 要选 Windows 帮你分割好的那一个. 换句话说要先安装 Windows.

    总的来说推荐第一种办法. 混在一起很容易出问题. 另外, windows 更新也可能会动启动引导顺序.
    kokutou
        22
    kokutou  
       2020-09-14 00:08:04 +08:00
    随便找个 pe

    bcdboot c:\windows /s h: /f UEFI

    c 为 pe 里 Windows 所在分区盘符, h 为 pe 里 efi 分区盘符.
    kokutou
        23
    kokutou  
       2020-09-14 00:08:56 +08:00
    如果你的分区表是 mbr...
    那去掉 /f 参数
    bcdboot c:\windows /s h:
    kokutou
        24
    kokutou  
       2020-09-14 00:09:49 +08:00
    2 个安全无广告 pe
    https://www.itsk.com/
    http://www.wepe.com.cn/

    或者你用 Windows 镜像启动,然后打开 cmd 也可以.
    Cu635
        25
    Cu635  
       2020-09-14 00:19:43 +08:00
    安装的 grub 是 grub-efi 这个么?
    centos 下我不熟悉软件包名字叫啥,在 debian 系软件包名字是 grub-efi,centos 下应该有类似的。献确定安装的是它
    laqow
        26
    laqow  
       2020-09-14 00:30:57 +08:00
    只用 windows 去引导 linux 就好了,grub 装 linux 自己的盘上,别用 grub 去引导 windows
    youla
        27
    youla  
       2020-09-14 01:52:49 +08:00   ❤️ 1
    折腾一天,连个 uefi 引导的问题都解决不了,你还不先多玩玩虚拟机吗?反正我之前装 windows 、linux 都是两个硬盘装的,一个盘各一个 efi 分区,进入系统后禁用另一个系统盘,后面发现 linux 的内核支持直接从 uefi 引导,索性连 grub 都不要了,有兴趣可以搜索 EFISTUB 看看。
    masker
        28
    masker  
       2020-09-14 02:32:51 +08:00 via Android
    2020 年还玩双系统吗?
    要玩之前也多找找资料,熟悉相关步骤,安装的时候选择哪个作为引导分区。

    同意楼上的
    Daming
        29
    Daming  
       2020-09-14 07:44:11 +08:00
    说句马后炮的话,没事不要折腾双系统,后来你会发现进 Linux 的时候寥寥无几。
    还不如搞虚拟机,你的需求 99.9%都能覆盖到。
    NoobX
        30
    NoobX  
       2020-09-14 08:05:07 +08:00
    理论上 EFI 分区在双系统应该有 Microsoft 文件夹( Windows Loader )和 centos ( GRUB 引导)两个文件夹,文件夹外还有个单独的 bootx64.efi 的文件(默认启动)。
    EFI 分区可以在 Linux 下用 root 权限挂载进行查看和观察,一般在磁盘的第一个分区(如 /etc/sda1 )。另外配合上 Linux 的 efibootmgr 工具,基本没有解决不了的引导问题。
    启动项能找到,却启动不了,反正我感觉你的安装流程破坏了正常引导,一般 Grub 的搜索,我是没有碰到过搜索不到的情况,除非手动在 /etc/default/grub 禁用了(默认是启用 OS probe 的)。首先需要能保证 BIOS 里选择 Windows 能引导,不然 Grub 没法自动搜索引导也正常不过了
    NoobX
        31
    NoobX  
       2020-09-14 08:11:37 +08:00
    另外给个主意,因为不知道你在哪一步破坏了引导,可以先用 live CD 进 Linux 或者用 Windows 下的工具,备份 EFI 分区的 Microsoft 文件夹。Linux 安装完后再放回去也是可以的
    SakuraOjosama
        32
    SakuraOjosama  
       2020-09-14 09:08:09 +08:00
    上次碰到这问题大概是启动类型被我改成了 legacy
    EdgarZhang
        33
    EdgarZhang  
       2020-09-14 09:28:09 +08:00
    重做吧,我记得 ubuntu 桌面版是专门对 Windows 双系统优化的。
    centos 是个 server 系统,这些程序员也许就没考虑过和其他系统并存。
    newmlp
        34
    newmlp  
       2020-09-14 09:31:04 +08:00
    你不会安装引导时选的整个硬盘吧?
    zzzmh
        35
    zzzmh  
       2020-09-14 09:32:50 +08:00
    讲道理我不懂这个,我遇到这个问题的解决方法是
    1. 先在 bios 启动里看有没有 windows 启动项 如果没有就用 U 盘进 PE 修复就有了。
    2. 有了以后从这里先进去 windows,然后装个 easy uefi,然后删掉 linux 的启动项,windows 排第一个
    3. 最后再用 dg 删掉硬盘上的 linux,如果有必要再重新安装一个或者换一个安全的版本重新安装一个
    Jerami
        36
    Jerami  
       2020-09-14 09:36:45 +08:00 via Android
    Dism++
    alex2019
        37
    alex2019  
    OP
       2020-09-14 14:33:52 +08:00
    [楼主本人统一回复]
    谢谢大家的热心回复,关于安装情况再补充说明下。
    1 EFI 双系统是装在一个硬盘里的,我电脑是有两个硬盘,但只有硬盘 1 是 SSD,想着在 SSD 里会快一些,所以就装在一个硬盘里。
    2 关于为什么没玩虚拟机。 好几年前用过虚拟机,用起来觉得很卡。所以这次就没考虑。现在综合大家意见来看,可能是因为当时笔记本电脑太渣,而不是虚拟机本身这个方案不好。后面我会重新考虑此方案的。毕竟确实之前没怎么玩过 linux 。
    PS: 今晚回去再试试用 pe 修复的方案。
    ChangHaoWei
        38
    ChangHaoWei  
       2020-09-14 22:39:00 +08:00
    PE 修复是没问题的。。如果 不是 UEFI,PE 修复了 windows 。。还得 找个 live cd 修复 linux 的引导。。。
    OPA
        39
    OPA  
       2020-09-15 10:59:59 +08:00
    开机后按 F12,可以看到 centos 启动项和 windows 启动项
    alex2019
        40
    alex2019  
    OP
       2020-09-16 23:32:30 +08:00
    [楼主后续反馈]
    晚上给 U 盘装了一个 PE,然后 U 盘启动,修复引导,显示“修复成功”,心里一喜。然后重启电脑,启动提示“error:../../grub-core/loader/i386/pc/chainloader.c:213:invalid signature”。
    已经在引导配置了加了“insmod ntfs”了。还是提示这个。
    这是啥呀???
    ungrown
        41
    ungrown  
       2020-09-17 20:07:48 +08:00
    我很久以前还在玩这些东西的时候(虽然玩的不太深),从来不给双系统各自自带的引导程序作为真引导。
    我习惯在磁盘开头弄个分区,装上 grub4dos,里面是自己写的菜单项,还会附带一些 PE 的镜像。
    菜单项里一条指向 Windows 系统的 bootmgr,另一条指向 Linux 的 grub2 。
    开机进 grub4dos 的菜单,从来不在 bootmgr 或者 grub2 里面选系统。
    alex2019
        42
    alex2019  
    OP
       2020-09-20 17:12:56 +08:00
    [磁铁终结]
    最后选择用 U 盘重装了 windows 系统,然后过程了也把 centos 删了。
    然后按 F11 可以看到 windows 系统了。
    ps: 注意设置 BIOS MODE 为 UEFI. 我本来是 UEFI/Legacy,一直启动不了 windows 系统,改成 UEFI 后顺利启动。
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   997 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 21:50 · PVG 05:50 · LAX 14:50 · JFK 17:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.