kernel 最后加single进入单用户模式
给grub进行加密
1 | #grub-md5-crypt |
安装grub第三种方式:
grub>root (hd0,0)
grub>kernel /PATH/TO/KERNEL_FILE 可双tab补全
grub>initrd /PATH/TO/KERNEL_FILE
grub>boot
Kernel初始化的过程:
- 设备探测
- 驱动初始化(可能会从initrd(initramfs)文件中装载驱动模块)
- 以只读挂载根文件系统
- 装载第一个进程init(PID=1)
/sbin/init : (/etc/inittab)
upstart:ubuntu开发,基于D-BUS开发
systemd
/etc/inittab:
/etc/inittab中初始化的文件被分开存放在/etc/init目录下
在这个配置文件中可以看到。
id:runlevel:action:process
id:标识符
runlevel:在哪个级别运行
action:在什么情况下执行此行
process:要运行程序
action:
initdefault:设定默认运行级别
sysinit:系统初始化
wait:等待级别切换至此级别时执行
respawn:一旦程序终止,会重新启动
这个在RHEL5上有更为详细的介绍。。
/etc/init.d/
/etc/rc.d/rc.sysinit完成的任务:
- 激活udev和selinux
- 根据/etc/sysctl.conf文件,设定内核参数
- 设定时钟
- 装载键盘映射
- 启用交换分区
- 设置主机名
- 根文件系统检测。并以读写方式重新挂载
- 激活RAID和LVM设备
- 启用磁盘配额
- 根据/etc/fstab,检查并挂载其他文件系统
- 清理过期的锁和PID文件
/etc/rc.d/rc
完成相应运行级别的文件启动和关闭。
例如运行级别3:
for I in /etc/rc3.d/K*; do
$I stop
done
for I in /etc/rc3.d/S*;do
$I start
done
注意:数字越小越先关闭或者启动(K11和K22则K11*会早关闭)
/etc/local
可自定义
这些文件在使用systemd后都没有了。
关于grub引导修复可直接参考这个文章:
http://www.centoscn.com/CentosBug/osbug/2014/0327/2671.html
练习:修复grub(这个在实验中可行)
grub配置文件出错:
grub>root (hd0,0)
grub>kernel /vmlinuz-2.6.32-431.e16.x86_64 ro root=/dev/mapper/vg_centos-lv_root
grub>initrd /initramfs-2.6.32-431.e16.x86_64.img
grub>boot
(在kernel地方,指定rootfs的时候,我忘记他的路径了,我在实验的时候插上镜像盘,mount /dev/sda1 /mnt 然后查看grub.cfg得知的,不过这个名字有
命名规则,就是卷组名-lv_root,然后就可正常启动,更多可直接参考上面那个grub引导修复文章
另说明,我使用grub安装方式2的时候没有成功,因为我在执行grub-install –root-directory=/mnt /dev/sda的时候报错:No boot directory,这个时候即使我想创建这个
文件的时候会提示这个文件已经存在,所以这个方式我没有成功)