上周末我们停电了,这似乎对我们的一台 x86 Solaris 机器造成了一些非常严重的问题。它拒绝启动,并在启动时将我带到“grub>”提示符。我可以让它识别多重引导内核和模块,它会尝试开始启动,但它几乎立即挂起。这些是我输入的命令及其结果:
grub> 查找 /boot/grub/stage1 (hd1,0,a) (hd2,0,a) (hd4,0,a) grub> 根 (hd1,0,a) grub> 内核/platform/i86pc/multiboot 内核/unix [多引导精灵,<0x1000000:0x141eb:0x128f5>,shtab=0x1027258,entry=0x1000000] grub> 模块 /platform/i86pc/boot_archive [多重引导模块@0x1034000,0x5ed3800 字节] grub>启动
在我发出启动命令后,终端尝试清除,光标返回到左上角,并且我在第一行看到以下内容:
eric_138889-08 32 位
然后整个系统就挂起了。
自从我使用 Solaris 以来已经过去了很长时间,我不知道下一步该做什么来尝试启动这个野兽——有人可以给我一些建议,告诉我下一步该去哪里/尝试什么吗?
答案1
对于 ufs 文件系统
1)以单用户模式从 Solaris 介质(DVD)启动
2)将根文件系统挂载到/a,例如:
mount /dev/dsk/c0t0d0s0 /a
3)安装 grub 并更新启动盘上的 boot_archive 文件:
cd /a/boot/grub
installgrub -fm stage1 stage2 /dev/rdsk/c0t0d0s0
4)通过 bootadm 命令更新 boot_archive:
bootadm update-archive -fv -R /a
如果你使用 zfs 文件系统
1)以单用户模式从 Solaris 介质(DVD)启动
2)在 /a 挂载点上导入 ZFS 根池
zpool import -R /a rpool
3)挂载包含操作系统的数据集
zfs mount rpool/ROOT/sol10-u10
4)安装 grub 并更新启动盘上的 boot_archive 文件:
cd /a/boot/grub
installgrub -fm stage1 stage2 /dev/rdsk/c0t0d0s0
5)通过 bootadm 命令更新 boot_archive:
bootadm update-archive -fv -R /a
答案2
这是 Solaris x86/64 上的常见问题。由于非正常关机,看起来boot_archive
处于不一致状态。由于 PC 硬件没有 Sun/Oracle 的 OpenBoot,因此在软件中模拟。boot_archive
包含该信息。
boot_archive
可以找到修复说明这里。