备份MBR(改)--双(多)系统启动者必知

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
头像
wingst
帖子: 35
注册时间: 2007-10-22 9:16

备份MBR(改)--双(多)系统启动者必知

#1

帖子 wingst » 2009-05-08 18:26

对于mbr丢失,许多初学者很困惑,但是这个东西又很重要。其实用dd命令备份mbr非常好用,只要备份一次,以后不管怎么重装,对多系统的启动都没有问题了。 备份mbr: dd if=/dev/hda of=/mnt/windows/linux.lnx bs=521count=1 意思为把硬盘的mbr(即前521个字节)导出存为linux.lnx文件,以后就一劳永逸了。 写了mbr: dd if=/mnt/windows/linux.lnx of=/dev/hda bs=521count=1 重新把mbr写回,双启动菜单又出来了。 mbr被覆盖的具体方法:把linux.lnx文件放在C:盘下 echo c:\"linux.lnx"=linux >>boot.ini 启动windowsXP时就出现双启动菜单,选择linux选项进入Linux操作系统。然后用dd命令重新写回mbr,至此全部搞定。
以上是在下在Google上搜索“备份MBR”时找到的一份内容,由于转载者过多,原作者一时难辩,原作者如看到,请通知在下在此加上大名~ :em01

不过我在自己的Ubuntu 9.04下进行操作时遇到了一些问题,自己对原文进行修正后备份成功,不过还没有恢复过,接下来自己准备在自己电脑XP和U双系统的基础上再装个CentOS,所以先备份一下,成功后会再进行更新。另外如果大家试验成功也可以通知我~

我对原文的修改如下:

进入终端后

1.备份mbr:

代码: 全选

sudo dd if=/dev/sda of=/linux.lnx bs=512 count=1
意思为把硬盘的mbr(即前521个字节)导出到/目录存为linux.lnx文件,以后就一劳永逸了。

注:
if=硬件设备名称
of=备份文件的储存路径及文件名
sda是指第一块SATA硬盘,如果你的硬盘是IDE接口的,请改为hda。
另外这里是把linux.lnx放在Linux的/目录,各位也可以放到自己觉得方便的地方,下同

2.写入mbr:

代码: 全选

sudo dd if=/linux.lnx of=/dev/sda bs=446 count=1
重新把mbr写回,双启动菜单又出来了。

3. mbr被覆盖时:
把linux.lnx文件放在C:盘下 ,

代码: 全选

echo c:\"linux.lnx"=linux >>boot.ini 
(这段代码我不知道是在DOS下还是在哪里运行的。。。请知道者指点)
启动windowsXP时就出现双启动菜单,选择linux选项进入Linux操作系统。然后用dd命令重新写回mbr(见操作2),至此全部搞定。
在下不是什么LINUX或是系统高手,只是自己在研究如何备份MBR以方便自己重装系统时不要丢失MBR里的GRUB引导记录,而网上直接搜出来的东西又有些不足和不解,故写出来分享,还请各位多多指教! :em11

非常谢谢 32idea 和 billbear 的指正,这已经修改了。另外3楼说的方法很好,我回去也尝试一下。 :em03
上次由 wingst 在 2009-05-08 19:46,总共编辑 3 次。
头像
32idea
帖子: 1251
注册时间: 2006-12-15 9:32
系统: linux

Re: 备份MBR(改)--双(多)系统启动者必知

#2

帖子 32idea » 2009-05-08 18:33

1、应该是512字节,而不是521。
2、恢复mbr时 参数应该是bs=446
头像
wingst
帖子: 35
注册时间: 2007-10-22 9:16

Re: 备份MBR(改)--双(多)系统启动者必知

#3

帖子 wingst » 2009-05-08 19:27

32idea 写了:1、应该是512字节,而不是521。
2、恢复mbr时 参数应该是bs=446
谢谢告知,能否再麻烦说下第2点是为什么呢?
是否是因为不需要恢复分区表?
billbear
帖子: 3681
注册时间: 2008-05-03 23:42

Re: 备份MBR(改)--双(多)系统启动者必知

#4

帖子 billbear » 2009-05-08 19:38

2 楼说的很对。
危险操作,楼主确认明白了 2 楼的 512 和 446 的含义再下手。
关于危险操作的似是而非的文章就更加危险。

备份 grub stage1 没有什么必要,stage1 是会随着你安装的不同情形而改变的。如果有改变发生,把它 dd 回来不会解决任何问题。 如果用了 512 字节更可能毁掉你的数据。当 grub stage1 被覆盖后,用 grub4dos 可以优美而安全地引导 linux,进而重写 stage1,如果你实在喜欢 gnu grub 的话。

备份 windows 的 mbr 同样没有必要,能写微软式 mbr 的工具多如牛毛,而 ubuntu 下,有现成的微软 mbr 的等效替代物,一句 sudo dd if=/usr/lib/syslinux/mbr.bin of=/dev/sda 就解决了。
头像
wingst
帖子: 35
注册时间: 2007-10-22 9:16

Re: 备份MBR(改)--双(多)系统启动者必知

#5

