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

先修好 Arch 再来修 Windows

  •  
  •   tankb52 · 2016-12-05 15:47:38 +08:00 · 4494 次点击
    这是一个创建于 2670 天前的主题,其中的信息可能已经有所发展或是发生改变。
    先是 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 指定一个可选的卷号参数,该参数用于指定
    要将启动环境文件复制到的目标系统
    分区。默认值为固件所标识的
    系统分区。
    Havee
        5
    Havee  
       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
    }
    Havee
        6
    Havee  
       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 分区拷入什么引导文件之类的?
    Havee
        8
    Havee  
       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   ·   我们的愿景   ·   实用小工具   ·   2434 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 16:07 · PVG 00:07 · LAX 09:07 · JFK 12:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.