先修好 Arch 再来修 Windows - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
tankb52
V2EX    Linux

先修好 Arch 再来修 Windows

  •  
  •   tankb52 2016-12-05 15:47:38 +08:00 5319 次点击
    这是一个创建于 3298 天前的主题,其中的信息可能已经有所发展或是发生改变。
    先是 Arch 滚挂一次,然后重装了,把 C 盘前面的那个系统保留分区挂载到 /boot 下面,装好 Archlinux 后发现 GRUB 识别不到原来的 Windows ,我看了下 /boot/目录,下面只有
    grub
    initramfs-linux-fallback.img
    initramfs-linux.img
    vmlinuz-linux
    这几个文件,我想可能是不小心把 /boot 给格式化了。

    不知道能不能救回来, Win7 好久没用了,重装一次 Windows 折腾太多,所以不知道能不能只修复 Grub 菜单?

    ______________________________
    刚刚手快按了一次回车,结果直接发布了,没想到还是可以编辑的,所以抱歉第一楼我自己抢了
    第 1 条附言    2016-12-05 16:22:37 +08:00
    补充一下 Linux 下装了 os-prober 也没有效果

    启动方式是 bios
    第 2 条附言    2016-12-05 22:18:54 +08:00

    贴我的硬盘图, sda1 是系统保留分区, sda2 、 sda3 是 Win7 的 C 盘(系统盘)和 D 盘; sda5 、 6 、 7 就是 Arch 的 /分区以及 Swap 和 Home 分区了。

    我刚刚直接编辑了 /boot/grub/grub.cfg 文件,加入了以下内容

    # This entry automatically added by the Debian installer for a non-linux OS
    # on /dev/sda1
    menuentry "Windows 7 (loader)" {
    insmod ntfs
    set root=(hd0,1)
    chainloader +1
    }
    ### END /etc/grub.d/30_otheros ###

    重启到 Grub 之后,选择这一项报以下错误:

    This is no bootable disk. Please insert a bootable floppy and press any key to try again.

    然后我按 E 编辑 Grub 的菜单项,将 set root=(hd0, 按 Tab 键补完,可选项是 msdos1\msdos2\msdos3 直至 msdos7 。
    选 msdos1 报错同上。
    选 msdos2 和 msdos3 ,报错是“ bootmgr is mission ”, msdos4-7 就不用试了。

    怎么办?是不是真的需要刻个 Windows 启动 U 盘或者 PE 什么的来弄了?

    @xss
    @Havee
    18 条回复    2016-12-06 12:12:52 +08:00
    tankb52
        1
    tankb52  
    OP
       2016-12-05 15:52:09 +08:00   1
    先是 Arch 滚挂一次,然后重装了,把 C 盘前面的那个分区挂载到 /boot 下面,装好 Archlinux 后发现 GRUB 识别不到原来的 Windows ,我看了下 /boot/目录,下面只有
    grub
    initramfs-linux-fallback.img
    initramfs-linux.img
    vmlinuz-linux
    这几个文件,我想可能是不小心把 /boot 给格式化了。

    不知道能不能救回来, Win7 好久没用了,重装一次 Windows 折腾太多,所以不知道能不能只修复 Grub 菜单?
    xss
        2
    xss  
       2016-12-05 16:14:33 +08:00   2
    重新写一下 grub/grub.cfg 文件.

    加上你的 windows 下所谓 C 盘的分区 entity 就行了.

    具体网上一搜一吨...关键词 'grub 启动 windows'
    pkking
        3
    pkking  
       2016-12-05 16:18:53 +08:00
    os-prober 装了没?
    kokutou
        4
    kokutou  
       2016-12-05 16:19:29 +08:00
    要 fat32 分区 y 。。。
    pe 自带 bcdboot 命令

    bcdboot x:\windows /s y:\ /f uefi/bios/all

    /f 与 /s 命令一起使用,指定目标系统分区
    的固件类型。<firmware> 的选项是 'UEFI'、
    'BIOS' 或 'ALL'。

    /s 指定一个可选的卷号参数,该参数用于指定
    要将启动环境文件复制到的目标系统
    分区。默认值为固件所标识的
    系统分区。
    Busy
        5
    Busy  
       2016-12-05 16:32:34 +08:00   1
    mbr 被重写了呗。
    grub 参数需要 parttool (hd0,msdosN) boot+,譬如

    menuentry "Microsoft Windows 8.1" {
    insmod chain
    set root=(hd0,msdos3)
    parttool (hd0,msdos3) boot+
    chainloader +1
    }
    Busy
        6
    Busy  
       2016-12-05 16:33:24 +08:00
    建议双系统都 UEFI 吧
    启动没这些麻烦
    tankb52
        7
    tankb52  
    OP
       2016-12-05 16:55:39 +08:00
    @Havee
    不重装系统的情况下可以改成 UEFI 吗?

    还有上面那个方法只写 GRUB 就可以了吗?不用向 /boot 分区拷入什么引导文件之类的?
    Busy
        8
    Busy  
       2016-12-05 17:26:23 +08:00   1
    1. 不重装,据我所知,貌似不行
    2. 不需要拷入说明引导文件,可能,你需要 winpe 里的 bcdboot 去复制下启动文件至 c 盘根目录
    譬如
    bcdboot c:\windows /s c:
    linuap
        9
    linuap  
       2016-12-05 18:10:23 +08:00
    os-prober 不好使的时候,试试安装一下 lsb_release 这个包,再运行 os-prober,实测有用
    tankb52
        10
    tankb52  
    OP
       2016-12-05 18:51:06 +08:00
    @linuap
    我是能识别 Linux ,识别不了 Windows ,这个也有用吗?
    4ever911
        11
    4ever911  
       2016-12-05 19:34:39 +08:00
    refind
    zhuangzhuang1988
        12
    zhuangzhuang1988  
       2016-12-05 21:26:59 +08:00
    瞎折腾 浪费时间。。
    jon
        13
    jon  
       2016-12-05 21:42:25 +08:00
    不是吹 arch 不会挂的?
    honmaple
        14
    honmaple  
       2016-12-05 22:56:43 +08:00
    arch 只挂过一次,只因为手贱降级了某个系统库,不过 live cd + chroot 修好了,后面就没挂过
    Sasasu
        15
    Sasasu  
       2016-12-05 23:39:13 +08:00 via Android
    你的 arch 应该能启动,/boot 里没有问题。
    windows 需要一个文件才能启动,从安装镜像里找 bootx64.efi 这个文件,把它按原样放到 esp 里,重新运行 grub-mkconfig 。
    另外你为何需要 windows :)
    fzinfz
        16
    fzinfz  
       2016-12-05 23:45:36 +08:00
    tankb52
        17
    tankb52  
    OP
       2016-12-06 11:00:25 +08:00
    @fzinfz
    那要做个 ubuntu 的启动盘了? Arch 下面好像没有这个 Boot-repair
    fzinfz
        18
    fzinfz  
       2016-12-06 12:12:52 +08:00 via iPad
    @tankb52 直接有 cd ,做启动盘或者 mount iso 找下有没可用的工具
    https://sourceforge.net/projects/boot-repair-cd/files/
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4125 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 01:02 PVG 09:02 LAX 17:02 JFK 20:02
    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