帖子 wingst » 2009-05-08 19:49

billbear 写了:2 楼说的很对。
危险操作,楼主确认明白了 2 楼的 512 和 446 的含义再下手。
关于危险操作的似是而非的文章就更加危险。

备份 grub stage1 没有什么必要,stage1 是会随着你安装的不同情形而改变的。如果有改变发生,把它 dd 回来不会解决任何问题。 如果用了 512 字节更可能毁掉你的数据。当 grub stage1 被覆盖后,用 grub4dos 可以优美而安全地引导 linux,进而重写 stage1,如果你实在喜欢 gnu grub 的话。

备份 windows 的 mbr 同样没有必要,能写微软式 mbr 的工具多如牛毛,而 ubuntu 下,有现成的微软 mbr 的等效替代物,一句 sudo dd if=/usr/lib/syslinux/mbr.bin of=/dev/sda 就解决了。
非常感谢指正~ :em01

grub4dos我一会就去找下如何使用,另外BB君的最后一句很赞,我回去试一下:)
billbear
帖子: 3681
注册时间: 2008-05-03 23:42

Re: 备份MBR(改)--双(多)系统启动者必知

#6

帖子 billbear » 2009-05-08 20:05

grub4dos我一会就去找下如何使用
viewtopic.php?f=139&t=34905
viewtopic.php?f=139&t=202027
billbear
帖子: 3681
注册时间: 2008-05-03 23:42

Re: 备份MBR(改)--双(多)系统启动者必知

#7

帖子 billbear » 2009-05-08 20:06

wingst 写了:
32idea 写了:1、应该是512字节,而不是521。
2、恢复mbr时 参数应该是bs=446
谢谢告知,能否再麻烦说下第2点是为什么呢?
是否是因为不需要恢复分区表?
是。如果分区的情形已经改变,恢复从前的分区表会毁掉所有数据。
头像
wingst
帖子: 35
注册时间: 2007-10-22 9:16

Re: 备份MBR(改)--双(多)系统启动者必知

#8

帖子 wingst » 2009-05-08 21:12

billbear 写了:
wingst 写了:
32idea 写了:1、应该是512字节,而不是521。
2、恢复mbr时 参数应该是bs=446
谢谢告知,能否再麻烦说下第2点是为什么呢?
是否是因为不需要恢复分区表?
是。如果分区的情形已经改变,恢复从前的分区表会毁掉所有数据。
非常感谢告知还有给我的教程~~ :em03
头像
opp
帖子: 622
注册时间: 2008-03-30 11:42
联系:

Re: 备份MBR(改)--双(多)系统启动者必知

#9

帖子 opp » 2009-05-09 11:04

如果像我一样是双系统,XP和ubuntu的话,还是直接备份就好了,万一MBR被改动了,也是修改boot.ini把那个linux.lnx放在C盘根目录下就可以了。
至于那个echo >>boot.ini命令,在XP下的cmd下运行就行了。其实也可以手更改,那条命令是把"echo"之后">>"之间的内容追加到boot.ini里面,千万别少了个">"啊,少了个右尖括号意思就大大不一样了。如果少一个">"的话,boot.ini里面只剩下c:\"linux.lnx"=linux这一句了。源于以前对windows的命令行和批处理小有研究。如果习惯了在文本里面改,也可以在命令行下(开始-运行-cmd),然后输入C:\boot.ini就可以了,系统会自动调用Notepad来打开它,手动增加就行了,建议这样操作,因为不熟悉命令有时候会出问题的。
Good Luck!
头像
maivel
帖子: 293
注册时间: 2009-05-01 7:35

Re: 备份MBR(改)--双(多)系统启动者必知

#10

帖子 maivel » 2009-11-16 17:22

mark
我这个人天生愚笨,体内装进一点点东西就会往外面冒,满地都是,一不小心就成了才华横溢。
tusheng
帖子: 741
注册时间: 2007-09-18 8:45

Re: 备份MBR(改)--双(多)系统启动者必知

#11

帖子 tusheng » 2009-11-16 18:28

echo c:\"linux.lnx"=linux >>boot.ini

在cmd下运行就可以,echo是显示字符.>是重定向新建文件,>>重定向附加到后面
4340835
帖子: 38
注册时间: 2010-01-05 22:04
来自: SD

Re: 备份MBR(改)--双(多)系统启动者必知

#12

帖子 4340835 » 2010-01-14 15:32

留个印...
turkeycq
帖子: 13
注册时间: 2010-01-15 10:19

Re: 备份MBR(改)--双(多)系统启动者必知

#13

帖子 turkeycq » 2010-01-15 23:37

高手如云啊。
turkeycq
帖子: 13
注册时间: 2010-01-15 10:19

Re: 备份MBR(改)--双(多)系统启动者必知

#14

帖子 turkeycq » 2010-01-15 23:40

高手如云啊。
zr1414
帖子: 3
注册时间: 2009-11-09 11:20

Re: 备份MBR(改)--双(多)系统启动者必知

#15

帖子 zr1414 » 2010-01-17 19:25

坐下来耐心学习
回复