Linuxsky
中国青基会
您当前的所在的位置是:主页>自由文档>系统管理> 文章页面

如何利用Grub命令来启动损坏的Linux系统

去论坛讨论 来源:赛迪网 作者: 发布时间:2007-12-24

  可能你的电脑因为某些原因损坏不能自动启动了。当然原因很多,可能的现象也很多。

  

  这里说一下这种情况下的处理方法,即:屏幕上提示 “grub> ”,但你的硬盘上数据没有丢失,各分区都是好的。

  这种情况是你的 grub 信息损坏了,但比较严重的是系统启动不了。

  当然,在正常启动情况下,屏幕上出现 grub 的启动项选择菜单时按 c 键也是可以进入 “grub>” 状态的。这时候我们需要用 grub 的命令来手工启动系统。

  只需要用到四个命令 boot 、 kernel 、 initrd 、 boot。

  但 grub 本身命令很多,比如查看文件内容的 cat ,你输入 help 会得到。

  

  首先,输入 “root (hd ”,然后按两次 TAB 键; /* 这会列出你电脑上可能的磁盘设备,硬盘为 hd0/hd1 或 sd0/sd1 等 */

  

  然后,选择你的安装 Linux 系统的硬盘,比如 hd0 ,输入 “root (hd0, ”再按两次 TAB 键; /* 这会列出你的第一块硬盘上的分区情况,你会知道哪个是 swap 交换分区, 0x82 ,哪个是 Linux 分区 0x83 */

  

  选择你认为可能的 /boot 目录所在的分区, 输入 “root (hd0, 1) ”回车;

  接着,输入 “cat /boot/vm ”, 按两次 TAB 键,如果出现一些 vm 开头的文件,比如 vmlinuz-2.6.15-26-386 说明这里是 /boot 所在的分区。

  

  删除上一次的输入,再输入 “cat /boot/initrd ”, 按两次 TAB 键,如果出现一些 initrd 开头的文件,比如 initrd.img-2.6.15-26-386 说明这个 /boot 所在的分区有 initrd ,即 ramdisk 镜像;

  

  删除上一次的输入,再输入 “cat /sbin/init ”, 按两次 TAB 键,如果出现一些 init 开头的文件,比如 /sbin/init 说明这个分区是 / 所在的分区;

  

  如果没有出现 /sbin/init 文件,说明 (hd0,1) 分区仅仅是 /boot 分区而不是 / 分区。重新输入 “root (hd0,N) ”命令,这里 N 是某个 Linux 分区,然后再试 “cat /sbin/init ”, 直到屏幕上出现 /sbin/init ,说明你找到了 / 分区,严格来说,应该是 /sbin 目录所在的分区;

  

  依次输入命令:

  root (hd0,1) /* 假设 /dev/hda2 是你的 /boot 所在的分区 */

  kernel /boot/vmlinuz-2.6.15-26-386 ro dev=/dev/hda3 /* 假设 /dev/hda3 是你的 / 所在的分区 */

  initrd /boot/initrd.img-2.6.15-26-386

  boot

  即可启动系统。

免费注册 | 网站地图 | RSS订阅 | 友情链接 | 论坛交流 | 用户搏客 | 返回顶端

站内资料部分由本人收集整理,所有文章版权均系原作者和出版者所有,如涉版权问题,恳请来信告知!

本站原创作品除特别声明外皆以创作共用协议发布