分页: 1 / 1

用windows的引导程序(osloader)引导linux &&重装win之后恢复linux

发表于 : 2008-05-09 20:37
gogogo
笔者pc:linux与winxp双系统

首先扫盲啦:
本文中命令都需要root权限.
请你先确定你系统的linux分区位置

代码: 全选

sudo df -h
输出的屏幕信息中请注意类似下列的语句
/dev/hda8 /
/dev/hda7 /boot
上面的意思是 第9块分区是根分区 ,第7块分区是引导分区.请记住上面的信息,下面会用到.
由于安装时是先xp后linux,所以用了grub来引导。
如果想用windows的osloader来引导系统。方法如下:

由于安装linux时,是把grub安装在MBR区域。
如果要实现osloade来引导则应该把osloader放在MBR,
第一步:把grub安装linux分区。
你需要把grub再安装在/boot分区。如果没有分/boot区,那么把grub安装在/ 区
sudo grub
root (hd0,7)
setup (hd0,6)
quit
注意这里hd0 表示linux在第一块硬盘。6表示我的boot分区(没有boot分区,就是/分区)的位置,从0开始数的。你需要填上你自己分区位置。注意啦,grub中对硬盘和分区的记数都是从0开始的,这里由于我的/ 分区是 /dev/hda8,所以这里填写的是 root (hd0,7), setup表示把grub安装在哪里.

第二步:利用dd命令把grub在硬盘的/boot分区上生成的引导扇区拷贝成一个文件

代码: 全选

sudo dd if=/dev/hda7 of=/bootsec.lnx bs=512 count=1
这里一定要根据你的/boot分区的位置来填写
如果没有单独分/boot分区,那么则根据/ 分区的位置来写
即:

代码: 全选

sudo dd if=/dev/hda8 of=/bootsec.lnx bs=512 count=1
请把if=/dev/hda8换成你自己系统的分区.这就会在/ 分区下生成一个名为bootsec.lnx。其实这个名字可以随便取啦。当然你也可以指定另一个目录。
请把bootsec.lnx拷贝到C盘根目录。

第三步:把osloader重新安装在MBR

方法有多种,比如可以使用windows的原装盘(就是那个会出现蓝色的安装界面的盘),注意不是ghost盘。安装windows系统,当然我们不想重装系统,我们仅仅需要windows的安装盘帮助我们把osloader写在mbr就可以了。
所以到了开始复制文件的时候,就可以终止安装了。这个时候,osloader就已经被安装在了MBR了。如果如果你担心丢失数据的话,最好开始这么做之前,首先ghost备份一下系统。

下面推荐随令一种方法:找一张工具盘,一般的ghost都可以啦,bios设置成光驱启动,选择dos工具那一项,在出现了dos的命令提示光标的时候,输入diskgen
这个时候就会出现图形界面,鼠标是可以用的。 工具->重写主引导记录(就是mbr啦),然后 硬盘-> 存盘退出。这样就把osloader写在了mbr处了。网上很多人说使用 fdisk /mbr .不过经笔者测试,并不一定可用。

第四步:编辑osloader的配置文件boot.ini,添加linux启动项

这时候开机,就应该不会看到grub了,而是osloader了。你不会看到linux项。不要担心。我们继续。进入windows,进C盘,在C盘根目录下有一个boot.ini文件。由于是系统文件,所以加了系统和隐藏,只读三个属性。所以如果你看不到,或许编辑后无法保存需要先把这些属性去掉。

工具 -> 文件夹选项 -> 查看

显示所有文件和文件夹,显示系统文件夹的内容 全选上
这个时候就会在C盘下发现boot.ini文件啦。右击它,
属性 ,去掉只读属性。这个时候就可以编辑它了

在boot.ini文件的最后一行加入

代码: 全选

C:/bootsec.lnx="ubuntu"
保存退出
说明:这是写的是bootsec.lnx,请和上面dd命令时,生成的文件名一致。linux就是要显示在osloader的内容。你可以换成自己想要的。然后再把我们更改的boot.ini文件系统属性加上。避免误操作。

ok,这样在下次启动的时候就会看到osloader中出现了ubuntu项了,选择它就可以进入你的linux系统了。
当然你也可以用类似的方法引导其他系统。

后记·1:很多人在重装windows之后发现进入不了linux了,
这个时候你正好可以利用osloader来引导系统啦。这个时候你必须使用一张linux的援救盘进入系统了.
那么请按本文第一步操作.只需把倒数第二个命令更换为setup hda,这样就把grub安装在了mbr了. 那么重启之后你就发现grub又回来了,一切跟你刚装好双系统时一样。呵呵,当然你也可以继续做下去,实现用osloader引导的小小成果。
这个时候还必须利用救援盘挂载 windows的分区,因为你已经无法启动linux并在其下执行dd命令,并把bootsec.lnx拷贝的C盘了.

代码: 全选

	dd if=/dev/hda7 of=/bootsec.lnx bs=512 count=1
	mkdir /mnt/C
	   如果你的C盘是fat分区
	mount -t vfat /dev/hda1  /mnt/C
	        如果你的C盘是ntfs分区的话上面的命令改成
	        mount -t ntfs /dev/hda1 /mnt/C
	cp /bootsec.lnx /mnt/C  
然后只做第四步。就可以实现osloader引导windwos啦

后记2:推荐精力旺盛的技术爱好者 ,做做LFS (即linux from scratch).这是一个伟大的项目,如果你不知道的话,请google一下。你会明白本文实在微不足道的。

Re: 用windows的引导程序(osloader)引导linux &&重装win之后恢复linux

发表于 : 2009-03-05 23:11
nuanfeng302
太好了,正在寻找,谢谢楼主!