作者:电脑信息网日期:
返回目录:win10问题
重做系统就会将grub引导菜单给覆盖掉(强烈鄙视下霸道的微软),我可不想重做辛苦配置的ubuntu,于是做之前先百度了下grub修复方法,以防万一。
以下是主要提及的方法:
1.sudo -i(or sudo bash) //切换到root权限
2, fdisk -l //看下Ubuntu的分区在哪里 ,看起来似乎是下面那样的,(83)
Device Boot Start End Blocks Id System
/dev/sda1 * 1 2432 19535008+ c W95 FAT32 (LBA)
/dev/sda2 2433 19457 136753282 f W95 Ext'd (LBA)
/dev/sda5 2433 7296 39070048+ b W95 FAT32
/dev/sda6 7297 12395 40957686 7 HPFS/NTFS
/dev/sda7 12396 15435 24414062+ 83 Linux
/dev/sda8 15435 15739 2440192 82 Linux swap
/dev/sda9 15739 19163 27507712 83 Linux
3, mount /dev/sda9 /mnt //挂在原系统的根目录
4, grub-install --root-directory=/mnt/ /dev/sda
看到 Installation finished.No Error Reported. 就成功了
有了方法在手就放心大胆的重新安装win7了,做好win7,刻录U盘livecd,一切按部就班,重启后结果还是悲剧的grub命令行而不是什么熟悉的grub启动菜单!我晕,不知道是不e79fa5e98193e58685e5aeb9362是网上方法错误,我试了几次还是没能解决。没办法只好另想办法了...
我用livecd进入系统,找到ubuntu系统的引导文件grub.cfg,记下我系统主要的启动信息:
root='(hd0,7)'、linux /boot/vmlinuz-2.6.32-24-generic、initrd /boot/initrd.img-2.6.32-24-generic,
决定试试看在grub命令行下进行引导;
重启后在grub命令行下输入:
1.grub>root (hd0,6) //输入root (hd0,按tab可以查看linux所在分区
2.grub>kernel (hd0,6)/boot/vmlinuz-2.6.32-24-generic root=/dev/sda7
//文件名可按tab补全,sda7就是(hd0,6)
3.grub>initrd /boot/initrd.img-2.6.32-24-generic //按tab可补全
4.grub>boot
怀着忐忑的心情,终于看到grub在引导了,一会熟悉的ubuntu界面回来了!进入以后再更新下grub就可以啦;
1.打开终端,
2.sudo -i,
3.update-grub,
用diskgenius+U盘进DOS修复主引copy导记录
diskgenius有利用U盘制作DOS启动工具的选项,然后diskgenius会进入DOS状态,然后点知修改主引导记录选项~~很道简单~~自己弄弄就知道了~~
安装Linux后,默认就会把其它系统引导权交给Grub或LILO引导,目前使用Grub多重引导其较多,所以本文仅介绍删除和卸载Grub,有道是安装容易卸载难,e799bee5baa6e58685e5aeb9366或许某天Grub会自带一条指令可直接恢复MBR,随时一条指令即可恢复,可惜目前没有,只能手动想办法。恢复后自动转为默认的Windows引导。
一、启动进入Linux
[!本方法暂未测试通过!网上还有说类似dd if=/boot/boot.NNNN这样的命令,也无法找到类似boot.x的启动扇区自动备份文件,手动就不说了,少有人去主动备份这个扇区数据,仅在grub目录下发现有boot.img, cdboot.img, diskboot.img, g2hdr.img是512字节的启动文件,但似乎都不是备份文件,反到查看GRUB readme时,发现有个bootlace.com命令,--restore-mbr参数,暂还未测试]
只恢复MBR,不移除分区表:
# dd if=/dev/null of=/dev/sdX bs=446 count=1
注意,需用你自己真实的设备名称替换命令中的/dev/sdX,比如/dev/sda,如果你的硬盘不是SCSI或SATA而是IDE,则要该为类似/dev/hdX样子。另外,如果把语句中的446修改为512则会把第一扇区后面的分区表标识部分一并清理掉(特别提醒,不确定请不要修改该参数)。
如何查看设备名称?使用fdisk -l命令(后面的参数是小写L,要注意该命令需root权限执行)。
# fdisk -l
示例输出:
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
...
如果上文无法正常启动进入Linux,也不用去修了(除非Linux分区有数据需要备份),反正下面也要清理引导,那么我们尝试下文方法。
二、启动进入Windows
如果系统自带Windows系统,可以尝试在grub命令行下执行:
grub>rootnoverify (hd0,0)
grub>chainloader +1
grub>boot
依次意思为:
将第一块硬盘第一分区设为根分区,但不加载文件系统
然后将启动引导权交给当前分区的第一扇区
再接着就是启动,会自动进入Windows系统。
启动进入Windows后,采用下文方法,即可开始修复操作,如果无法启动进去Windows,再尝试下文启动盘WINPE启动盘、DOS工具箱等方式启动进入。
三、使用MS-DOS/Windows 9x启动盘
启动进入DOS命令行状态,请注意:一定要定位到将要修复的硬盘上,比如C:\,不要修复错硬盘对象。再执行命令:
fdisk /mbr
如果本条命令能执行,说明MBR已经恢复,GRUB引导部分已被覆盖。如果能启动进去Windows,继续阅读下文。
四、启动WindowsXP恢复环境
Windows XP系统可使用WinXP(WIN2K)启动安装盘启动,然后进入修复模式,执行命令:
# fixmbr
# exit
五、启动Windows 7恢复环境
如果是Vista/Windows 7系统,可在启动时按下F8进去Windows RE环境。
1、开机启动进入Win7恢复模式(Windows RE)
2、在系统恢复选项中,选择 命令行
3、执行命令
bootrec.exe /fixmbr
你会看到,操作成功提示。Grub将会被Win7启动加载器覆盖。
4、重启机子。
补充:
有说在Vista/Windows7的命令行下,以管理员身份执行:
bootsect /nt60 C: /mbr
命令也可修复MBR,未测试。