Linux系列-Linux系统启动详解
2013-10-31 19:01
225 查看
我对操作系统这些底层也不懂,下面都是我整理的一些资料,说的比较浅显。
linux启动流程
下面从操作系统角度分许一下
BIOS找到可启动设备后执行其引导代码 MBR 512字节。 引导代码为 MBR的前446字节。
MBR 是英文Master Boot Record的缩写,中文意为主引导记录。硬盘的0磁道的第一个扇区称为MBR,它的大小是512字节,而这个区域可以分为两个部分。第一部分为pre- boot区(预启动区),占446字节;第二部分是Partition table区(分区表),占66个字节,该区相当于一个小程序,作用是判断哪个分区被标记为活动分区,然后去读取那个分区的启动区,并运行该区中的代码。
MBR的详细资料,大家可以参考这篇文章
GRUB
是现在linux使用的主流引导程序,可以用来引导现在所有的操作系统,
GRUB的相关文件保存在/boot/grub中,我们看下其下面目录
/boot/grup stage1 MBR 改命令意思是引导 xxx_stage1 文件
GRUB配置文件在/boot/grub/grub.conf里面。
root (hd0,1) 意思为操作系统存放在第一块硬盘的第一个分区
kernel
MBR的引导代码将负责找到并加载Linux内核
Linux内核一般保存在 /boot/vmlinuz-版本 不同版本的linux不一样
一般还会加载内核模块包打包文件: /boot/initrd-2.6.18-128.el5.img(不同版本不一样)
Linux为kernel保持kernel的精简将一些不常用的驱动、功能编译成模块。在需要的时候的时候动态加载,
而这些模块当场被打包存为一个initranmfs文件。
早期版本Linux使用initrd文件,initramfs是initrd的替代化版本,比initrd更加节省空间、更加灵活。
命令dmesg可以查看本次启动时内核的输出信息
init命令
init是linux系统运行的第一个进行。
系统调用/etc/rc.d/rc.sysinit负责对系统进行那个初始化,挂载文件系统,并且根据运行级别启动相应的服务。
Linux运行级别:
0 关机
1 单用户模式
2 不带网络的多用户模式
3 多用户模式
4 未使用
5 x11图形化模式
6 重新启动
可以使用 cat /etc/inittab查看启动级别
可以使用
cat /etc/init 分开保存配置文件
/etc/rc0.d
/etc/rc1.d 运行级别时的启动相关的服务 runlevel 当前的运行界别
命令
init 3 切换级别
单用户修改root密码(常用语Linux忘记密码)
init 1
为内核传参数 1 或者 single 进入
1:在启动的时候
输入进入如下画片 按照提示输入e(edit)
2:
进入如下界面,接续按e
3:编辑行
为内核传参数 1 或者 single
输入enter键保存按esc返回
这时系统就会进入单用户模式
单用户模式下不启动任何服务
单用户模式直接以root用户登录,并且不需要密码
登录过后可以使用passwd修改root密码
但是这样就存在一个问题了,任何用户登录这台机子都可以更改你的密码的。
所以我们需要做的是 grub加密
控制台输入 命令 grub -md5 -crypt
然后 编辑 grub.conf 加入如下 password --md5 加密后的密码
这样就给grub加密了,再次编辑grub文件会体术输入密码
linux启动流程
下面从操作系统角度分许一下
BIOS找到可启动设备后执行其引导代码 MBR 512字节。 引导代码为 MBR的前446字节。
MBR 是英文Master Boot Record的缩写,中文意为主引导记录。硬盘的0磁道的第一个扇区称为MBR,它的大小是512字节,而这个区域可以分为两个部分。第一部分为pre- boot区(预启动区),占446字节;第二部分是Partition table区(分区表),占66个字节,该区相当于一个小程序,作用是判断哪个分区被标记为活动分区,然后去读取那个分区的启动区,并运行该区中的代码。
MBR的详细资料,大家可以参考这篇文章
GRUB
是现在linux使用的主流引导程序,可以用来引导现在所有的操作系统,
GRUB的相关文件保存在/boot/grub中,我们看下其下面目录
/boot/grup stage1 MBR 改命令意思是引导 xxx_stage1 文件
GRUB配置文件在/boot/grub/grub.conf里面。
root (hd0,1) 意思为操作系统存放在第一块硬盘的第一个分区
kernel
MBR的引导代码将负责找到并加载Linux内核
Linux内核一般保存在 /boot/vmlinuz-版本 不同版本的linux不一样
一般还会加载内核模块包打包文件: /boot/initrd-2.6.18-128.el5.img(不同版本不一样)
Linux为kernel保持kernel的精简将一些不常用的驱动、功能编译成模块。在需要的时候的时候动态加载,
而这些模块当场被打包存为一个initranmfs文件。
早期版本Linux使用initrd文件,initramfs是initrd的替代化版本,比initrd更加节省空间、更加灵活。
命令dmesg可以查看本次启动时内核的输出信息
init命令
init是linux系统运行的第一个进行。
系统调用/etc/rc.d/rc.sysinit负责对系统进行那个初始化,挂载文件系统,并且根据运行级别启动相应的服务。
Linux运行级别:
0 关机
1 单用户模式
2 不带网络的多用户模式
3 多用户模式
4 未使用
5 x11图形化模式
6 重新启动
可以使用 cat /etc/inittab查看启动级别
可以使用
cat /etc/init 分开保存配置文件
/etc/rc0.d
/etc/rc1.d 运行级别时的启动相关的服务 runlevel 当前的运行界别
命令
init 3 切换级别
单用户修改root密码(常用语Linux忘记密码)
init 1
为内核传参数 1 或者 single 进入
1:在启动的时候
输入进入如下画片 按照提示输入e(edit)
2:
进入如下界面,接续按e
3:编辑行
为内核传参数 1 或者 single
输入enter键保存按esc返回
这时系统就会进入单用户模式
单用户模式下不启动任何服务
单用户模式直接以root用户登录,并且不需要密码
登录过后可以使用passwd修改root密码
但是这样就存在一个问题了,任何用户登录这台机子都可以更改你的密码的。
所以我们需要做的是 grub加密
控制台输入 命令 grub -md5 -crypt
然后 编辑 grub.conf 加入如下 password --md5 加密后的密码
这样就给grub加密了,再次编辑grub文件会体术输入密码
相关文章推荐
- Linux入门-8 Linux系统启动详解
- linux系统启动过程详解
- Linux基本操作系列(二):在CentOS 6.8系统上安装Tomcat并配置自动启动
- Linux系统启动过程详解
- 详解linux系统的启动过程及系统初始化
- Linux系统启动详解
- Linux系统启动流程详解
- Linux系统启动流程详解
- linux系统启动过程详解-开机加电后发生了什么 --linux内核剖析(零)
- dmesg命令_Linux dmesg 命令用法详解:显示Linux系统启动信息
- 详解Linux系统中Oracle数据库程序的启动和关闭方式
- 【嵌入式Linux学习七步曲之第三篇 Linux系统bootlaoder移植】U-BOOT全线移植分析系列之四--U-boot如何引导Linux内核启动?
- Linux 系统启动流程详解
- Linux基本操作系列(二):在CentOS 6.8系统上安装Tomcat并配置自动启动
- Linux系统启动过程详解
- Linux学习之CentOS(二十一)--Linux系统启动详解
- Linux系统详解 第六篇:系统的启动、登录、注销与开关机
- linux系统启动流程详解
- 详解linux系统的启动过程及系统初始化
- 详解Linux 系统启动过程