这种情况应该怎么把 window 加到 grub 启动项? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
lxy
V2EX    Linux

这种情况应该怎么把 window 加到 grub 启动项?

  •  
  •   lxy 2018-08-02 15:00:12 +08:00 3539 次点击
    这是一个创建于 2685 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前也是双系统,sdb 是 ubuntu,有一个 128M 的小分区,可能是 /boot,我用 dd 备份了出来。

    现在 sdb 重新分区,换了 arch。我以为安装 grub 的时候会自动检测到 win7,但是没有。

    现在无法进入 windows 了,应该怎么把 windows 加入 grub 的启动项呢?

    sda 是 win7,sda1 是 C 盘,sdb 是 arch。

    # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 238.5G 0 disk |-sda1 8:1 0 100G 0 part |-sda2 8:2 0 1K 0 part `-sda5 8:5 0 138.5G 0 part sdb 8:16 0 931.5G 0 disk |-sdb1 8:17 0 500M 0 part /boot |-sdb2 8:18 0 200G 0 part /home `-sdb3 8:19 0 731G 0 part / 
    # fdisk -l Disk /dev/sda: 238.5 GiB, 256060514304 bytes, 500118192 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x3cf86319 Device Boot Start End Sectors Size Id Type /dev/sda1 * 4096 209725496 209721401 100G 7 HPFS/NTFS/exFAT /dev/sda2 209725497 500118191 290392695 138.5G f W95 Ext'd (LBA) /dev/sda5 209725560 500118191 290392632 138.5G 7 HPFS/NTFS/exFAT Disk /dev/sdb: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: EE31D1C0-6E51-404A-90FC-E1C7AEB1EACC Device Start End Sectors Size Type /dev/sdb1 2048 1026047 1024000 500M EFI System /dev/sdb2 1026048 420456447 419430400 200G Linux filesystem /dev/sdb3 420456448 1953525134 1533068687 731G Linux filesystem 
    第 1 条附言    2018-08-03 19:43:58 +08:00
    折腾了很久,最后只能做一个比较妥协的方法。

    U 盘 PE 启动,在 sda1 (也就是 C 盘)重建 MBR。如果需要切换到 win7 系统,可以在启动时按 F12 选择从 sda 启动(主板提供的比较方便的功能),就直接绕过 GRUB 引导了。

    以后有时间再看看怎么加上。
    9 条回复    2018-08-05 01:55:00 +08:00
    tempdban
        1
    tempdban  
       2018-08-02 15:05:51 +08:00 via Android
    XP 是 htldr win10 就打扰了
    xaxb
        2
    xaxb  
       2018-08-02 15:37:20 +08:00
    arch 没用过,应该和 CentOS 同理

    1. 安装 ntfs 分区支持工具
    rpm -ivh ntfs-3g*.rpm

    2. 更新 grub
    grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

    然后 Windows 启动项就有了
    7654
        3
    7654  
       2018-08-02 15:50:11 +08:00
    UEFI 的启动都存在 ESP 分区下的 EFI 文件夹
    用 PE 在 sdb1 下用 bcdboot 重建
    tarekyoog
        4
    tarekyoog  
       2018-08-02 16:00:17 +08:00 via Android
    ```
    pacman -S ntfs-3g os-prober
    grub-mkconfig -o /boot/grub/grub.cfg
    ```
    Oo0
        5
    Oo0  
       2018-08-02 16:02:09 +08:00
    ls 正解
    lxy
        6
    lxy  
    OP
       2018-08-03 01:01:38 +08:00
    问题的复杂性在于之前是 win7+ubuntu 双系统,直接启动是 ubuntu 的 uefi 模式,如果要进入 win7 可以通过选项引导到 win7 的 legacy 启动。以上这些估计都放在 ubuntu 的 /boot 分区,现在 ubuntu 的整个硬盘都被覆盖了,win7 完好。通常的自动化工具都是针对 windows 系统已有启动引导分区的情况,现在就是没有这个分区,只有引导到 arch 的。需要想办法加载系统 C 盘上的 bootmgr。

    网上找的资料,win7 启动过程,估计在 bootmgr 之前的都没了。
    BIOS >MBR >DPT >PBR > Bootmgr >BCD >Winload.exe

    更悲剧的是,不知道为什么之前 dd 备份的 ubuntu /boot 分区其实是空文件,全是 0 填充。
    swordspoet
        7
    swordspoet  
       2018-08-04 10:49:34 +08:00 via iPhone
    @lxy 我之前也碰到过,解决的办法是弄一个 win 系统光盘,在安装过程中有一个“修复计算机”,点击修复一下就能把启动项添加进去,可以试试看。
    zzsx1937
        8
    zzsx1937  
       2018-08-04 12:11:01 +08:00 via Android
    128mb 不是 gpt 分表 windows 必的 MSR 分麽?分基本法引 windows 吧。
    pcmid
        9
    pcmid  
       2018-08-05 01:55:00 +08:00 via Android
    4 楼可解
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5530 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 44ms UTC 06:29 PVG 14:29 LAX 22:29 JFK 01:29
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86