您的位置:首页 > 运维架构 > Linux

重装windows后重新引导linux方法汇总

2011-11-21 11:46 323 查看
一下内容均来自互联网,仅做记录,以备后用:

方法一:

先准备好以下两个软件

grub for dos(http://sourceforge.net/project/showfiles.php?group_id=104188),选择GRUB4DOS那个就行,用这个来引导linux

explore2fs(http://www.chrysocome.net/explore2fs),这个是在windows下看linux文件用的

以上两个软件或者百度,google下,到处都有,很多,好啦,开始进入步骤

1:把下好的grub for dos 解压到C盘根目录下,取名为grub,把里面的grlrd复制到C盘根目录下

2:找到C盘下面的boot.ini文件(这是个隐藏文件),在里面最后一行加入c:/grldr="linux"

3:新建一个menu.lst文件,把它放在C盘根目录下,里面的内容,以我的为例,如下

title redhat 9.0

root (hd0,7)

kernel (hd0,7)/boot/vmlinuz-2.4.20-8 root=/dev/hda8

initrd (hd0,7)/boot/initrd-2.4.20-8.img

boot

总共5行,每行的意思如下

第一行:title redhat 9.0

这个title跟的值是指你要在菜单上出现用来显示linux的名称

第二行:root (hd0,7)

一般的写法为root(hdX,Y)

对于X,如果你只有一个硬盘且装在这个硬盘(好像是废话……)那么当然为0啦,否则的话以此类推为1,2,等

对于Y,这个会稍微复杂些。在windows下面,由一个主分区-C盘,和N个扩展分区-D,E,F……等组成。但在linux下,hd1~hd4代表主分区,对应于windows下就是C盘,hd5开始为扩展分区,如hd5对应D盘,hd6对应E盘等。grub的分区算法和linux类似,但有一个差别是,它是从0开始计数的,也就是说0~3对应C盘,4对应D盘,以此类推。我自己的电脑分区如下C盘-windows,D,E,F存储资料,剩下的空间给了linux,所以为root(hd0,7)

第三行:kernel (hd0,7)/boot/vmlinuz-2.4.20-8 root=/dev/hda8

把vmlinuz-2.4.20-8换成你对应的文件就行啦。用explre2fs这个软件就可以在windows下看linux分区的文件啦。要有点注意的是,root=/dev/hda8 中的hda8而不是hda7,因为此时是按照liuux的规则而不是grub的规则。

第四行:initrd (hd0,7)/boot/initrd-2.4.20-8.img

也只要把initrd-2.4.20-8.img 替换成你相应的文件就行啦

第五行:root

好像没什么好说吧……

方法二:

重新安装Grub

成功地从光盘启动后,就已经做好了修复Grub的准备。现在就开始着手重装这个引导程序,在Linux命令行下依次输入下面这些命令。

grub

find /boot/grub/stage1

root (hdx,y)

setup (hd0)

quit

表2.1逐条解释了这些命令代表的含义。

表2.1 用于重装Grub的命令详解

命 令
含 义
grub

启动光盘上的Grub程序。如果读者正在使用Ubuntu的话,那么应该使用sudo grub以root身份运行

find /boot/grub/stage1

查找硬盘上的Linux系统将/boot目录存放在哪个硬盘分区中。Grub在安装的时候需要读取这个目录中的相关配置文件

root (hdx,y)

指示Linux内核文件所在的硬盘分区(也就是/boot目录所在的分区),将这里的(hdx,y)替换为上一行中查找到的那个分区。注意这个括号中不能存在空格

setup (hd0)

在第一块硬盘上安装引导程序Grub

quit

退出Grub程序

至此,重新启动计算机就可以找回久违的双系统了。为了给读者一个更为直观的感受,图2.25显示了笔者在虚拟机上重装Grub的全过程。



图2.25 重装Grub

%提示:Grub对磁盘分区的表示方式和Linux有所不同。Grub并不区分IDE、SCSI抑或是SATA硬盘,所有的硬盘都被表示为“(hd#)”的形式,其中“#”是从0开始编号的。例如(hd0)表示第1块硬盘,(hd1)表示第2块硬盘……依此类推。对于任意一块硬盘(hd#),(hd#,0)、(hd#,1)、(hd#,2)、(hd#,3)依次表示它的4个主分区,而随后的(hd#,4)……则是逻辑分区。例如图2.24中的(hd0,1)表示第1块硬盘的第2个主分区。

方法三:

1.获得MBR备份文件

下载这个文件: http://www.linux-wiki.cn/archieve/grldr.zip ,解压、并把这个文件放在C盘根目录下。

如果在重装windows之前备份了MBR的话那就不用下载上述文件了,直接用你备份的MBR文件就可以了。

2.编辑boot.ini

在Windows中,"我的电脑"上点右键->属性->高级->启动和故障恢复右边的"设置"->上半部分的"编辑"出现用记事本打开的 boot.ini 文件。

(或者直接到C盘下找到这个文件,修改就行,一般是隐藏只读的)

在文件的末尾,加上一行

c:\grldr="Grub"

保存文件,退出,重新启动,就可以进入linux了。

3.恢复原来的启动菜单

实际上对于懒人而言,到此为止就可以了,不过如果你想恢复到重装windows之前的状态,那么可以恢复MBR。

**************************************************************

备份MBR

dd if=/dev/sda1 of=/root/mbr bs=512 count=1

恢复MBR

dd if=/root/mbr of=/dev/sda1 bs=512 count=1

恢复分区表

dd if=/root/mbr of=/dev/sda1 bs=512 skip=446 count=66

注:mbr大小512 所以bs=512 count=1

bs=512 skip=446 count=66 用来确定分区表在备份文件中的位置

方法四:

下面就是解决方案:

1.进入xp系统;

2.安装wingrup这个软件;

3.重新启动,选择grub;

4.按“c”键进入,命令行:

grub >

5.先看看grub的帮助

grub > help

6.使用find命令

grub > /boot/grub/stage1

结果:

grub > (hd0,2)

说明启动盘在第1个盘的第2个分区

7.好了,何以使用cat命令查看一些系统文件的内容

如:cat (hd0,2)/root/grub/menu.lst

8.使用root命令

grub > root (hd0,2)

9.修复grub

使用setup命令

grub > setup (hd0,2)

10.重启,好了

还是要感谢http://forum.ubuntu.org.cn/viewtopic.php?f=139&t=165782&start=0提供的方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: