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改动rootpasswordGRUB加密
通过在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服务异常的问题。