OK,系统正常哈~
这样就完成这个错误的修复了,这个主要让我们有个了解,知道是怎么回事,有这个东西,使用时间长了,我们就会遇见这些问题
################################################################# 内核模型 单片型内核
单片型内核将各种硬件支持、网络协议与文件系统管理都编译入一个单一的文件中。
模块型内核:
模块型内核则允许计算机在使用到某一项功能的时候自动加载,防止了核心臃肿,是大部分情况下的标准构建。
默认核心存放路径:/boot
核心版本命名规则:主版本号、次版本号、补丁级数 Red Hat附加参数:发布号 显示当前系统的内核信息#uname -r
核心RPM包
kernel-
kernel-source-
[url]www.kernel.org[/url]上发布的原始核心源代码包,需要build出arch包再使用 vmlinuz
是可引导的、压缩的内核。“vm”代表 “Virtual Memory“, Linux支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz是可执行的Linux内核,它位于/boot/vmlinuz,它一般是一个软链接。 vmlinuz的建立有两种方式:
(1) 编译内核时通过“make zImage”创建,zImage适用于小内核的情况,它的存在是为了向后的兼容性。
(2) 内核编译时通过命令make bzImage创建 (单独编译内核映像,不编译驱动模块,生成内核映像bzImage) Initrd
initrd一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。比如,使用的是scsi硬盘,而内核vmlinuz中并没有这个scsi硬件的驱动,那么在装入scsi模块之前,内核不能加载根文件系统,但scsi模块存储在根文件系统的/lib/modules下。为了解决这个问题,可以引导一个能够读实际内核的initrd内核并用initrd修正scsi引导问题。 initrd映象文件是使用mkinitrd创建的。mkinitrd实用程序能够创建initrd映象文件。这个命令是RedHat专有的。其它Linux发行版或许有相应的命令。这是个很方便的实用程序。#mkinitrd initrd-版本号.img 版本号 核心启动流程: 检测硬件设备 设备驱动初始化
将根分区以只读方式挂载 载入初始进程(一般是init)
init从/etc/inittab中读取数据并初始化 init运行级别: 系统启动脚本
执行运行级别对应目录下的脚本 设置热键
定义UPS设备脚本
在虚拟控制台上循环开启getty进程 定义runlevel 5时的X显示管理器
init定义了0~6这7个运行级别,运行级别可以被指定于: 系统启动时作为核心加载参数被指定
未被指定的情况下,系统启动时从/etc/inittab中读取 在系统运行中,root用户键入init [0-6]来指定。 用户可以用/sbin/runlevel来查看当前的运行级别 系统的运行级别默认情况下为: ?0:关机
?1/S/emergency:单用户模式,通常用于维护系统 ?2:多用户模式但无网络 ?3:多用户模式(字符界面)
?4:用户定义,未定义情况下与3相同 ?5:X11(包括网络) ?6:系统重启
/etc/rc.d/rc.sysinit是系统启动用的脚本,从/etc/sysctl.conf中读取核心参数: 设置系统时钟 载入keymap 激活swap分区 设置主机名
检查根文件系统并挂载 加载Raid设备 激活磁盘限额
检查并挂载其他文件系统 清除失效锁及PID文件
每一个运行级别都对应一个目录/etc/rc.d/rcX.d目录内存放的,即当前运行级别需要开启的服务脚本对应/etc/rc.d/init.d/目录下的链接,链接文件开头是S,表示启动;开头是K,则表示关闭。切换运行级别,即运行这个目录里所有的脚本,用户可以通过ntsysv调整当前运行级别的开关服务,或用chkconfig,调整某一运行级别下的开关服务。
/etc/rc.d/rc.local在运行级别目录下被最后一个调用,一般系统用户将针对此台计算机的开机定制设置写入其中,而非/etc/rc.d/rc.sysinit。 下期我们讲系统服务哈~~~
#################################################################
本文出自 “王乾De技术Blog[爱生活,爱学习]” 博客,谢绝转载!
相关推荐: