通过liveCD进行ubuntu启动修复

转载 2011年01月09日 11:47:00

 

转载: http://www.360doc.com/content/09/1216/11/561415_11244612.shtml

通过liveCD进行ubuntu启动修复  

 

  在安装Windows和Linux多重系统的计算机上,经常会出现启动菜单丢失、系统无法引导等问题,因此学会如何使用一些工具对系统进行修复是非常有必要的。Ubuntu LiveCD虽然不是专门的系统修复工具,但在很多关键时候它却能让系统起死回生。
   一、修复Grub引导

     在安装了Ubuntu或者是Linux的计算机上重装Windows时,会将Grub从MBR(硬盘主引导记录)上清除而导致无法进入Ubuntu,这是 多系统用户经常会遇到的问题。修复Grub引导的方法有很多,例如通过Grub for DOS或是在Linux Rescue模式下进行修复,当然也可以通过Ubuntu LiveCD进行修复。

     将Ubuntu LiveCD放入光驱并启动计算机,进入工作界面。执行“Applications→Accessories→Terminal”,打开终端,输入并执行 “sudo -i”命令,切换到root终端模式,然后输入“grub”,回车执行,即会出现Grub命令提示。

     在Grub命令提示符下输入:“find /boot/grub/stage1”,此时,屏幕会返回类似“(hd0,2)”的字样,这是/boot所在的分区。根据显示的结果,再分别输入并执行如下命令:

     root (hd0,2)

     setup (hd0)

     注意:root后面有一个空格。以上指令首先定位Grub所需的/boot目录所在分区,然后将Grub的引导代码写入MBR(图1)。如果要想将 Grub写入根分区的话,则需要在逗号之后加上数字,如“(hd0,2)”。当修复成功时会显示“succeeded”字样,最后执行“quit”命令退 出Grub。取出Live CD,重新启动计算机即可。

执行上述指令修复Grub引导

图1 执行上述指令修复Grub引导

     二、MBR备份与恢复

     Ubuntu LiveCD不仅仅可以修复Grub,同时它也能够用来备份MBR并对其进行恢复。用LiveCD启动计算机,进入工作界面后,打开终端,输入如下命令备 份MBR包括分区表:“sudo dd if=/dev/hda of=/ bs=512 count=1”

     其中,“/dev/hda”是要备份的硬盘,hda表示硬盘安装在IDE第一主盘,如果安装在第二主盘则为“/dev/hdc”;“bs”是Block Size,即一次IO操作读写的字节数,若是仅仅备份主引导记录而不备份分区表的话,则改成“bs=446”;“count”参数表示处理多少个 Block;为备份文件的路径与文件名称,如“/media/floppy/boot.mbr”。

     当需要恢复时,则使用如下命令:“sudo dd if=/ of=/dev/hda bs=512 count=1”。

  三、拯救数据文件

     如果系统出现严重故障无法进入,但系统分区中还有一些重要的数据文件或配置需要备份出来,Ubuntu LiveCD也能够轻松地搞定。它能够自动找到计算机中的硬盘分区,兼容FAT32、NTFS、EXT2、EXT3等多种分区格式。借助它,我们可以很轻 松地在图形界面下将数据文件抢救到硬盘、U盘、软盘,甚至是光盘中。同样,如果是重要的系统文件丢失导致系统无法运行,而又有备份文件可供恢复的话,也能 够通过Ubuntu LiveCD进行恢复(图2)。

自带的文件修复

图2 自带的文件修复

     需要提醒读者的是,由于这是一个LiveCD的环境,在这里对用户帐户或文件系统的改动都是暂时性的,因此备份文件的时候请选择安全的分区,而不要将其备份在当前Ubuntu系统的任何文件夹下。

 

     小贴士:什么是LiveCD

     LiveCD通常是指那些可以从光盘上直接运行的操作系统。与常见的Linux套件发行版不同,Linux LiveCD不必安装,无需硬盘,只需将光盘插入光驱,并调整BIOS从光驱启动即可进入系统进行操作

 

 

 

