Linux启动过程笔记

Linux启动过程

1、启动流程(BIOS->MBR:Boot Code->引导GRUB->载入内核->运行init->runlevel)

2、/boot/grub/下有多个文件   当中stage1为MBR镜像(512字节) stage2为引导程序
3、/boot/grub/grub.conf为引导的配置文件
default=0#默认载入下边哪个系统
timeout=3#引导等待时间
splashimage=(hd0,1)/boot/grub/splash.xpm.gz#引导界面的背景图
hiddenmenu#隐藏菜单
title CentOS(2.6.32.279.el6.i686)#系统名称
    root(hd0,1)#系统位置
    kernel /boot/vmlimuz-2.6.32.279.el6.i686 ro root=UUID=**  LANG=en_US.UTF-8 #内核及參数
    initrd /boot/initramfs-2.6.32.279.el6.i686.img#镜像文件

4、Linux为保持kernel精简将一些不经常使用的驱动、功能编译为模块,在须要的时候动态载入。而这些

模块被打包保存为一个initramfs文件
早期版本号Linux使用initrd文件,initramfs是initrd的替代优化版本号,比曾经更加节省空间、更加灵活


5、dmesg查看内核的输出信息(查看内核级故障、设备驱动不起来时须要看内核信息)、信息终于保

存在/var/log/dmesg文件里
6、init为linux系统中的第一个进程(top中PID为1的)。为全部进程的父进程
系统启动时调用/etc/rc.d/rc.sysinit负责对系统进行初始化。挂载文件系统。而且依据执行基本启动对应服务
执行级别:
0:关机
1:单用户模式
2:不带网络的多用户模式
3:纯文本多用户模式
4:未使用
5:XLL图形化多用户模式
6:又一次启动
通过/etc/inittab 改动默认级别
每一个级别保存在/etc/rc.d下(rc0.d、rc1.d、rc2.d。。

。)
/etc/init 里边的文件为系统初始化配置文件(如启动ctrl alt del组合按键)

runlevel显示当前及上一个执行级别
N 5 (N表示没有上一个,5表示图形)

init 3表示切换到3级别下

单用户改动ROOTpassword

引导时为内核传递參数"1"(数字1)或"single"可系统进入单用户模式(在引导模式下按e,选择内核后再按e,追加"1"启动)
单用户模式下不启用不论什么服务
单用户模式直接以root用户登录,而且不须要password
能够使用passwd改动rootpassword

GRUB加密

通过在grub.conf中的启动配置中增加例如以下參数就可以对grub进行加密:
password --md5 $1$ao---这里是密码

加密后的password能够通过grub-md5-crypt命令生成,将生成后的password替换上边的password


rc.local文件解说

非常多人不知道rc.local和rc?.d的差别,rc.local是在系统初始化级别脚本运行之后再运行的,因此能够安全地在里面加入你想在系统启动之后运行的脚本。常见的情况是你能够再里面加入nfs挂载/mount脚本。

此外,你也能够在里面加入一些调试用的脚本命令。比如。我就碰到过这样的情况:samba服务总是无法正常运行。而检查发现,samba是在系统启动过程中就该启动运行的。也就是说,samba守护程序配置保证了这样的功能本应该正确运行。

碰到这样的类似情况。一般我也懒得花大量时间去查为什么,我仅仅须要简单的在/etc/rc.local脚本里加上这么一行:

          /etc/init.d/samba start

这样就成功的攻克了samba服务异常的问题。



原文地址:https://www.cnblogs.com/yangykaifa/p/6859730.html