📄 node68.html
字号:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--Converted with LaTeX2HTML 96.1-h (September 30, 1996) by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds -->
<HTML>
<HEAD>
<TITLE>The boot process in closer look</TITLE>
<META NAME="description" CONTENT="The boot process in closer look">
<META NAME="keywords" CONTENT="sag">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<LINK REL=STYLESHEET HREF="sag.css" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/sag.css">
</HEAD>
<BODY LANG="EN" >
<A NAME="tex2html1150" HREF="node69.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node69.html"><IMG WIDTH=37 HEIGHT=24 ALIGN=BOTTOM ALT="next" SRC="next_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/next_motif.gif"></A> <A NAME="tex2html1148" HREF="node66.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node66.html"><IMG WIDTH=26 HEIGHT=24 ALIGN=BOTTOM ALT="up" SRC="up_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/up_motif.gif"></A> <A NAME="tex2html1142" HREF="node67.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node67.html"><IMG WIDTH=63 HEIGHT=24 ALIGN=BOTTOM ALT="previous" SRC="previous_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/previous_motif.gif"></A> <A NAME="tex2html1152" HREF="node1.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node1.html"><IMG WIDTH=65 HEIGHT=24 ALIGN=BOTTOM ALT="contents" SRC="contents_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/contents_motif.gif"></A> <A NAME="tex2html1153" HREF="node108.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node108.html"><IMG WIDTH=43 HEIGHT=24 ALIGN=BOTTOM ALT="index" SRC="index_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/index_motif.gif"></A> <BR>
<B> Next:</B> <A NAME="tex2html1151" HREF="node69.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node69.html">More about shutdowns</A>
<B>Up:</B> <A NAME="tex2html1149" HREF="node66.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node66.html">Boots And Shutdowns</A>
<B> Previous:</B> <A NAME="tex2html1143" HREF="node67.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node67.html">An overview of boots </A>
<BR> <P>
<H1><A NAME="SECTION00720000000000000000">近观引导过程</A></H1>
<P>
可以从软盘或硬盘引导Linux. 安装和开始指南的安装一节
([<A HREF="node107.html#getting-started" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node107.html#getting-started">Wel</A>])
告诉你如何安装Linux, 并按你希望的方式引导.
<P>
当PC引导后, BIOS做一些测试保证一切正常,
<A NAME="tex2html29" HREF="footnode.html#2099" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/footnode.html#2099"><IMG ALIGN=BOTTOM ALT="gif" SRC="foot_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/foot_motif.gif"></A>然后开始真正的引导. 它选择一个磁盘(通常是第一个软驱, 如果有软盘的话, 否则
就是第一个硬盘, 如果安装了的话; 顺序是可设置的). 然后读第一个扇区, 这叫<b>引导扇</b>;
对于硬盘, 也叫<b>主引导记录</b>, 因为硬盘可以包含多个分区, 每个分区都有自己的引导扇.
<A NAME="1978"> </A>
<A NAME="1979"> </A>
<A NAME="1980"> </A>
<A NAME="1981"> </A>
<A NAME="2100"> </A>
<A NAME="2101"> </A>
<P>
引导扇包含一个小程序(小到可以存入一个扇区), 它的责任是从磁盘读入真正的操作系统并启动之.
从软盘启动Linux时, 引导扇包含的代码只读前数百个数据块(当然, 依赖于核心的大小)到预定的
内存位置. Linux引导软盘上, 没有文件系统, 核心存在连续的扇区中, 因为这样简化了引导过程.
当然, 使用LILO(LInux LOader)可以从文件系统引导.
<A NAME="1984"> </A>
<A NAME="2102"> </A>
<P>
从硬盘引导, 主引导记录的代码检查分区表(也在主引导记录扇区中), 确认活动分区(标记为可引导
的分区), 从该分区读引导扇区, 然后启动该引导扇区的代码. 该分区的引导扇区的代码做与软盘所
做的相同: 从该分区读入核心并启动. 但细节不同, 因为一般只给核心映象做一个单独的分区是没
什么用的, 所以分区引导扇中的代码不能只顺序地读磁盘, 它必须找到文件系统把它们放在哪些扇
区中. 有几个方法解决这个问题, 但最通常的方法是使用LILO. (关于如何做的细节与这里的讨论
无关; 更多的信息请看LILO文档, 它很全面)
<A NAME="1986"> </A>
<A NAME="2103"> </A>
<A NAME="1988"> </A>
<A NAME="1989"> </A>
<A NAME="1990"> </A>
<P>
用LILO引导时, 它读入并引导缺省核心. 也可以设置LILO, 使之能引导若干个核心之一, 甚至其他
操作系统, 也可以在引导时让用户选择引导哪个核心或操作系统. LILO可以设置为如果有人在引导时按住
<TT>alt</TT>, <TT>shift</TT>, or <TT>ctrl</TT>键
(LILO启动时), LILO将不立即引导缺省的而问用户引导哪个. LILO可以设置为带一个timeout选项
并询问, 当超时时, 就引导缺省核心.
<P>
<b>META: </b>除了LILO还有其他的引导载入程序, 如loadlin, 它们的信息将在下一版本中给出.
<P>
从软盘和硬盘启动各有优势, 但通常从硬盘启动更好, 因为这避免了关于软盘的争论.
而且快. 然而, 安装相同从硬盘启动可能有更多的麻烦, 因此很多人先用软盘引导, 然后当相同工作
很好后, 再安装LILO从硬盘引导.
<P>
Linux核心被读入内存后, 才真正启动了, 概述如下:
<P>
<UL>
<LI>
<P>
Linux核心是被压缩安装的, 所以它首先得解压自己. 核心映象开头包括一个解压的小程序.
<A NAME="1995"> </A>
<A NAME="1996"> </A>
<LI>
<P>
如果你有Linux可识别的super-VGA卡, 且支持一些特殊的文本模式(如100列40行), Linux会问你要
用哪个模式. 编译核心时, 可能预定了一个视频模式, 就不会问了. 这也可以用LILO或
<tt>rdev</tt><A NAME="2121"> </A>完成.
<A NAME="1998"> </A>
<A NAME="1999"> </A>
<A NAME="2000"> </A>
<A NAME="2001"> </A>
<LI>
<P>
然后, 核心检查还有什么其他硬件(硬盘, 软盘, 网卡...), 并配置适当的设备驱动; 同时, 输出
查找结果的信息. 例如, 我引导时, 得到类似如下信息:
<A NAME="2002"> </A>
<A NAME="2003"> </A>
<A NAME="2004"> </A>
<A NAME="2005"> </A>
<BLOCKQUOTE> <PRE>LILO boot:
Loading linux.
Console: colour EGA+ 80x25, 8 virtual consoles
Serial driver version 3.94 with no serial options enabled
tty00 at 0x03f8 (irq = 4) is a 16450
tty01 at 0x02f8 (irq = 3) is a 16450
lp_init: lp1 exists (0), using polling driver
Memory: 7332k/8192k available (300k kernel code, 384k reserved, 176k data)
Floppy drive(s): fd0 is 1.44M, fd1 is 1.2M
Loopback device init
Warning WD8013 board not found at i/o = 280.
Math coprocessor using irq13 error reporting.
Partition check:
hda: hda1 hda2 hda3
VFS: Mounted root (ext filesystem).
Linux version 0.99.pl9-1 (root@haven) 05/01/93 14:12:20</PRE></BLOCKQUOTE>
精确的文本在不同系统上不同, 依赖硬件, Linux版本, 及其配置.
<LI>
<P>
然后核心试图mount根文件系统. 位置可在编译时设置, 或在任何时候使用
<tt>rdev</tt><A NAME="2123"> </A>或LILO. 文件系统类型自动检测. 如果根文件系统mount
失败, 例如因为你忘了在核心中包含相关的文件系统驱动, 核心将失败, 系统停止(此时没什么可
做了).
<A NAME="2009"> </A>
<A NAME="2010"> </A>
<A NAME="2011"> </A>
<A NAME="2012"> </A>
<A NAME="2013"> </A>
<A NAME="2014"> </A>
<P>
根文件系统通常被只读mount(这可用与位置相同的方法). 这可使文件系统在mount上时检查; 检查
一个可读写的已mount的文件系统可不是个好主意.
<A NAME="2015"> </A>
<A NAME="2016"> </A>
<A NAME="2017"> </A>
<LI>
<P>
然后, 核心在后台启动程序
<tt>init</tt><A NAME="2125"> </A>
(位于<tt>/sbin/init</tt><A NAME="2127"> </A>)
(它的进程号是1).
<tt>init</tt><A NAME="2129"> </A>做许多启动工作. 确切的事依赖于设置;
参见<A HREF="#chinit"><IMG ALIGN=BOTTOM ALT="gif" SRC="cross_ref_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/cross_ref_motif.gif"></A>章了
解更多信息. 它至少要启动一些必要的后台守候程序.
<A NAME="2022"> </A>
<LI>
<P>
<tt>init</tt><A NAME="2131"> </A>然后切换到多用户模式
并启动<tt>getty</tt><A NAME="2133"> </A>,提供虚拟控制台和串行线.
<tt>getty</tt><A NAME="2135"> </A>是一个让用户通过虚拟控制台和串行终端登录的程序.
<tt>init</tt><A NAME="2137"> </A>还可能启动一些其他程序, 基于设置.
<A NAME="2027"> </A>
<A NAME="2028"> </A>
<A NAME="2029"> </A>
<A NAME="2030"> </A>
<LI>
<P>
至此, 引导完成, 系统启动并正常运行.
<P>
</UL><HR><A NAME="tex2html1150" HREF="node69.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node69.html"><IMG WIDTH=37 HEIGHT=24 ALIGN=BOTTOM ALT="next" SRC="next_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/next_motif.gif"></A> <A NAME="tex2html1148" HREF="node66.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node66.html"><IMG WIDTH=26 HEIGHT=24 ALIGN=BOTTOM ALT="up" SRC="up_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/up_motif.gif"></A> <A NAME="tex2html1142" HREF="node67.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node67.html"><IMG WIDTH=63 HEIGHT=24 ALIGN=BOTTOM ALT="previous" SRC="previous_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/previous_motif.gif"></A> <A NAME="tex2html1152" HREF="node1.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node1.html"><IMG WIDTH=65 HEIGHT=24 ALIGN=BOTTOM ALT="contents" SRC="contents_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/contents_motif.gif"></A> <A NAME="tex2html1153" HREF="node108.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node108.html"><IMG WIDTH=43 HEIGHT=24 ALIGN=BOTTOM ALT="index" SRC="index_motif.gif" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/index_motif.gif"></A> <BR>
<B> Next:</B> <A NAME="tex2html1151" HREF="node69.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node69.html">More about shutdowns</A>
<B>Up:</B> <A NAME="tex2html1149" HREF="node66.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node66.html">Boots And Shutdowns</A>
<B> Previous:</B> <A NAME="tex2html1143" HREF="node67.html" tppabs="http://linux.ccpi.gov.cn/Linux/linuxadmin/node67.html">An overview of boots </A>
<P><ADDRESS>
<I>Lars Wirzenius <BR>
Sun Jun 29 13:31:22 EEST 1997</I>
</ADDRESS>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -