zoukankan      html  css  js  c++  java
  • Ubuntu启动项恢复LiveCD启动

    说明:ubuntu grub系统引导错误主要出现在系统ubuntu更新错误和安装Windows系统之后。
    其表现为没有ubuntu引导项,只有其他系统的引导项。也就是不能启动ubuntu系统。

    所有命令均是在root权限下执行的!!!

    其实修复ubuntu系统也是很耗时的,风险也是有的,建议爱折腾的让人做一下,如果只为了数据,
    可以在其他系统下安装工具读取linux分区,或者用系统盘进入拿出数据。


    liveCD启动(安装光盘启动)
    在BIOS中设置光盘为首先启动设备。(一般是上电后按del键,屏幕上也有提示)
    然后插入启动盘开机就行
    在install界面可以直接观点对话框,个人感觉这个要比点击TRY UBUNTU 快。
    建议大家进入桌面修复而不是纯命令窗口,这样方便上网查资料,以及查看文件系统。

    2 .查找系统安装分区
    打开命令终端
    sudo -i %%获得最高权限
    fdisk -l %%(是小写L,不是1)找到自己的ubuntu安装分区格式为 /dev/sdaX
    X为数字,就是硬盘分区号,分区格式为ext3或ext4

    3 挂载系统
    mkdir /media/mnt %%mnt为用户自定义文件夹名字,/media是系统默认挂载点
    mount /dev/sdaX (空格)/media/mtn %%挂载原系统,就是刚才找到的,挂载之后会有一
    个硬盘标志出现在桌面上,能够点击进去的


    4 设置grub引导目录
    grub-install --root-directory=/media/mnt (空格) /dev/sdaX --recheck %%设置grub引导
    系统目录注意空格,成功后会有一个提示:No Error Reported


    5 设置启动项
    grub %%进入grub命令 使用quit可以退出如果没就安装,
    cd /media/mnt/home/your-computer-name %%进入你原来系统操作目录,因为大多数
    命令的起点在这级目录下,这时你可以按照以前的用法进行拨号上网(如果是命
    令行的话)。
    apt-get install grub %%安装grub命令
    update-grub %%更新grub下menu.lst文件,可以不执行。然后进入grub执行下面代码
    root (hd0,X-1) %%hd0指硬盘,X-1为数字,就是你的原系统安装所在分区号减
    1,这是由于ubuntu是从0开始计数的。
    setup (hd0) %%安装启动目录,至此grub修复完成


    6 还原系统的启动项
    还原ubuntu
    kernel /boot/grub/core.img %%加载核心
    kernel /boot/memmorytest86+.bin %%加载启动项,可以按tab键自动填充的,如果找
    不到,可以重开终端查看这个目录下的文件,同时加载
    一下vmlinux generic的系统项(这个才是真正的系统,
    文件名长,自己使用tab找吧)

    quit %%退出grub命令

    还原Windows
    这样弄了之后ubuntu就修复好了,但是你的Windows可能就没了,不过不
    用惊慌
    cd /media/mnt/boot/grub %%如果你的文件架构不一样,可能命令也不一样,总之就
    是进入 /grub 目录
    gedit menu.lst %%用文本编辑器打开启动项列表文件,在最后面写下面代码(文件里
    也有代码说明的)
    代码格式:(记住分行)

    title system_name %%自己定义就行,只要能分清
    root (hd0,x) %%x为系统启动分区减一后的值
    makeactive
    chainloader +1 %%代码结束

    reboot %%重启

    其实只要你够强大,完全可以不用kernel命令加载启动项,直接修改menu.lst文件就行,但是ubuntu的启动项设置参数很多,
    容易出错。然而修改启动项数目还是轻而易举的,只需要注释相关的代码就行。也就是说你可以把Windows启动项整没了,不
    让别人用你的Windows系统(开个玩笑,这个有点无聊,呵呵)

    7 进入系统
    重启后会自动引导grub的,注意屏幕上的文字,若有提示 ESC 就按一下(这个不按会默认进入ubuntu系统的,时间只有3秒)。
    如果按照上面做了话,就用不着写下面的代码了。
    若没有,则会提示进入grub命令的
    boot %%启动grub引导 若找不到启动项执行下面的代码会提示先要使用kernel装载启动项目录
    kernel /grub/core.img %%加载启动项列表,这里tab键无用,直接敲就行(如果有
    问题就用命令kernel /boot/grub/core.img)
    boot %%终于成功了又看到了熟悉的界面了选择系统进入

    说明:如果直接进入原系统有问题可进入recovery模式恢复,以后也可以升级的
    进入Windows是可能会提示找不到文件,不用管它,他自己会全硬盘寻找的。
    这样修复后的grub每次都得按 esc ,若不按则默认进入ubuntu,不像以前那样直接列出启动表,自由选择。

    最后祝大家好运!!!

    ---------------------------------------
    上面的方法不可以的话,就用Live CD吧~ 用ubuntu9.10的liveCD试用ubuntu启动后,打开终端 假如你的ubuntu的 / 分区是sda9,又假如 /boot分区是 sda6,在终端下输入 $sudo -i $mount /dev/sda7 /mnt $mount /dev/sda6 /mnt/boot (如果没 /boot 单独分区这步跳过) $grub-install --root-directory=/mnt/ /dev/sda 和前面一样,要装入第二硬盘的把sda改为sdb 修复后无法引导windows,可以用下面的方法解决: 进入ubuntu系统,打开终端,重建grub列表 $sudo update-grub 重新写入第一分区mbr $sudo grub-install /dev/sda 如果想修改启动顺序,可以修改/boot/grub目录下的grub.cfg文件 注意此文件不可写的,先执行一下命令 $sudo chmod +w /boot/grub/grub.cfg 然后再执行 $sudo gedit /boot/grub/grub.cfg 修改,类似于grub1的menu.lst修改Grub rescue模式 rescue模式下可使用的命令有:set,ls,insmod,root,prefix(设置启动路径) ls --列出分区 ls (hd0,8)/ --查看(hd0,8)分区根目录 找到grub目录,然后继续 grub rescue>root=(hd0,x) grub rescue>prefix=/boot/grub --(grub的目录) grub rescue>set root=(hd0,x) grub rescue>set prefix=(hd0,x)/boot/grub grub rescue>insmod normal grub>normal --------若出现启动菜单,按c进入命令行模式 grub>linux /boot/vmlinuz root=/dev/sdax grub>initrd /boot/initrd.img grub>boot 完成 进入系统后,更新GRUB或重装GRUB: 更新:sudo update-grub 重装:sudo grub-install /dev/xxx (这儿的xxx是sda或者sdb)

    -------------------------------
    mount 把安装Linux的boot分区挂载到/mnt目录下
    grub-install 安装grub,加上--root-directory参数,指向挂在到的目录,参数为硬盘第一分区所在位置
    grub-update更新grub列表


     

  • 相关阅读:
    mongodb教程
    redis高级知识
    memcached删除机制与大数据缓存问题
    nginx 运维基础
    mysql 集群与分区
    Memcached之缓存雪崩,缓存穿透,缓存预热,缓存算法
    git cz配置
    Angular零碎知识点-持续补充
    Vue学习笔记-组件
    Vue学习笔记-自定义指令生命周期函数
  • 原文地址:https://www.cnblogs.com/xly1208/p/2563081.html
Copyright © 2011-2022 走看看