==============

专门装了个Win2k,在这之前已经知道安装Win系统后会自动回定硬盘的MBR扇区造成不能通过GRUB引导Ubuntu。近几天一直都在玩,也就没去动它。今天总算收心回来工作,也就要修复GRUB好启动UBUNTU。
说过程也可能有点麻烦,但操作还是很简单。

要修复GRUB的第一件事就是想办法进入GRUB。

如果有Ubuntu的LiveCD很简单,用LiveCD启动电脑,然后进入终端直接运行grub就可以进入GRUB指令状态。

如果没有LiveCD那就只有用Win下面的GRUB工具了。比如GRUBforDOS或其它一键备份之类的工具,很多这类的工具都是用GRUB来管理启动菜单。我一直都有用一个叫矮人DOS工具箱的工具,所以也就用它来启动GRUB。

安装矮人DOS工具箱,启动电脑,进入DOS工具箱,这样就进入GRUB引导的菜单。按“P”输入密码工具箱的默认密码hahaha,再按“C”即可进入GRUB指令行。

用下面指令找到Ubuntu的安装位置,也就是哪个硬盘分区。

find/boot/grub/stage1

返回类似(hdx,y)这样的结果,x为硬盘,y为分区,x和y是从0开始计数。

(hd0,1)

这样的结果就是说明我的Ubuntu安装在第一块硬盘的第二个分区。

root(hd0,1)

这一行是指定Ubuntu安装在哪个硬盘哪个分区,也就是使用find找到的结果。

setup(hd0)

将GRUB引导安装在哪个硬盘。敲回车后它会自动找到以前的菜单,GRUB算是修复成功了。

reboot

熟识的Uuntu启动出来了。


进入Ubuntu系统桌面,在终端输入命令

红色 字体为输入的命令, 输入命令后按“ 回车 键确定, 蓝色 为输入命令显示的信息

sudo grub

    [ Minimal BASH-like line editing is supported.    For

          the    first    word,   TAB   lists   possible   command

          completions.   Anywhere else TAB lists the possible

          completions of a device/filename. ]

grub> find /boot/grub/stage1

(hd0,6)

grub> root (hd0,6)

grub> setup (hd0)

Checking if "/boot/grub/stage1" exists... yes

Checking if "/boot/grub/stage2" exists... yes

Checking if "/boot/grub/reiserfs_stage1_5" exists... yes

Running "embed /boot/grub/reiserfs_stage1_5 (hd0)"...   19 sectors are embedded

.

succeeded

Running "install /boot/grub/stage1 (hd0) (hd0)1+19 p (hd0,6)/boot/grub/stage2

/boot/grub/menu.lst"... succeeded

Done.

grub> quit

ubuntu@ubuntu:~$ sudo grub

Probing devices to guess BIOS drives. This may take a long time.

ubuntu@ubuntu:~$

恢复完毕, 重新启动。 一切完毕,就这么简单!!

 

 

 

Ubuntu开机启动菜单

ubuntu下修改开机启动 菜单的方法。首先进入终端 ,然后输入sudo gedit /boot/grub /menu.lst 。注意这里的扩展名是LST,而不是LIST。然后输入你的登录密码 ,最后会弹出一个文本编辑器。

这个文本里面有很多信息,其中由#字开头的都不要管他,因为这些只是注释信息,对于启动 没有作用。可以(一般)修改的参数如下:

default:后面的数字就是让你选择 哪一个操作系统 为默认进入的系统 ,从0开始数。0代表第一个操作系统

timeout:后面的数字表示启动 菜单停留的时间,单位秒。

关于安装 XP后启动 菜单消失的问题,直接用live光盘引导至linux下,然后进入终端,输入以下命令 sudo grub。

