The Linux Bootdisk HOWTO 中译版(6) VFS: Mounted root (ext2 filesystem) readonly. 此时系统会在 root filesystem 上找到 init 程式 ( 在 /bin or /sbin) 并执行它。 init 读取它的组态设定档 (configuration file) /etc/inittab ,找出档中标明 sysinit 的一行,并执行被指名的script。这个 sysinit script 通常类似 /etc/rc 或 /etc/init.d/boot 这两个档。这个 script 是一组建立基本系统服务的 shell 指令,诸如: 对所有磁碟执行 fsck, 载入必备的核心模组 (modules), 启动 swapping, 进行网路初始化, 将指定在 fstab 内的磁碟挂上。 这个 script 常会启动其它各种不同的 scripts 执行模组的 (modular) 初始化。举例来说,在一般的 SysVinit 架构下, /etc/rc.d/ 这个目录包含一个复杂的子目录架构,其中的档案指出如何启动与关闭大部分的系统服务。然而,在一张 bootdisk 上,这样的 sysinit script 常常是非常简单的。 当 sysinit script 结束後,控制权回到 init 上,接著进入 预设的runlevel ,此预设的 runlevel 以 initdefault 这个关键字被指定在 inittab 内。此 runlevel line 通常指定一个像 getty 的程式,这个程式负责处理 console 与 ttys 之间的通讯。事实上,就是 getty 程式在萤幕上印出熟悉的 ``login:'' 提示。 getty 程式并转而呼叫 login 程式以处理 login 是否有效,并於之後建立 user sessions 。 3.2 磁碟类型 -- Disk types 如果你已了解基本的开机流程,那麽我们现在可以定义所涉及到之各种不同类型的磁碟。我们将磁碟分类成四种。本文与在此讨论所称之 ``磁碟 (disk)'' 除非有特别声明,否则都是指软碟片,虽然绝大部分的讨论也同样可应用在硬碟上。 boot 一张包含可被启动之 kernel 的磁片。这张磁片被用来启动 kernel ,接著这个 kernel 会载入在另一张磁片上的 root file system 。在 bootdisk 上的 kernel 通常必须被告知到哪去找它的 root filesystem 。 bootdisk 常会从另一张磁片载入一个 root filesystem ,但是相反地, bootdisk 也有可能被设定成载入硬碟的 root filesystem 。一般在测试新 kernel 时会这样做 (事实上, ``make zdisk'' 会自动地从 kernel 的原始码制造出这样的一张 bootdisk 。