1 先使用ls命令,找到Ubuntu的安装在哪个分区:
在 grub>下输入以下命令:
ls
会罗列所有的磁盘分区信息,比方说:
(hd0,1),(hd0,5),(hd0,3),(hd0,2)
2 然后依次调用如下命令: X表示各个分区号码
如果/boot没有单独分区,用以下命令:
ls (hd0,X)/boot/grub
如果/boot单独分区,则用下列命令:
ls (hd0,X)/grub
正常情况下,会列出来几百个文件,很多文件的扩展名是mod和lst和img,还有一个文件是grubcfg。假设找到(hd0,5)时,显示了文件夹中的文件,则表示Linux安装在这个分区。
3,如果找到了正确的grub目录,则设法临时性将grub的两部分关联起来,方法如下:
以下是/boot没有单独分区的命令:
grub>set root=(hd0,5)
grub>set prefix=(hd0,5)/boot/grub
grub>insmod /boot/grub/normalmod
以下是/boot 单独分区的命令:(这几句有待验证)
grub>set root=(hd0,5)
grub>set prefix=(hd0,5)/grub
grub>insmod /grub/normalmod
然后调用如下命令,就可以显示出丢失的grub菜单了。
grub>normal
不过不要高兴,如果这时重启,问题依旧存在,我们需要进入Linux中,对grub进行修复。
启动起来,进入ubuntu之后,在终端执行:
sudo update-grub
sudo grub-install /dev/sda
(sda是你的硬盘号码,千万不要指定分区号码,例如sda1,sda5等都不对)
重启测试是否已经恢复了grub的启动菜单? 恭喜你恢复成功!
4,如果找不到正确的/grub目录,则尝试寻找是否有linux核心文件,则依次调用如下命令(X表示各个分区号码):
grub>下输入:
如果/boot没有单独分区:
ls (hd0,X)/boot
如果/boot单独分区,则:
ls (hd0,X)
找名字类似与vmlinuz-300-12-generic这样的文件,这是linux核心文件,如果找到,记下(hd0,X)中的X值。假设找到(hd0,5)时,显示了文件夹中的文件。
然后用live cd 或者 live usb启动,在live cd的ubuntu的终端中依次输入以下命令(sda5中的“5”必须改成上面记录下来数值)(这两句需要验证):
如果/boot没有单独分区:
sudo mount /dev/sda5 /mnt
sudo grub-install --boot-directory=/mnt/boot /dev/sda
如果/boot单独分区,则:
sudo mount /dev/sda5 /mnt
sudo grub-install --boot-directory=/mnt /dev/sda
然后重新启动即可。
(以上这两句命令也可以解决安装ubuntu时grub安装位置不对,没有将grub安装到/dev/sda,造成启动时不出现ubuntu启动项直接进入windows的问题,不过需要自行确定sda5中的“5”改成什么数字。)
5,如果连linux核心文件都没有,那么,彻底重新安装吧。你进入rescue是想做什么?
如果想进单用户可以使用:
1 在出现grub画面时,用上下键选中启动linux的项,按e键
2 再次用上下键选中你平时启动linux的那一项(类似于kernel /boot/vmlinuz-2418-14 ro root=LABEL=/),然后按e键
3 修改你现在见到的命令行,在其后加入“空格single”,结果如下:
kernel /boot/vmlinuz-2418-14 ro root=LABEL=/ single
4 回车返回,然后按b键启动,即可直接进入linux命令行
如果系统出现问题,可以通过光盘启动,进入维护模式进行 *** 作。如果有centos32位安装盘,直接启动安装centos到原来centos64位的位置(当然你要更改安装位置也可以)。
如果需要进入win制作安装盘,那么只能用PE启动盘或者其它带分区工具的启动盘,进入PE用分区软件重建MBR(也就是主引导程序)恢复win系统引导。
也可以在grub下输入命令:
grub>set root=(hd0,0)
grub>chainloader +1
grub>boot
(hd0,0)是win7所在分区,这里是第一硬盘第一分区,如果不是,自己替换为实际分区,如(hd0,1)是第二分区,(hd0,2)是第三分区。。。。以此类推。
这样就可以进入win,然后还是需要修复MBR或者制作好安装启动盘,否则下次重启还是会进入grub。+++++++++++++++
使用GRUB命令手动加载内核和启动
+++++++++++++++
能看见grub的界面,就好,下面我们试一下:
让我们输入 root 分区。在提示中输入 root,但不要按 Enter 键:
grub> root (
现在,按一次 Tab 键。如果系统中有多个硬盘,GRUB 将显示可能完成的列表,从 "hd0" 开始。如果只有一个硬盘,GRUB 将插入 "hd0,"。如果有多个硬盘,继续进行,在 ("hd2") 中输入名称并在名称后紧跟着输入逗号,但不要按 Enter 键。部分完成的 root 命令看起来如下:
grub> root (hd0,
现在,继续 *** 作,再按一次 Tab 键。GRUB 将显示特定硬盘上所有分区的列表,以及它们的文件系统类型。在我的系统中,按 Tab 键时得到以下列表:
grub> root (hd0, (tab)
Possible partitions are:
Partition num: 0, Filesystem type is ext2fs, partition type 0x83
Partition num: 1, Filesystem type unknown, partition type 0x82
Partition num: 2, Filesystem type unknown, partition type 0x7
Partition num: 4, Filesystem type is reiserfs, partition type 0x83
Partition num: 5, Filesystem type is reiserfs, partition type 0x83
如您所见,GRUB 的交互式硬盘和分区名称实现功能非常有条理。这些,只需要好好理解 GRUB 新奇的硬盘和分区命名语法,然后就可以继续 *** 作了。
装入内核
从软盘启动grub
制作启动盘后可以用软盘启动引导硬盘上的 *** 作系统 插入制作好的启动软盘,进入
BIOS设定软盘启动。软盘启动成功后就会进入grub的命令行模式
grub>
要启动一个 *** 作系统,首先指定引导哪个分区上的系统,例如要引导指第一个硬盘
上的第一个分区的 *** 作系统,先键入
grub>root (hd0,0)
接着如果要启动的是Windows系统,键入
grub>chainloader (hd0,0)+1
注意(hd0,0)要随着硬盘和分区的不同而改变数字。 如果要引导Linux或其他系统,
应键入
grub>kernel (hd0,0)/boot/vmlinuz root=/dev/hda1
注意hda1参数也要随着硬盘和分区的不同而改变,如从第二个硬盘的第一个分区引
导则用hdb1。
最后敲入boot就可以启动系统了。
在任何时候不能确定命令或者命令的参数都可以按Tab获得相关的帮助。用上下键可
以获得命令的历史记录。 其实这些命令就是menulst的启动描述,您也可以根据那些描
述来自己键入启动命令,最后敲入boot就可以引导系统了。
grub>cat (hd0,6)/boot/grub/grubconf (看参数)
一个非常基本的用于引导Red Hat Linux或Microsoft Windows 2000的GRUB菜单配置文件可能如下所示:
default=linux
timeout=10
color=green/black light-gray/blue
# section to load linux
title linux
root (hd0,1)
kernel /vmlinuz root=/dev/hda5
boot
# section to load Windows 2000
title windows
rootnoverify (hd0,0)
chainloader +1
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)