3.1;开机流程;--;The;boot;process;
所有;PC;系统开始开机流程都是藉由执行;ROM;(明确地说,就是;BIOS);中的程式,从开机磁碟机的第;0;磁区、第;0;磁柱载入可供开机的磁区 。开机磁碟机通常是第一台软碟机;(如;DOS;的;A槽;与;Linux;的;/dev/fd0) 。接著;BIOS;会尝试执行这个磁区 。在大部分可开机的;disks;上,第;0;磁区、第;0;磁柱包含以下两者之一:;
开机载入程式;(boot;loader;,如;LILO)的程式码,它会找出;kernel;所在位置,接著载入并执行它以启动开机程序 。;
一个作业系统;kernel;的开头;(start);,诸如;Linux; 。;
如果一个;Linux;kernel;已利用;raw-copied;的方式置入一张磁片内,那麽这张磁片的第一个磁区就是;Linux;kernel;本身的第一个磁区 。这个磁区将从开机设备载入;kernel;的剩馀部分以继续开机流程 。;
一旦;kernel;载入完毕,一些基本设备也完成初始化;(initialization); 。然後系统将尝试从某个设备载入以及挂上;(mount);root;filesystem; 。所谓的;root;filesystem;只是一个被挂上当作;``/"";目录的;filesystem; 。;kernel;必须被告知可从哪里找到此;root;filesystem;;如果;kernel;在那里找不到一个可载入的影像档;(image);,系统就会停止运作;(halt); 。;
在某些开机情况下;--;常常是从软碟片开机;--;root;filesystem;会被载入到;ramdisk;中,也就是被系统所存取的;RAM;,如同系统存取磁碟一般 。为何系统会载入到;ramdisk;的理由有二 。第一,;RAM;是几个比软碟片快的有序磁性体,所以系统在其上运作较快;;第二,;kernel;可以从软碟片载入一个;压缩的filesystem;并且在解压缩後放到;ramdisk;上,如此可让更多的档案储存在软碟片上 。;
一旦;root;filesystem;被载入并挂上,你会看到一行讯息像:;
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; 。;
推荐阅读
- Linux 指令篇:DOS相容指令--mdeltree
- Linux 指令篇:档案目录管理--cat
- Linux 指令篇:档案目录管理--cd
- Linux 指令篇:档案目录管理--chmod
- Linux 指令篇:档案目录管理--chown
- Linux 指令篇:档案目录管理--cp
- Linux 指令篇:档案目录管理--cut
- Linux 指令篇:档案目录管理--less
- Linux 指令篇:档案目录管理--ln
- Linux 指令篇:档案目录管理--locate
