原文连接: How to install Grub from a live Ubuntu cd.
thanks to catlett 一、安装到mbr(mbr=Master Boot Records,主引导记录区) 安装windows,或者不小心删除/改变了mbr,都有可能导致启动时看不到grub的引导菜单或者提示出错,下面是恢复的办法 (写于Ubuntu下,但应该可适用于其它系统) 使用Ubuntu livdCD启动,出现桌面后,打开一个终端,输入: sudo grub 然后在grub>下输入 grub>find /boot/grub/stage1 查找到grub的文件所处的位置,如果安装了多个linux系统,会全部显示出来,看好Ubuntu的/boot/grub/所在的位置,然后 grub>root (hd?,?) (hd?,?)中的问号用Ubuntu下的/boot/grub/位置取代,比如上面的find命令查找结果是hd(0,1),那这儿就是root(hd0,1) 使用下面的命令把grub安装到mbr上: grub>setup (hd0) 退出 grub>quit 解释一下: sudo grub得到grub命令解释器 find /boot/grub/stage1用来查找stage1文件的位置,它告诉我们grub的文件在哪儿.只有一小部分grub放在mbr上,其它部分位于你的boot文件夹.grub需要这些文件来安装. setup(hd0)把grub安装到hd0.当使用hd0参数而没有提供具体分区时,grub安装到mbr.grub认为hd0是第一个硬盘的mbr区标志. 二、安装到其它分区 thanks to 5-HT 如果想把grub安装到一个分区而不是mbr上,把setup (hd0)改成setup (hdx,y).X表示是第几块硬盘,Y是这块硬盘上的第几个分区.grub的计数方法是从0开始(如hd0,1表示第一块硬盘上的第2个分区) 三、如果grub找不到stage1文件或认不出硬盘 thanks to TOSK 1.使用livdCD加载/root分区 sudo mkdir /mnt/root sudo mount -t ext3 /dev/sda6 /mnt/root 2.在/mnt/root下加载proc与udev sudo mount -t proc none /mnt/root/proc sudo mount -o bind /dev /mnt/root/dev 这样grub能认出你的驱动器乐.下一步: sudo chroot /mnt/root /bin/bash 关于chroot,参见: 什么是chroot
linuxfocus.org/ChineseGB/January2002/article225.shtml" target=_blank>chroot linux中所有的服务 然后如果想安装grub到mbr上,见一,想安装到一个分区,见二 俺做过的事: (一)安装到mbr上,这台机器上有3个os,都能良好运行. (二)安装到一个分区,这台机器上也有3个os,俺安装到hd(2,0)上,结果刚开始时grub菜单没出现,电脑是默认从hd0上找启动器的,后来改成从hd2启动,就解决问题了. grub手册 GNU GRUB Manual 0.97 祝您好运! |