Linux的系统启动分为几个阶段,由于运行中的系统分为用户空间层面和内核空间层面,所以一个完整的系统启动也是先启动内核文件,然后在启动用户层面的各种应用程序。Linux系统的设计属于单内核设计,但是各功能模块却支持动态的装载和卸载,极大的压缩了内核的体积,让内核的启动也更加快捷和迅速。
过程简述:
1.POST(加电自检) :主要负责检测系统外围关键设备(如:CPU、内存、显卡、I/O、键盘鼠标等)是否正常。
2.boot sequence(选择启动设备) :按次序查找各引导设备,第一个有引导程序的设备即为本次启动要用到的设备;
上述两个功能都由BIOS来完成,BIOS(Basic Input / Output System),又称基本输入输出系统,是一个固化在ROM中的软件,是 *** 作系统输入输出管理系统的一部分。
3.bootloader(引导加载器):
Linux下的引导加载器有grub leancy和grub2两种,Cenos6中使用的是前者。
MBR(主引导记录):
MBR的共由512字节组成,前446字节存放的即是bootloader。所以在选定启动设备后,收件是读取MBR中的bootloader,打开grub菜单。
grub:
功能:提供一个菜单,允许用户选择要启动的系统或不同的内核版本; 把用户选定的内核装载到RAM中的特定空间中,解压、展开,而后把系统控制权移交给内核;
gurb的实现共有3个阶段:
1st stage:位于MBR的BootLoader中,用来加载2nd stage到内存中。
1.5 stage:1和2的桥梁,用来驱动文件系统来使1阶段过渡到2阶段。
2nd stage:grub核心,/boot/grub,存放在磁盘分上,用于加载内核文件。
4.加载内核
分四个步骤:
探测可识别到的所有硬件设备;
加载硬件驱动程序;(有可能会借助于ramdisk加载驱动)
以只读方式挂载根文件系统;即rootfs
运行用户空间的第一个应用程序:/sbin/init。
内核文件:/boot//vmlinuz-VERSION-release,ramdisk文件/boot/initramfs-VERSION-release.img。
在上述的内核启动后,后续的 *** 作都交给init程序来完成。/sbin/init程序是用户空间的第一个程序,主要完成系统初始化,步骤如下:
设置默认运行级别:
运行级别的配置文件为/etc/inittab,共0-6七个运行级别,可以在该文件中自主定义,下次启动默认进入指定的运行级别。
运行系统初始化脚本:
/etc/rc.d/rc.sysinit即为系统的初始化脚本,系统通过自动执行该脚本,从而完成对系统的设置和信息的初始化。
关闭对应级别下需要停止的服务,启动对应级别下需要开启的服务:
这里主要是指通过chkconfig所配置的开机自动启动或者关闭的各类服务。
设置登录终端:
启动图形终端:级别5需要启动
GRand Unified Bootloader,系统启动后会首先打开一个grub菜单,上图所示,可以自主选择内核、定制内核参数。grub由三个阶段组成,1st stage,1_5stage以及stage2,stage2和内核文件等通常放置于一个基本磁盘分区。
grub有自己的命令行接口:
配置文件说明:/boot/grub/grub.conf
kickstart是什么
许多系统管理员愿意使用自动化的安装方法来安装linux系统。为了满足这种需要,红帽公司建立了kickstart安装方法。使用kickstart自动化安装,系统管理员可以创建一个ks文件,该文件包含了在典型的安装过程中所遇到的问题的答案。
Kickstart文件可以存放在一个固定的位置上,在安装过程中被独立的机器所读取。这个安装方法可以支持使用单一kickstart文件在多台机器上安装Linux系统,这对于网络和系统管理员来说是个理想的选择。
如何执行kickstart安装
kickstart 安装可以使用本地光盘,本地硬盘驱动器,或通过 NFS、FTP、HTTP 来执行。
要使用 kickstart,必须:
1.创建一个正确的kickstart文件。
2.创建有kickstart文件的引导介质或者让主机可以通过网络访问该文件。
3.筹备安装过程。
4.开始kickstart安装。
创建kickstart配置文件的方式:
1. 文本编辑器编辑生成:vim
2. 用图形化界面配置:system-config-kickstat(需要安装system-config-kickstart.noarch包)
步骤:
创建光盘根目录
复制光盘下的isolinux目录到根目录下
赋予isolinux里的所有文件和目录写权限(这样就可以自定义isolinux.cfg文件)
复制修改好的ks文件到myboot目录下(这里myboot目录相当于光盘的根目录)
建立镜像
简单的说GRUB或者LILO是代替MBR的工作。具体来说如下:1、MBR是main boot record的简称,即主引导记录,电脑开机后BIOS自检,随后会加载MBR,MBR是一个512字节的扇区。这里除去64字节的分区表,剩下的就是一段小程序,它负责找到 *** 作系统的引导文件。
2、grub或者lilo是直接写进mbr硬盘的主引导记录中的,计算机BIOS在启动时,按照预定的方式,将mbr内的代码加载至内存指定位置,grub写入主引导记录,bios就引导grub;
在Windows 8或8.1中设置新磁盘时,系统会询问你是想要使用MBR还是GPT分区。GPT是一种新的标准,并在逐渐取代MBR。GPT带来了很多新特性,但MBR仍然拥有最好的兼容性。GPT并不是Windows专用的新标准—— Mac OS X,Linux,及其他 *** 作系统同样使用GPT。
在使用新磁盘之前,你必须对其进行分区。MBR(Master Boot Record)和GPT(GUID Partition Table)是在磁盘上存储分区信息的两种不同方式。这些分区信息包含了分区从哪里开始的信息,这样 *** 作系统才知道哪个扇区是属于哪个分区的,以及哪个分区是可以启动的。在磁盘上创建分区时,你必须在MBR和GPT之间做出选择。
MBR的局限性
MBR的意思是“主引导记录”,最早在1983年在IBM PC DOS 2.0中提出。
之所以叫“主引导记录”,是因为它是存在于驱动器开始部分的一个特殊的启动扇区。这个扇区包含了已安装的 *** 作系统的启动加载器和驱动器的逻辑分区信息。所谓启动加载器,是一小段代码,用于加载驱动器上其他分区上更大的加载器。如果你安装了Windows,Windows启动加载器的初始信息就放在这个区域里——如果MBR的信息被覆盖导致Windows不能启动,你就需要使用Windows的MBR修复功能来使其恢复正常。如果你安装了Linux,则位于MBR里的通常会是GRUB加载器。
MBR支持最大2TB磁盘,它无法处理大于2TB容量的磁盘。MBR还只支持最多4个主分区——如果你想要更多分区,你需要创建所谓“扩展分区”,并在其中创建逻辑分区。
MBR已经成为磁盘分区和启动的工业标准。
GPT的优势
GPT意为GUID分区表。(GUID意为全局唯一标识符)。这是一个正逐渐取代MBR的新标准。它和UEFI相辅相成——UEFI用于取代老旧的BIOS,而GPT则取代老旧的MBR。之所以叫作“GUID分区表”,是因为你的驱动器上的每个分区都有一个全局唯一的标识符(globally unique identifier,GUID)——这是一个随机生成的字符串,可以保证为地球上的每一个GPT分区都分配完全唯一的标识符。
这个标准没有MBR的那些限制。磁盘驱动器容量可以大得多,大到 *** 作系统和文件系统都没法支持。它同时还支持几乎无限个分区数量,限制只在于 *** 作系统——Windows支持最多128个GPT分区,而且你还不需要创建扩展分区。
在MBR磁盘上,分区和启动信息是保存在一起的。如果这部分数据被覆盖或破坏,事情就麻烦了。相对的,GPT在整个磁盘上保存多个这部分信息的副本,因此它更为健壮,并可以恢复被破坏的这部分信息。GPT还为这些信息保存了循环冗余校验码(CRC)以保证其完整和正确——如果数据被破坏,GPT会发觉这些破坏,并从磁盘上的其他地方进行恢复。而MBR则对这些问题无能为力——只有在问题出现后,你才会发现计算机无法启动,或者磁盘分区都不翼而飞了。
兼容性
使用GPT的驱动器会包含一个“保护性MBR”。这种MBR会认为GPT驱动器有一个占据了整个磁盘的分区。如果你使用老实的MBR磁盘工具对GPT磁盘进行管理,你只会看见一个占据整个磁盘的分区。这种保护性MBR保证老式磁盘工具不会把GPT磁盘当作没有分区的空磁盘处理而用MBR覆盖掉本来存在的GPT信息。
在基于UEFI的计算机系统上,所有64位版本的Windows 8.1、8、7和Vista,以及其对应的服务器版本,都只能从GPT分区启动。所有版本的Windows 8.1、8、7和Vista都可以读取和使用GPT分区。
其他现代 *** 作系统也同样支持GPT。Linux内建了GPT支持。苹果公司基于Intel芯片的MAC电脑也不再使用自家的APT(Apple Partition Table),转而使用GPT。
我们推荐你使用GPT对磁盘进行分区。它更先进,更健壮,所有计算机系统都在向其转移。如果你需要保持对旧系统的兼容性——比如在使用传统BIOS的计算机上启动Windows,你需要使用MBR。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)