通过GRUB命令行来启动Linux操作系统
自从改到.NET之后, PHP也忘记了, Linux也忘记了, SIGH, 前几天一个朋友的Linux的机器崩溃了, 可能是非正常退出, 然后进入不了系统, 让机房的技术支持fsck了一下之后, 应该没问题了, 谁知道他可能是直接按电源重启了, 然后就进入到了grub>的界面了,没办法了, 我去了一趟机房, 觉得从grub命令行启动一下应该没问题. 这里顺带说一下使用grub引导linux系统的过程.
对于/boot和/处于同一个硬盘分区
1) grub> cat (hd0, 6)/etc/fastab 这里用来查看分区表
这里可以通过tab键来列出当前系统的硬盘数和该硬盘下的分区列表, grub> cat (, tab出来当前硬盘, grub>cat (hd0, tab出来分区列表
LABEL=/ / ext3 defaults 1 1 /dev/devpts /dev/pts devpts gid=5,mode=620 0 0 /dev/shm /dev/shm tmpfs defaults 0 0 /dev/proc /proc proc defaults 0 0 /dev/sys /sys sysfs defaults 0 0 LABEL=SWAP-hda1 swap swap defaults 0 0 /dev/hdc /media/cdrecorder auto pamconsole,exec,noauto, managed 0 0
如果Linux系统/boot和/没有位于同一个分区,可能cat (hd[a-n],y) 查到的是类似下面的:
LABEL=/ / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2
2) root (hd[0-n,y) 指令来指定/boot所在的分区
grub> root (hd0,6)
3) kernel命令用来制定内核及所在分区
grub> kernel /boot/在这里按tab补齐,全列出/boot所有的文件; Possible files are: grub initrd-2.6.11-1.1369_FC4.img System.map-2.6.11-1.1369_FC4 config-2.6.11-1.1369_FC4 vmlinuz-2.6.11-1.1369_FC4 memtest86+-1.55.1 xen-syms xen.gz grub> kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7 注:这里输入[/dev/hd[a-z]X], 或者输入标签 ro root=LABEL=/ [Linux-bzImage, setup=0x1e00, size=0x18e473]
4) initrd 命令行来指定initrd文件
grub> initrd /boot/在这里按tab补齐 Possible files are: grub initrd-2.6.11-1.1369_FC4.img System.map-2.6.11-1.1369_FC4 config-2.6.11-1.1369_FC4 vmlinuz-2.6.11-1.1369_FC4 grubBAK memtest86+-1.55.1 xen-syms xen.gz grub> initrd /boot/initrd-2.6.11-1.1369_FC4.img 注;输入intrd文件名的全名; [Linux-initrd @ 0x2e1000, 0x10e685 bytes] grub> boot
如果/boot分区和linux的根分区/不在同一个分区,要把kernel和initrd中的/boot去掉.
这样完成启动了.
接下来修复GRUB
进入系统后, 进入grub命令行模式
grub> find /boot/grub/menu.lst grub> root (hd0, 6) // 这里是/boot所在的分区 grub> setup(hd0) // 把GRUB写到MBR上
Recent Comments