正在加载...

记一次双系统引导修复

2026/3/29 系统&软件 Linux 系统 654 字 2 分钟

前言

有一台十年前配置的电脑,之前装了Ubuntu24.04,原本是当服务器用的,偶尔开起来开mc服务器,最近因为种种原因,接了显示屏用,天天修那b依赖给我修火了,游戏还玩不了多少,于是想到了双系统

过程

Caution

我电脑是用的引导是Legacy,不是UEFI

按照网上的教程,要先分出一块空间给windows,根据dp和网上的教程,要先进入Ubuntu live进行分区

说实话这用pe直接分区应该也是可以的吧,但我还是用Ubuntu live分区了

我装的是win7,所以留了35G空间(原本是40G的,后面分了5G给pe)

从七七八八的网站上下载win7镜像还是坏的,找了十几个下载才好,给我气笑了

接着进入pe(直接镜像进去也可以),安装系统

安装完成后,就是引导问题,我原本想主引导Windows NT,dp说还需要grub4dos,了解了一下grub4dos,那还不如直接用grub4dos

dp给的是这样的:

default 0
timeout 5

title Windows 10
    root (hd0,0)
    chainloader /bootmgr

title Windows PE
    root (hd0,1)
    chainloader /bootmgr

title Linux
    root (hd0,4)
    kernel /boot/vmlinuz-xxx root=/dev/sda5 ro
    initrd /boot/initrd.img

title Command Line
    commandline

骗你的,根本用不了,得根据你实际情况来改

详细过程

进入pe,用bootice安装完成grub4dos后,重启进入grub4dos命令行模式
grub4dos支持tab键补全,你可以用root命令加tab键查看当前所有分区(当然你在分区软件里看分区序号也是可以的)

例如我这里:

  • root (hd0,0)是乌班图的分区
  • root (hd0,1)是win7的分区
  • root (hd0,2)是pe的分区

然后这样写

default 0 #默认选项
timeout 5 #等待5秒

title Ubuntu 24.04
    root (hd0,0)
    kernel /boot/vmlinuz-6.8.0-106-generic root=/dev/sda1 ro
    initrd /boot/initrd.img--6.8.0-106-generic
    boot #其实可有可无,我CLI测试时有用就顺便加上去了
    
title Windows 7
    root (hd0,1)
    chainloader /bootmgr
    boot
    
title EasyU
    root (hd0,2)
    chainloader /bootmgr
    boot
    
title Command Line
    commandline

Caution

kernel与initrd一定要根据你自己实际情况写,dp给我的是vmlinuzvmlinuz,而我实际可以像上面这样写

保存到已激活分区的根目录(例如我这里为C,win7的系统盘),文件名为meni.lst,接着你还需要grldrgrldr.mbr,但是dp给的链接没用了,幸好是国人做的,很快找到了下载链接,下载之后按照dp的教程,把里面的grldrgrldr.mbr复制到激活分区的根目录下,重启就完成了