zoukankan      html  css  js  c++  java
  • 重装windows后修复grub2引导

    使用安装版的windows重装windows时会改写mbr,造成grub丢失,可以用grub4dos引导进入ubuntu后修复grub或用livecd启动后修复grub。

    1、用grub4dos修复ubuntu

    先下载最新版的grub4dos,下载地址http://sourceforge.net/projects/grub4dos/files/GRUB4DOS/,如果是xp系统,把grub4dos压缩包内的grldr复制到C盘根目录下,修改boot.ini,在最后加上一行 c:\grldr=”grub4dos”,

    对 于vista/win7系统,把压缩包内的grldr.mbr和grldr复制到C盘根目录下,在C盘自己建立一个boot.ini文件,若有boot隐 藏分区的,先给boot分区分配盘符.
    再把grldr,grldr.mbr和boot.ini放在boot分区下,boot.ini内容如下:

    Win7使用软改激活的请不要使用此方法,否则会造成win7不能启动。

    然后在根目录新建一个menu.lst,内容为

    timeout 0
    default 0

    title grub2
    find –set-root /boot/grub/core.img

    kernel /boot/grub/core.img
    boot

    (有/boot分区的改为

    find –set-root /grub/core.img

    kernel /grub/core.img)

    重启后选择Grub4Dos会自动转入grub2,从grub2菜单项选择ubuntu启动后,在终端执行

    sudo grub-install /dev/sda

    将grub装入第一硬盘的mbr,如要装入第二硬盘的mbr把sda改为sdb,第三硬盘为sdc,类推。
    至于要把grub装到sda或sdb或sdc的mbr上,需根据自己情况确定,看看要设置哪一块硬盘为启动盘,就把grub装到那块硬盘的mbr上。

    2、用livecd修复grub

    用ubuntu9.10的livecd启动后,打开终端

    假如你的ubuntu的 / 分区是sda7,又假如 /boot分区是 sda6,用livecd启动,在终端下输入
    sudo -i
    mount /dev/sda7 /mnt
    mount /dev/sda6 /mnt/boot (如果没 /boot 单独分区这步跳过)
    grub-install –root-directory=/mnt /dev/sda

    和前面一样,要装入第二硬盘的把sda改为sdb。

    如果grub.cfg己丢失,或grub.cfg出现错误,需要重建的继续执行下面操作:

    mount –bind /proc /mnt/proc
    mount –bind /dev /mnt/dev
    mount –bind /sys /mnt/sys
    chroot /mnt update-grub
    umount /mnt/sys
    umount /mnt/dev
    umount /mnt/proc

    exit

    3、用带grub启动的光盘或U盘修复

    如果手上有grub启动的工具盘,用工具盘启动,在grub菜单上按c进入命令行状态,

    在grub>提示符下输入

    grub>find /boot/grub/core.img (有/boot分区的用find /grub/core.img)

    (hdx,y) (显示查找到的分区号)

    grub>root (hdx,y)

    grub>kernel /boot/grub/core.img (/boot分区的用 kernel /grub/core.img)

    grub>boot

    执行boot后能转入grub2菜单,启动ubuntu后,再在ubuntu终端下执行

    sudo grub-install /dev/sda (或sdb,sdc等)修复grub。
    如果ubuntu的启动分区使用ext4格式,要有支持ext4格式的grub才能修复。

    4、没安装引导器的 grub4dos引导ubuntu的方法
    按第一步的方法使用 boot.ini 建立grub4dos引导项,自己编写 menu.lst,内容如下

    timeout 3
    default 0

    title Ubuntu 9.10
    root (hdx,y) ——–> (hd0x,y) 为 /boot分区的分区号
    kernel /vmlinuz-xxx-generic root=/dev/sdxy ——->/dev/sdxy 为 / 分区的分区号

    initrd /initrd.img-xxx-generic

    没 /boot 分区的用
    timeout 3
    default 0

    title Ubuntu 9.10
    root (hdx,y)
    kernel /boot/vmlinuz-xxx-generic root=/dev/sdxy
    initrd /boot/initrd.img-xxx-generic

  • 相关阅读:
    HDU 1874 畅通工程续(dijkstra)
    HDU 2112 HDU Today (map函数,dijkstra最短路径)
    HDU 2680 Choose the best route(dijkstra)
    HDU 2066 一个人的旅行(最短路径,dijkstra)
    关于测评机,编译器,我有些话想说
    测评机的优化问题 时间控制
    CF Round410 D. Mike and distribution
    数字三角形2 (取模)
    CF Round410 C. Mike and gcd problem
    CF Round 423 D. High Load 星图(最优最简构建)
  • 原文地址:https://www.cnblogs.com/dolphi/p/2477095.html
Copyright © 2011-2022 走看看