现在的位置: 首页 > 综合 > 正文

通过liveCD进行ubuntu启动修复

2018年05月13日 ⁄ 综合 ⁄ 共 4483字 ⁄ 字号 评论关闭

 

转载: 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即可

抱歉!评论已关闭.