dd 命令,在 manual 里的定义是 convert and copy a file,就是转换和复制一个文件,可以用来备份和转换数据。
如果输入:dd if=/dev/zero of=/dev/hda bs=500MB count=1 将删除硬盘前500MB的数据,可见威力十分强大,这可以用来初始化磁盘,同样也可以用来备份关键的数据,例如MBR
输入dd if=/dev/hda of=/root/mbr.bak bs=446 count=1 即可备份MBR,(master boot record)
其中if代表输入文件,of代表输出文件,bs代表字节大小,count代表计数
备份完了后,可以删除下MBR,同样使用dd命令
dd if=/dev/zero of=/dev/hda bs=446 count=1
这里可要看仔细了,bs只能写446哦,要是写512,那就麻烦了,即使你前面也备份了第一块IDE硬盘前512的数据,也不要在这里写512,否则将很难修复,我可是拿VMware实验过了哦!因为使用光盘进行chroot修复的时候找不到后64字节(512-446)的分区表,自然就没办法chroot /mnt/sysimage挂载原先的文件系统了,不过我想应该有其他的办法吧,下次问问唐Sir,哈哈…
输入以上命令后,MBR将被清除,系统重新引导后将不能启动,这是肯定的啦!
接下来用光盘引导系统,在启动的时候输入linux rescue进入故障修复模式,选择下语言,键盘什么的可以不启用网络,在这过程中系统会提示原先的文件系统被挂载到了/mnt/sysimage目录下,要想使用必须用chroot命令挂载
chroot /mnt/sysimage
dd if=/root/mbr.bak of=/dev/hda bs=446 count=1
reboot
重启后就可以正常引导系统啦!这本是RH_133故障排除的内容,但既然讲到了dd命令,就纯粹先当这是一个扩展阅读吧!