21-Linux-系统启动详解
2014-02-04 12:56
183 查看
启动流程
BIOSMBR:Boot Code
执行引导程序 - GRUB
加载内核
执行init
runlevel
1 - BIOS
BIOS, Basic Input Output System, 基本输入输出系统, 存在于主板的BIOS芯片上.计算机启动首先运行BIOS
作用: 1, 硬件检查(开机自检); 2, 查找可启动设备
可启动设备 具有引导程序, 首512个字节的最后两个字节 为 "55AA" (MBR有效标志)
可启动设备在BIOS中设置顺序, 如 USB(U盘) -> CDROM(光盘) -> HD(硬盘)
挨个查找这些设备的 是否具有 MBR有效标志,
找到第一个就将启动控制权转移给它 (首512个字节的前446个字节, 引导代码)
2 - MBR
BIOS找到可启动设备, 执行其引导代码 boot code引导代码为MBR的前446个字节, 装OS时 由OS写入的
作用 : 查找并加载 引导程序 grup
3 - GRUB
grub 是现在Linux使用的主流引导程序, 可用来引导绝大多数OSgrub相关文件保存于 /boot/grub 目录
stage1 : 512字节, MBR的镜像
文件系统驱动
e2fs_stage1_5
fat_stage1_5
ffs_stage1_5
iso9660_stage1_5
jfs_stage1_5
minix_stage1_5
reiserfs_stage1_5
ufs2_stage1_5
vstafs_stage1_5
xfs_stage1_5
stage2
grub配置文件 : /boot/grub/grub.conf
default=0 默认启动第0个OS
timeout=5 倒数几秒等待选择启动哪个OS
splashimage=(hd0,1)/boot/grub/splash.xpm.gz 倒数时的背景图片
hiddenmenu 隐藏菜单栏
OS定义
title CentOS (2.6.32-279.el6.i686) 菜单项的名字
root (hd0,1) 根分区的位置. hd- 硬盘; 0,1 - 第0块硬盘, 第0个分区
kernel /boot/vmlinuz-version ro root=/dev/sda2 内核,readonly,根目录
initrd /boot/initramfs-[generic-]version.img 内核模块打包文件
# man initrd : boot loader initialized RAM disk
/boot/initramfs-[generic-]version.img 封装OS所有可能用到的模块(如设备驱动)
4 - Kernel
MBR的引导代码 根据grub.conf文件 找到并加载 Linux内核Linux内核: /boot/vmlinuz-2.6.32-279.el6.i686
加载内核模块打包文件: /boot/initramfs-2.6.32-279.el6.i686.img
Linux为保持kernel的精简,
将一些不常用的 驱动、功能 编译成模块, 在需要的时候动态加载,
这些模块被打包成一个 initramfs文件
早期Linux使用的是initrd文件, initramfs是initrd的替代优化版本
dmesg命令 可查看本次启动时kernel的输出信息
# dmesg | less
# less /var/log/dmesg
5 - INIT
init 是Linux系统中运行的第一个进程init进程是所有进程的父进程
/etc/init目录
作用
调用 /etc/rc.d/rc.sysinit 对系统进行初始化
挂载文件系统
根据运行级别启动相应服务
6 - runlevel
运行级别(运行模式)/etc/inittab 配置默认级别
0 - 关机
1 - 单用户(root)模式
2 - 不带网络的多用户名模式
3 - 命令行多用户模式
4 - 未使用
5 - X11图形化多用户模式
6 - 重新启动
每个级别对应的启动脚本保存于: /etc/rc.d目录
init命令 : 切换运行级别
# init 3 : 切换到命令行界面
# init 5 : 切换到图形界面
runlevel命令: 显示上一个运行级别 和 当前运行级别
$ runlevel
3 5
扩展
单用户模式
为内核传递参数"1"(数字) 或 "single" 进入单用户模式, 修改root密码
特点
不启动任何服务
直接以root用户登陆, 无需root 密码
可直接使用 passwd命令 设置新的root密码(无需旧密码)
步骤
1. 在启动界面按 上/下方向键 以暂停grub引导
2. 按 "e" 键 编辑高亮的引导条目
3. 选择 kernel, 再按 "e"键 进行编辑
注: 默认 光标在末尾的, 可以按"Home" "End" 左/右方向键 移动光标
4. 在末尾加一个参数"1"(启动级别)即可
注: 需要用空格将前面的 隔开
5. 编辑完后按回车返回, 再按"b"键启动
6. 修改完root密码, 输入exit命令继续 默认的启动
grub加密
1. 生成密码对应的md5码
[root@wuqinfei ~]# grub-md5-crypt
Password:
Retype password:
$1$harQZ1$I.M/fPAb/Xstl.CZSe7WW1
2. 编辑 /boot/grub/grub.conf文件
在第一行添加下面的命令
password --md5 $1$harQZ1$I.M/fPAb/Xstl.CZSe7WW1
注: 编辑 /etc/grub.conf文件同样有效
3. 编辑启动条目时需要输入密码
相关文章推荐
- 课时21 Linux系统启动详解
- linux学习入门19——LINUX系统启动详解(linuxcast.net)(重要!!重要!!)
- 【Linux 入门笔记】系统启动详解
- Linux系统启动过程详解
- Linux系统开机启动详解
- linux系统启动流程详解
- 嵌入式 linux下查看系统启动时间以及运行时间详解
- 详解linux系统的启动过程及系统初始化
- Linux下chkconfig命令详解即添加服务以及两种方式启动关闭系统服务
- Linux系统启动过程详解
- Linux系统启动过程详解
- linux内核剖析(零)linux系统启动过程详解-开机加电后发生了什么
- Linux学习笔记17--Linux系统启动详解
- linux系统启动过程详解-开机加电后发生了什么 --linux内核剖析(零)
- linux 系统 开机启动详解
- linux系统开机启动过程详解
- Linux基本配置和管理 4 ---- Linux系统启动详解
- Linux基本配置和管理 4 ---- Linux系统启动详解
- linux初学(十九)之系统启动详解
- linux获取系统启动时间示例详解