1 简述linux操作系统启动流程:
1)通电进行bios自检,加载硬盘
2)读取MBR,进行MBR引导。(主引导记录,对磁盘进行初始化,分区引导信息定位)
3)grub引导菜单(Boot Loader)(系统启动引导)。
4)加载内核kernel。(当操作系统接管硬件后,会读取/boot目录)
5)启动init进程,依据inittab文件设定运行级别(它的作用是初始化系统环境。他是第一个运行的程序,其他所有进程都从它衍生,都是它的子进程)—运行级别0-6,默认3级别或5级别
init进程首先读取文件 /etc/inittab,它是运行级别的设置文件。 对应的级别会运行对应的程序,如3级别 在/etc/rc3.d 下制定了该级别对应的那些程序这个目录里的所有文件(除了README),就是启动时要加载的程序。如果想增加或删除某些程序,不建议手动修改 /etc/rcN.d 目录,最好是用一些专门命令进行管理(参考这里和这里)
6)加载开机启动程序
就是七个级别的 /etc/rcN.d 目录里列出的程序,都设为链接文件,指向另外一个目录 /etc/init.d ,真正的启动脚本都统一放在这个目录中。init进程逐一加载开机启动程序,其实就是运行这个目录里的启动脚本。
7)执行/etc/rc.d/rc.local
8)用户登录开机启动程序加载完毕以后,就要让用户登录了。
用户的登录方式有三种:命令行登录、ssh登录、图形界面登录
1)命令行登录:init进程调用getty程序(意为get teletype),让用户输入用户名和密码。输入完成后,再调用login程序,核对密码(Debian还会再多运行一个身份核对程序/etc/pam.d/login)。如果密码正确,就从文件 /etc/passwd 读取该用户指定的shell,然后启动这个shell。
2)ssh登录:这时系统调用sshd程序(Debian还会再运行/etc/pam.d/ssh ),取代getty和login,然后启动shell。
3)图形界面登录:init进程调用显示管理器,Gnome图形界面对应的显示管理器为gdm(GNOME Display Manager),然后用户输入用户名和密码。如果密码正确,就读取/etc/gdm3/Xsession,启动用户的会话
9)进入 login shell 简单说shell就是命令行界面
Linuix默认的shell是Bash,它会读入一系列的配置文件。上一步的三种情况,在这一步的处理,也存在差异。
1)命令行登录:首先读入 /etc/profile,这是对所有用户都有效的配置;然后依次寻找下面三个文件,这是针对当前用户的配置。
~/.bash_profile
~/.bash_login
~/.profile
需要注意的是,这三个文件只要有一个存在,就不再读入后面的文件了。比如,要是 ~/.bash_profile 存在,就不会再读入后面两个文件了。
2)ssh登录:与第一种情况完全相同。
3)图形界面登录:只加载 /etc/profile 和 ~/.profile。也就是说,~/.bash_profile 不管有没有,都不会运行。
2题简述grub启动引导配置和命令行接口详解
Grub(GRand Unified Bootloader),统一资源引导器,它的工作是提供一个菜单,允许用户选择要启动的系统或不同的内核版本;把用户选定的内核装载到RAM中的特定空间中,然后解压、展开,而后把系统控制权移交给内核
grub引导步骤:
1 MBR (将grub装入到MBR中 ,它能识别内核和文件系统所在的扇区,帮助引导)
2 读取grub配置文件,实现引导展开
在linux中,与启动相关的文件(grub目录、vmlinuz、initramfs)均位于boot目录下
Grub的配置文件:/boot/grub/grub.conf
注意:必须确保grub目录、vmlinuz等在同一个目录;此外它创建了一个链接文件/etc/grub.conf 用于指向此配置文件,保证用户使用配置文件的一致性。
default=#:设定默认启动的菜单项,编号从0开始
timeout=#:等待菜单项选项的时长,超时自动启动系统
splashimage=(hd#,#)/PATH/TO/XPM_PIC_FILE:指明菜单背景图片文件路径
hiddenmenu:隐藏菜单
password [–md5] STRING:菜单编辑认证
title TITLE:定义菜单项“标题”, 可出现多次
root (hd#,#):grub查找stage2及kernel文件所在的分区;为grub的“根”
kernel /VMLINUZ_FILE [PARAMETERS]:启动的内核
initrd /INITRAMFS_FILE:内核匹配的ramfs文件
password [–md5] STRING:启动选定的内核或操作系统时进行认证
命令:利用grub-md5-crypt生成密码 将生成的秘钥添加到grub配置文件中
3、Grub的功能:
1)提供菜单,并提供交互式接口:
e:编辑模式,用于编辑菜单;
c:命令模式,交互式接口;
2)加载用户选择的内核或操作系统:
允许传递参数给内核;
可隐藏此菜单;
3)为菜单提供了保护机制:
为编辑菜单进行认证;
为启用内核或操作系统进行认证。
4、Grub的编辑模式和命令行模式:
4)grub的命令行命令:
help:获取帮助列表
help KEYWORD:详细帮助信息
find /FILENAME:查找文件所在的磁盘分区
root (hd#,#):指定boot所在分区
kernel /KERNEL_FILE:设定本次启动时用到的内核文件;额外还可以添加许多内核支持使用的cmdline参数,如:selinux=0,init=/path/to/init
initrd /INITRAMFS_FILE:设定为选定的内核提供额外文件的ramfs
boot:引导启动选定的内核、
注意,grub识别到的磁盘(hd#, #),例如(hd0, 0),表示第1块磁盘,第1个分区
5)grub的编辑命令:
e键:表示edit,编辑选中的项:
o键:在选中行的下一行添加一行
O键:在选中行的上一行添加一行
d键:删除选中的行
Esc键:退出编辑界面
示例,进入单用户模式:按e
5、安装Grub的方法
方法1:
grub-install [–root-directory=DIR] DEVICE
DEVICE:针对哪个磁盘安装
–root-directory=DIR:指定grub映像文件(主要是“stage 2”)的存放位置,默认为当前系统根目录。
-bash: grub-install: 未找到命令
3作业实现kickstart文件制作与光盘镜像制作
ickstart是RedHat/CentOS/Fedora等系统实现无人值守自动化安装的一种安装方式,系统管理员可将安装过程中需要配置的所有参数集成于一个kickstart文件中,
而后在系统安装时,安装程序通过读取事先给定的这个kickstart文件自动化地完成配置并安装完成。
制作kickstart文件的方式:
1)直接手动编辑,可以依据某个模板来进行修改;
2)使用kickstart文件创建工具:system-config-kickstart进行配置,同样可以导入某个模板进行修改。
若用工具system-config-kickstart 来定制kickstart:必须确保system-config-kickstart已经安装
# yum install system-config-kickstart
在命令行上运行system-config-kickstart命令即可启动窗口界面:
#system-config-kickstart
首先完成基本配置(如图),这里可设置语言类型、键盘类型、时区、管理员密码(加密)以及安装的平台类型等选项:
选择安装方式,这里通过网易镜像网站(mirrors.aliyun.com)安装程序包:
选择安装类型、MBR的安装位置以及向内核传递的参数等:
设置分区信息:
网卡配置,可以静态指定也可以使用dhcp动态获取网络属性配置:
用ksvalidator命令检查kickstart文件是否有语法错误:
[root@walterwong ~]# ksvalidator centosks.cfg
如无报错信息,至此kickstart文件制作完成。
制作光盘引导镜像:
将bootloader、Kernel、initrd及kickstart文件制作成光盘镜像,以实现本地光盘镜像引导安装CentOS系统,其中anaconda应用程序位于initrd提供的rootfs中,
而后续安装用到的程序包来自阿里云镜像站点(mirrors.aliyun.com),刚才在制作kickstart文件时已经手动指定。
7)通过xshell自带的ftp可把文件传输到windows桌面: 安装完成
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/107108