请详细解释Solaris启动顺序

请详细解释Solaris启动顺序

对于 Linux 来说同样的问题在这里详细描述任何linux系统的启动过程但强调Solaris风格的东西。我正在准备一份详细的文档,详细介绍 Solaris 的引导顺序,从按下主机的开机按钮到出现登录提示符。

如果我们能够将此处的正确答案合并并整理成一个参考位置,那就太好了。请包含启动过程中任何值得注意的详细信息。一旦文档从所有要点完成,我也会在此处发布文档详细信息并更新问题中的链接。

请考虑所有可能的场景,例如从磁盘启动、从 USB 启动、在 rootfs(/) 位于网络上的无盘客户端上从网络启动。

答案1

我将其分为三个不同的阶段。固件,您可以在其中找到有关硬件的信息,内核,它获取固件提供的信息并使用它来查找和加载驱动程序、模块,最终进入操作系统阶段,其中包括引导您一路到达所需的所有步骤一套完全运行的操作系统和应用程序,能够提供指定的服务。

1)固件

  • x86/64:BIOS 加载、配置设备、选择启动设备 (net/disk/cd/usb)
  • SPARC:nvram 加载 OpenBoot、配置设备、选择启动设备 (net/disk/cd/usb)

2)内核

  • 如果引导介质是 net,则这里有一个初步步骤,用于 SPARC 上的 RARP/bootp 初始化,或者如果引导设备明确设置为使用 DHCP(例如:boot net:dhcp),则用于 SPARC 上的 DHCP。在 x86/64 方面,还有一个使用 DHCP 的初步步骤,该过程称为 PXE。 RARP/bootp 不是 PXE 的选项。 SPARC 和 x86_64 方法都用于配置 IP 地址,并检索有关网络上的内核和介质位置的信息。
  • 内核从启动介质(net/disk/cd/usb)加载

3)操作系统

  • 内核加载。在此阶段,基础知识已建立。引导内核使用引导存档来加载各个文件,直到有足够的信息来安装本地文件系统本身,然后由适当的驱动程序处理文件访问操作。
  • 当内核将操作系统引导到初始服务里程碑时,SMF 在这里发挥作用,这通常是多用户服务器里程碑,但如果您引导到单用户模式,则可能是单用户里程碑。操作系统初始化的这一部分加载所有服务必需的以便服务器正常运行。
  • 一旦实现了最初的里程碑,然后通过 SMF 设施启动附加(可选)服务svc.startd。您可以将其视为启动过程的“应用程序层”。这是 SSH、Apache、Weblogic、Sendmail 或您正在使用的任何其他应用程序启动的地方。这些是管理员认为需要的服务,而不是像上一个项目符号中那样内核需要的服务。

这可能不像您希望的那么详细,但它应该作为您入门的一个很好的基础。 Oracle 和其他公司有在线文档,其中非常详细地介绍了引导过程的各个部分。一个好的开始可能是第 7 章 基于 SPARC 和 x86 的引导,然后在 google 上快速搜索“solaris 引导顺序”即可找到可用于比较旧版 Solaris 与最新版本的引导顺序的文档。

答案2

以下是 x86 上启动顺序的描述:

  • 打开
  • BIOS 进行硬件自检/初始化
  • 此处允许用户中断进程以更改 BIOS 设置和/或选择要启动的设备
  • 如果启动设备是NET,请参阅Tim Kennedy的详细答案。
  • 如果引导设备是 DISK 或 USB,则加载 MBR 并运行在介质上找到的引导加载程序的第一阶段。这将始终是 GRUB 第一阶段,与可能使用替代引导加载程序的 Linux 不同。 GRUB 第 1 阶段知道第 2 阶段所在位置并运行它
  • 如果引导设备是 CD/DVD 介质,则直接从中加载 GRUB stage 2
  • 选择要使用的 menu.lst,特别是对于 ZFS,您可以在多个引导环境中拥有多个菜单。
  • 向用户提供一个启动菜单,允许在默认条目或替代条目之间进行选择。在此阶段,用户还可以编辑条目,例如添加或修改传递给内核的选项。那里还提供 CLI。
  • Grub 加载内核并被它替换
  • 从那里开始,无论架构如何(SPARC 或 x86),所发生的事情都是相同的,并且已经在 Tim 的回答中进行了解释。

请注意,Solaris 使用的 GRUB 版本已得到增强,可以支持 ZFS 引导。

相关内容