免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1326 | 回复: 0
打印 上一主题 下一主题

修复Solaris Grub [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-02-16 22:57 |只看该作者 |倒序浏览
一不小心用diskgen把windows分区激活,之后再激活grub所在分区,grub便不能再引导了。网上找到一篇好文章,正好解了燃眉之急。



############
#问题原因: #
############
1、在同一台X86机器上即安装了Solaris 1/06, 又安装了Windows,并且使用 Solaris的Grub作为引导程序。
2、由于重装Windows,会重新覆盖 MBR,导致Grub不能使用,不能直接启动Solaris。
################
#问题解决方法:#
################
==需要Solaris X86 1/06的第一张CD光盘或者DVD光盘,就可以重新安装Grub==
步骤:
1)设置机器并从Solaris X86 1/06光盘启动
2)在出现Grub界面的时候,按“c”进入grub命令模式,如下界面:
  GNU GRUB version 0.95 (640K lower /1046043K upper memory)
  Solaris
  Solaris Serial Console ttya
  Solaris Serial Console ttyb (for lx50,v60 and v65x)

Use the arrow up and arrow down keys to select which entry is highlighted.
Press enter to boot the selected OS,'e'to edit the commands before booting, or 'c' for a command-line.
The highlighted entry will be booted automatically in 60 seconds.
3)在grub命令模式下,找到硬盘上已安装的Solaris系统(两种方法选择其一即可,在find的时候软驱会很响,不用担心大概10秒左右结果就输出了)
grub>find /platform/i86pc/multiboot
(hd0,1,a)            ----------系统输出内容
grub>find /boot/grub/menu.lst
(hd0,1,a)            ----------也可以用查找boot menu文件的方法得到同样的结果
4) 得到Solaris系统安装所在的硬盘编号后,将它设为root device
例子里的(hd0,1,a),指的是第1块硬盘第二个fdisk分区中的第一个slice。
grub>root (hd0,1,a)
Filesystem type is ufs, partition type 0xbf
5) 指定boot和archive文件,最后直接由grub界面启动Solaris X86系统
grub>kernel /platform/i86pc/multiboot
输出:[Multiboot-elf,,shtab=0x1027258,entry=0x1000000]
grub>module /platform/i86pc/boot_archive
输出:[Multiboot-module @ 0x1034000,0x45bd000 bytes]
grub>boot
此时系统直接从grub命令模式启动Solaris X86系统(有ufs挂接的系统启动)
如果记不住这些命令,我们可以借助menu.lst文件,其实这个文件是原grub用于启动的菜单,并含有这些启动命令,可供我们参考。一般这个文件的位置在/boot/grub/menu.lst,我们可以使用cat显示内容。
grub>cat /boot/grub/menu.lst
6) 进入Solaris后,使用root身份安装grub,最后重新启动系统
#/usr/sbin/installgrub -m /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c0d0s0
输出:Updating master boot sector destorys existing boot managers (if any)
      Continue (y/n)? y
      stage1 written to partition 1 sector 0 (abs 31455270)
      stage2 written to partition 1, 233 sectors starting at 50 (abs 31455320)
      stage1 written to master boot sector
      # init 6
其中c0d0s0是所安装的Solaris X86系统的根卷所在位置,该命令会将Grub文件安装到该硬盘的MBR,至此重新启动
7) 重新启动后系统即可将grub修复完成。

附件(/boot/grub/menu.lst有效语句):
# default menu entry to boot ======定义默认启动的系统序列号
default 2                ======以本例所示:Solaris 10 11/06 s10x_u3wos_10 X86为default 0
                                        Solaris failsafe为default 1
           Windows2003Server为default 2
        Diagnostic Partition为default 3
# menu timeout in second before default OS is booted ======定义系统等待选择时间
# set to -1 to wait for user input
timeout 10
#---------- ADDED BY BOOTADM - DO NOT EDIT ---------- ======定义SolarisX86系统正常启动参数
title Solaris 10 11/06 s10x_u3wos_10 X86
root (hd0,1,a)
kernel /platform/i86pc/multiboot
module /platform/i86pc/boot_archive
#---------------------END BOOTADM--------------------
#---------- ADDED BY BOOTADM - DO NOT EDIT ---------- ======定义SolarisX86系统故障启动参数
title Solaris failsafe
root (hd0,1,a)
kernel /boot/multiboot kernel/unix -s
module /boot/x86.miniroot-safe
#---------------------END BOOTADM--------------------
title Windows 2003 Server  ============定义Other OS启动参数
        rootnoverify (hd0,0)
        chainloader +1
title Diagnostic Partition  ============定义Other OS启动参数
        rootnoverify (hd0,2)
        chainloader +1


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/34639/showart_479369.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP