Linux课程学习笔记来源于网易云课堂:Linux 入门基础
1 Linux系统启动流程:
BIOS à MBR: Boot Code(引导代码)à 执行引导程序 - GRUBà 加载内核 à执行inità runlevel
2 BIOS
BIOS(Basic Input Output System),基本输入输出系统,一般保存在主板的BIOS芯片中
计算机启动的时候第一个运行的就是BIOS,BIOS负责检查硬件并且查找可启动的设备
可启动的设备在BIOS设置中进行定义,如USB、CDROM、HD
3 MBR
BIOS找到可启动设备后执行引导代码
引导代码为MBR的前446字节
4 GRUB
1) Grub是现在linux使用的主流引导程序
2) grub可以用来引导几乎所有操作系统
3) 相关文件保存在/boot/grub中
stage1 MBR
stage1_5 //stage1执行完之后再执行的
stage2 //stage1_5执行完之后再执行的
内核
4) 配置文件为/boot/grub/grub.conf,通过vim显示,#后的是注释语句
5) 配置格式:
default=0 //启动默认配置0
timeout=3 //开机时的,默认时间倒计时,如果不需要,可以改成0
splashimage=(hd0,1)/boot/grub/splash.xpm.gz //启动时的背景图片,可以自己定制,设置为.xpm格式,放在/boot/grub/目录下
hiddenmenu //隐藏菜单
title centos //名字可以随便改
root(hd0,1) //启动分区,在第一个硬盘(hd0)的第2各分区下
kernel /vmlinuz-2.6.32-279.el6.x86_64 roroot=UUID=b18ec4b9-367b-4e76-b180-e7e518f6adf2 rd_NO_LUKS rd_NO_LVMLANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgbquiet
//先启动内核kernel,在/boot/vmlinuz-2.6.32-279.el6.i686目录下。后面的都是参数设置。
initrd /initramfs-2.6.32-279.el6.x86_64.img
5 kernel(内核)
1) MBR的引导代码将负责找到并加载linux内核
2) Linux内核保存在/boot/vmlinuz-2.6.32-279.el6.1686
3) 一般还会加载内核模块打包文件:/boot/initramfs-2.6.32-279.el6.i686.img
4) Linux为了保持kernel的精简,将一些不常用的驱动、功能编译成模块,在需要的时候动态加载,而这些模块被打包保存为一个initramfs文件。
5) 早期版本的linux使用initrd文件,initramfs是initrd的替代优化版本,比initrd更加节省空间、更加灵活。
6) 命令dmesg可以查看本次启动时内核的输出信息。同样的信息也保存在/var/log/dmesg文件中
6 INIT
内核启动完毕就会运行init进程
1) init 是linux系统中运行的第一个进程,是所有进程的附进程。
2) init负责使用/etc/rc.d/rc.sysinit负责对系统进行初始化,挂载文件系统,并且根据运行级别启动相应服务
3) linux运行级别:
0 关机
1 单用户模式
2 不带网络的多用户模式
3 多用户模式(没有图形界面)
4 未使用
5 xll图形化多用户
6 重新启动
top 命令可以查看PID,其中1为init
4) 默认的运行级别可以通过文件/etc/inittab 下修改,修改其中的id:5:initdefualt中的数字即可,或者在/etc/init/目录下修改,此目录下有较多的设置文件。
5) 每个级别对应的启动服务保存在/etc/rc.d/rc[0123456].d中
6) runlevel 显示当前及上一个运行级别
7) 命令init可以改变当前运行级别,init3 可以切换到3级别
7 单用户修改root密码
1) 为内核传递参数‘1’或者“single”系统进入单用户
2) 单用户模式下不启动任何服务
3) 单用户模式直接以root用户登录,并且不需要密码
4) 可以使用passwd修改root密码
忘记root密码时,可以在启动界面的时候,通过上下键进入pause界面,传递参数‘1’或者“single”系统进入单用户。
8 GRUB加密
通过启动界面(重新启动,通过物理按键)进入单用户模式,存在安全隐患,需要通过GRUB加密对引导进行加密。
1) 通过在grub.conf中的启动配置中加入如下参数即可对grub进行加密:
Password –md5$1$aoWpTe$/MWUUYbBIF.2RUZK8nbWU0 //$后面的是通过grub进行加密后的密码
2) 加密后的密码可以通过grub-md5-crypt生成