输入: find /grub/stage1 ##如果boot不是独立分区,请改成/boot/grub/stage1
输入: root (hd0,x) ##输入find命令找到的UB启动内核所在的分区号
输入: setup (hd0) ##如果想恢复多系统引导就写(hd0,x)
输入: quit ##退出grub
修复grub2
首先要有带有GRUB2的Live CD/Live USB,比如 Ubuntu Karmic,打开终端
// 列出所有磁盘, 看清要把grub2修复在那个磁盘里~
sudo fdisk -l
//挂载根目录的分区
sudo mount /dev/sda1 /mnt
//这步只给把 /boot 另外挂载到与根目录不同分区的同学
sudo mount /dev/sda2 /mnt/boot
//挂载其他分区或设备 (不能漏掉,很重要)
sudo mount --bind /dev /mnt/dev
//改变根目录
sudo chroot /mnt
//如果当前是在硬盘上的linux内,而不是LiveCD,只要这下面两步就好了。
//运行update-grub更新配置文件(其实就是重建/boot/grub/grub.cfg)
update-grub
//安装GRUB2到指定硬盘的MBR
grub-install /dev/sda
//然后原文是退出root用户和umount的,不过,我们态度强硬一点,直接重启也可以了~
# on /dev/sda1
title Microsoft Windows XP Professional
rootnoverify (hd0,0)
savedefault
makeactive
chainloader +1
title commandline
savedefault --wait=2
commandline
title Reboot
savedefault --wait=2
reboot
root (hd0,0)
kernel /vmlinuz boot=casper iso-scan/filename=/ubuntu-9.10-desktop-i386.iso ro quiet splash locale=zh_CN.UTF-8
initrd /initrd.lz
boot
root (hd0,6)
kernel /vmlinuz-2.6.28-11-generic root=/dev/sda8 ro quiet splash
initrd /initrd.img-2.6.28-11-generic
quiet
title Ubuntu 9.04, kernel 2.6.28-11-generic (recovery mode)
root (hd0,6)
kernel /vmlinuz-2.6.28-11-generic root=/dev/sda8 ro single
initrd /initrd.img-2.6.28-11-generic
title Ubuntu 9.04, memtest86+
root (hd0,6)
kernel /memtest86+.bin
quiet
小芭芘 启动盘
Linux下有个程序可以修复MBR,先下载ms-sys ,然后执行:
ms-sys -mbr /dev/sda1
就行了,效果和DOS下的“fdisk /mbr”是一样的。
Linux下的chkdsk是NTFSFIX。
在Linux 备份或恢复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
硬盘的分区表是存放在硬盘的446字节开始的64个字节中,如果只想备份硬盘分区表的方法如下:
dd if=/dev/sda1 of=/root/mbr bs=1 skip=446 count=64
恢复分区表的方法如下:
dd if=/root/mbr of=/dev/sda1 bs=1 skip=446 count=64
出自:http://www.linuxsong.org/2009/02/linuxmbr.html
在这三种硬盘模式中,现在 LBA 模式使用最多。
LBA与C/H/S 之间的转换:
设NS为每磁道扇区数,NH为磁头数,C、H、S分别表示磁盘的柱面、磁头和扇区编号,LBA表示逻辑扇区号,div为整除计算,mod为求余计算,则:
LBA=NH×NS×C+NS×H+S-1;
C=(LBA div NS)div NH;
H=(LBA div NS)mod NH;
S=(LBA mod NS)+1
例如 LBA = 0 则 CHS = 0/0/1
从C/H/S到LBA的计算公式:
LBA=(C-CS)*PH*PS+(H-HS)*PS+(S-SS)
P-list:硬盘永久缺陷列表(又称工厂缺陷列表),是生产中产生的坏道列表;
坏道被加入P-list后,硬盘不会再读写该扇区,而是在将原读写该扇区的操作顺延到度写坏扇区的下一个扇区,该扇区以后的所有扇区的 LBA值都发生了改变,原来保留扇区的一个扇区成为了硬盘的LBAmax,所以坏道被加入P-list后,硬盘需要进行一次厂家低格。
G-list:
添加性缺陷列表(又称用户缺陷列表),是使用中产生的坏道列表。
坏道加入G-list后,当硬盘需要读坏道所在的扇区时,会被重定位到保留扇区中的一个扇区,硬盘工作区的其它扇区不会受影响,由于保留 扇区在硬盘的内道,读写速度慢,同时由于该扇区会导致硬盘的数据存储从物理上来说不连续了,当磁头读取该扇区的数据时需要移动较远的距离,代替坏扇区后, 该LBA的读写速度会慢一些,所以我们说坏道加入G-list后会影响硬盘的读写速度。
http://forum.51stor.net/read-htm-tid-19.html
MHDD可以检查和修复硬盘坏道;以及检查读写反应较慢的扇区,一般都是3ms和10ms以内的。