其中grub>为提示 符,提示 符后面的是所需输入的命令。在grub提示 符下,你只需输入三条命令就可以把开机启动 菜单给找回来。第一条 find /boot/grub/stage1,第二条 root (上一条的结果),第三条 setup(hd0)。

关于(hd0,8)的解释:hd0就是代表第一个硬盘 ,8代表硬盘 上的第9个分区


=======
由于在rescue模式下,只有少量的基本命令可用,必须通过一定的操作才能加载正常模块,然后进入正常模式。

rescue模式下可使用的命令有:set,ls,insmod,root,prefix(设置启动路径)

先假设grub2的核心文件在(hd0,8)分区,再来看看怎样从rescue模式进入从 (hd0,8)启动的正常模式(normal)。

在rescue模式下search命令不能用,对不清楚grub2文件处于哪个分区的,可以用ls命令查看,比如

ls (hd0,8)/ 查看(hd0,8)分区根目录,看看有没有boot文件夹

ls (hd0,8)/boot/ 查看(hd0,8)分区的/boot目录下文件

ls (hd0,8)/boot/grub/ 查看(hd0,8)分区/boot/grub目录下文件

通过文件查看,可以确定grub2核心文件处于哪个分区,接下来就可以进行从rescue到 normal的转变动作:

先 ls 看看分区,根据分区列表,猜下 / 分区的编号再 ls (hd0,x)/ 看分区目录下文件确定找到 / 分区,不对的话继续找。找到 / 分区的 (hd0,x) 继续

grub rescue>root=(hd0,x)

grub rescue>prefix=/boot/grub

grub rescue>set root=(hd0,x)

grub rescue>set prefix=(hd0,x)/boot/grub

grub rescue>insmod normal

rescue>normal -------->若出现启动菜单,按c进入命令行模式

rescue>linux /boot/vmlinuz-xxx-xxx root=/dev/sdax

rescue>initrd /boot/initrd.img-xxx-xxx

rescue>boot

内核版本号 -xxx-xxx可以按Tab键查看后再手动补全。
个人建议你重新安装Ubuntu10.04,然后连上网络,打开终端(Terminal)运行如下命令:sudo grub-update即可

VMware使用ubuntu livecd进行磁盘管理

最近帮朋友下一个dataset,由于官方给了一个挺好用的bash脚本,就想在linux虚拟机里下,就先扩充了虚拟磁盘空间,但下完了之后发现由于linux只分了一个分区,挂载时没办法管理分区,把我可怜的...

Ubuntu从硬盘启动安装LiveCD

  • 2009年01月14日 16:41
  • 4KB
  • 下载

Ubuntu Grub u盘 LiveCD修复方法

http://wenku.baidu.com/view/ef78e110fe4733687e21aac3.html

UltraISO制作u盘启动ubuntu LiveCD过程

  • 2012年05月20日 00:04
  • 620KB
  • 下载

ubuntu13.10grub引导应用livecd修复

某天手贱在利用windows的时候刷新了下系统mbr,然后重启傻眼发现grub引导没了,无法进入ubuntu系统,好在千辛万苦修复了回来,以下为修复过程:...

重装win7后修复grub(LiveCD修复)(win7,ubuntu10.10双系统)

http://forum.ubuntu.org.cn/viewtopic.php?t=297514 最开始是win7和ubuntu10.10双系统共存,grub启动。后来重装了win...

使用Ubuntu LiveCD安装grub

  • 2009年03月03日 08:57
  • 29KB
  • 下载

[oj维护日记]LiveCD版HUSTOJ迁移至Ubuntu 15.04试验

我们用于比赛和刷题的OJ是用LiveCD版的HUSTOJ搭建的,一开始用着觉得没啥问题,但是在后来的使用过程中发现了很多问题(比如说最头疼的就是gcc一升级就没法开机...),最后不得已决定之后将OJ...
  • yybird_
  • yybird_
  • 2015年05月22日 22:44
  • 1101
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:通过liveCD进行ubuntu启动修复
举报原因:
原因补充:

(最多只允许输入30个字)