作者:stdio
修复grub大家应该都会,可我今天出现了误操作,浪费了不少时间,有点丢脸……还是来写篇日志纪念下这次误操作吧!(嘿嘿,是不是有点bt)
先来看一个典型的grub修复过程,重新安装grub到MBR:
$sudo grub
grub>find /boot/grub/stage1 /*返回boot分区的位置*/
hd0,X /*hd0指第一块硬盘,X是linux的主目录“/”所在分区号*/
grub>root (hd0,X)
grub>setup (hd0) /*安装grub到MBR*/
今天室友重装了XP,原先的grub引导没了,于是我进ubuntu的live cd,通过上述操作来修复grub,最后一步发生了误操作,命令打成了”setup (hd0,0)”,这样grub就被安装在了硬盘的第一个分区,即XP下的C盘,结果导致XP消失了…
我还傻傻的使用了fixmbr,自然是没用的。想了好久才想到应该用 fixboot C: 来修复C盘的分区引导。为了一劳永逸,我把grub移出了MBR,还是让XP的ntloader来做引导好了。
终端下输入:
$ sudo dd if=/dev/hda of=/media/linux,lnx bs=512 count=1 /*如果你的硬盘被认作sda,那么替代hda为sda*/
这个命令会在/media下产生一个名为linux.lnx的文件,把它拷贝到C盘(其他盘也可以,按自己的喜好^ ^),编辑C盘根目录boot.ini文件,加入C:\linux.lnx=Grub Menu,这样修改之后启动电脑时会多出一个grub menu的选项,选择它就可以看见linux的启动菜单了。然后用XP安装盘修复mbr,进入故障修复台,输入命令 fixmbr 就可以了。
现在,我已经把linux引导和XP的引导分开了,这样感觉舒服多了。
dd
1.作用
dd命令用来复制文件,并根据参数将数据转换和格式化。
2.格式
dd [options]
3.[opitions]主要参数
bs=字节:强迫 ibs=<字节>及obs=<字节>。
cbs=字节:每次转换指定的<字节>。
conv=关键字:根据以逗号分隔的关键字表示的方式来转换文件。
count=块数目:只复制指定<块数目>的输入数据。
ibs=字节:每次读取指定的<字节>。
if=文件:读取<文件>内容,而非标准输入的数据。
obs=字节:每次写入指定的<字节>。
of=文件:将数据写入<文件>,而不在标准输出显示。
seek=块数目:先略过以obs为单位的指定<块数目>的输出数据。
skip=块数目:先略过以ibs为单位的指定<块数目>的输入数据。

