1、简述linux操作系统启动流程
- POST加电自检: CPU自举,加载固定地址空间中的固定指令,起动BIOS完成硬件探测
- Boot Sequence:按启动顺序找出第一个有bootloader设备,为此次启动的设备
- bootloader
- Windows: ntloader
- Linux:
- LILO: linux loader,多用于手机
- GRUB:
- grub1: 0.x: CentOS 5,6
- grub2: 1.x: CentOS 7: 完全重写
- 功能:提供可选菜单
- 用户选择内核后,bootloader将内核和ramdisk加载到内存中
- 内核空间:自解压展开,获得控制权,并初始化
- 看看朕的花花世界
- 控制权,利用驱动。ro加载根
- 派遣一个使者:init,替朕去管理这个世界
- 用户空间:使者init进程
- centos5: init,进程串行启动;/sbin/init
- centos6: upstart, Ubuntu实现,dbus通信并行创建进程 /sbin/init
- centos7: systemd,redhat程序员参考mac启动逻辑,一个进程完成启动系统 /sbin/systemd
- 根据/etc/inittab文件可知
- 设定默认运行级别
- 初始化:
- 设定主机名
- 打印欢迎信息
- 激活selinux和udev
- 挂载/etc/fstab中定义的文件系统
- 检测 根 文件系统,ro挂载 rootfs
- 设置系统时钟
- 根据/etc/sysctl.conf设定内核参数
- 激活lvm及软raid
- 激活swap设备
- 加载额外的驱动程序
- 清理初始化过程中的生成临时文件的程序所生成的临时文件。
- 给rc脚本传递级别参数,停止要停止的服务,启动要启动的服务;
- 设置登陆终端,打印登陆提示符
2、简述grub启动引导程序配置及命令行接口详解
grub工作阶段:
- 1st: mbr, bootloader加载到mbr
- 1.5st: 驱动,mbr之后的扇区,提供stage2在的分区的文件系统驱动;
- 2st: boot目录所在分区
功能:
1. 显示菜单
command line:
- > help 获取帮助
- > find (hd#,#)/PATH/TO/SOMEFILE; 查看文件;第几个磁盘的第几个分区,都从0开始编号
- > root (hd#,#) 指明stage1_5驱动指向的boot分区位置;grub将其当作根;grub安装的分区;
- > kernel /PATH/TO/VMLINUZ_FILE: grub识别的根下的内核文件;本次启动所用的内核
- kernel后可以接受一些参数,如下:
- root=/dev/DEVICE kernel启动后挂载的根文件系统;
- init=/sbin/init 默认,内核启动用户空间的init程序;
- selinux=0;禁用selinux功能;
- ro 只读
- quiet 静默模式
- > initrd /PATH/TO/INITRAMDISK_FILE;grub识别的根下的initramfs文件;提供本次挂载根文件系统的驱动
- > boot 启动
2. 隐藏菜单
3. 保护机制
配置文件:
/boot/grub[2]/grub.conf
- default=#: timeout时间内用户没有做出任何选择,默认启动的内核。title从上至下,从0开始编号。
- timeout=#:等待用户选择的时长;
- splashimage=(hd#,#)/PATH/TO/PIC_FILE.xpm.gz:菜单背景图片;
- hiddenmenu: 隐藏菜单
- password –md5 STRING: 菜单编辑认证:可省,表示不认证
- title TITLE: 定义菜单标题,有空格时不用加引号;可出现多次,表示多个菜单;注意:其下必须缩进
- root (hd#,#):指明grub的根,即stage1_5驱动指向的分区位置;stage2位置;
- kernel /PATH/TO/VMLINUZ_FILE: grub识别的根下的内核文件;
- initrd /PATH/TO/INITRAMDISK_FILE:grub识别的根下的initramfs文件;设定提供根文件系统驱动的路径;
- password –md5 STRING: 启用内核或操作系统认证;可省,表示不认证
3、实现kickstart文件制作与光盘镜像制作
kickstart文件制作:
复制以下配置注意:
安装源的位置,需要修改;
url –url=”http://172.16.0.68/centos/7/x86_64″
分区大小# vim /var/ftp/pub/centos7.cfg
#version=RHEL7
# System authorization information
auth –enableshadow –passalgo=sha512# 安装源
url –url=”http://172.16.0.68/centos/7/x86_64″# 安装过程是graphical还是文本
text# Run the Setup Agent on first boot
firstboot –enable
ignoredisk –only-use=sda# 键盘
keyboard –vckeymap=us –xlayouts=’us’# 安装后语言
lang en_US.UTF-8# 安装后操作
reboot# 网络怎么配置
network –bootproto=dhcp#root密码设定为什么
rootpw –iscrypted $6$jnX/i6Ab$eT4cXMEFYrFLmPPT1CwymlAYbHfYK1ifH7DXLNdfMQV6Nu4T2E/8da8aSqIEHNakVQvCtAlEuVln4.wvUyF0z.
# 系统时区
timezone Asia/Shanghai# X Window System configuration information
xconfig –startxonboot# System bootloader configuration
bootloader –append=” crashkernel=auto” –location=mbr –boot-drive=sda# Partition clearing information
clearpart –none –initlabel# 清空mbr
zerombr# 分区
part swap –fstype=”swap” –ondisk=sda –size=2048
part /boot –fstype=”xfs” –ondisk=sda –size=512# 创建Pv
part pv.008002 –size=102400# 创建vg
volgroup myvg –pesize=8192 pv.008002
logvol / –fstype=xfs –name=lv_root –vgname=myvg –size=40960
logvol /home –fstype=xfs –name=lv_home –vgname=myvg –size=4096
logvol /usr –fstype=xfs –name=lv_usr –vgname=myvg –size=20480
logvol /var –fstype=xfs –name=lv_var –vgname=myvg –size=20480
# 安装哪些程序包
%packages
@base
@core
wget
lftp
tree
screen
%end# 安装后脚本
%post# 以多用户模式为默认模式
systemctl set-default multi-user.target
#禁用防火墙
systemctl stop firewalld.service
systemctl mask firewalld.service#将xshell的公钥导入
[ ! -d /root/.ssh ] && mkdir /root/.ssh && chmod go=— /root/.ssh
cat >> /root/.ssh/authorized_keys << EOF
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAGEA05mLktn19BzxlfpSmn2MRt6WD3Yr15rZwjKdC/bRy8fABkNIvh1NZDBFQodlvwUhlVvxdyFR90NxJ/Ykhbs/GxUlYyqY3JFqw/YUw2Ba8i4jSzwLi+6tkPQA4RYl2IED
EOF#将主机名反解功能取消
echo “UseDNS no” >> /etc/ssh/sshd_config#登陆提示符添加
echo -e “Mage Education Learning Services\nhttp://www.magedu.com\n” >> /etc/issue
%end定制光盘
# mkdir -v /root/myboot # cp -r /media/cdrom/isolinux /root/myboot ~]# vim /root/myboot/isolinux/isolinux.cfg label linux menu label ^Install CentOS 7 auto kernel vmlinuz append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet inst.repo=http://172.16.0.9/centos/7/x86_64 ks=cdrom:/ks.cfg # cp /path/to/ks.cfg /root/myboot/ks.cfg # cd /root ~]# mkisofs -R -J -T -v --no-emul-boot --boot-load-size 4 --boot-info-table -V "CentOS 7 x86_64 boot" -c isolinux/boot.cat -b isolinux/isolinux.bin -o /root/boot.iso myboot/
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/91125
评论列表(1条)
总结的蛮不错的,最后一题重在实战,如果能体现出遇到的问题及解决思路,会更好一点。加油~