linux系统启动流程
BIOS (系统加电自检)
MBR:BOOT CODE (在硬盘上)
执行引导程序:GRUB
加载内核
执行INIT(PID为1)
RUNLEVEL
1、BIOS
BIOS(basic in/out system),基本输入输出系统,一般保存在BIOS芯片中。
计算机启动首先运行BIOS,其功能是负责检查硬件(检查CPU、磁盘、显卡出现故障会发出滴滴的响声)并查找可启动设备,比如USB(系统U盘)、CD-ROM(系统光盘)、HD(系统硬盘)等,这些启动设备都有引导信息。
2、MBR(Master Boot Recorder 主引导记录)
系统自检完之后,就开始读取磁盘上的数据,首先读取的是MBR。
MBR位于磁盘的零柱面,零磁头,1扇区。
MBR包含了3个部分:
(1)bootloader,又称为自举程序。
(2)partition lable, 分区列表
(3)magic number,结束标识字
MBR位于系统盘的前512B,最后2Byte为0x55、0xAA。系统会在启动设备上查找第一个512Byte的最后2Byte是否为0x55、0xAA,如果是那么该设备将作为启动设备。在用U盘安装系统时,U盘就是第一启动设备,MBR位于U盘上。在MBR中前446Byte为简单的引导代码。
3、执行GRUB
在grub中会指出/boot所在分区,内核的位置以及相应的内核参数,MBR的引导代码负责查找并加载linux内核。
4、KERNEL
启动过程,linux内核的作用主要是驱动硬件,启动进程 init
linux的内核保存在/boot/vmlinux-..........
还会加载内核模块打包文件 /boot/initramfs.......
为了保持linux内核的精简,通常会将一些不常用的驱动编译成模块,在需要时再动态加载,这些模块被保存在initramfs中。
早期linux使用的是initrd,现在用initramfs代替,initramfs更加精简、节省空间。
命令dmesg可以查看本次启动时的内核输出信息,同样可以在/var/log/dmesg中查看;在内核出错时查看。
5、INIT
init是linux的第一个进程,是所有进程的父进程,PID恒为1,PID为0的进程称为内核调度器。调用/etc/rc.d/rc.sysinit负责对系统进行初始化,挂载文件系统,并根据运行级别启动相应服务。
linux的运行级别
0 关机
1 单用户模式
2 不带界面的多用户模式,无NFS
3 不带界面的多用户模式
4 未使用
5 xII图形化模式
6 重新启动
可以通过/ect/inittab修改默认的运行级别
每个级别对应的启动服务保存在/etc/rc.d/rc[0...6].d
命令runlevel可显示出上次和当前运行级别
init命令可以修改运行级别
运行级别切换:init [123456Ss] telinit [123456Ss],其中telinit是init的软连接。
当父进程终止时,子进程由于某种原因仍然存活,该子进程称为孤儿进程,系统会将init进程作为孤儿进程的父进程。
单用户修改ROOT密码
为内核传递参数“|”或“single”可使系统进入单用户模式。
单用户模式下不启动任何服务
单用户模式直接以root身份登录无需密码
可以使用passwd来修改密码
GRUB加密
加密后的密码可由grub-md5-crypt生成
通过在grub.conf中的启动配置中加入如下参数即可对grub进行加密:
passwd --dm5 $................................
hwclock
查看硬件时间
阅读(722) | 评论(0) | 转发(0) |