Linux学习笔记17--Linux系统启动详解
多数操作系统的启动流程:
BIOS启动自检 ->MBR引导->执行引导程序GRUB->加载内核->执行init->runlevel
- BIOS(Basic Input Output System)
负责检查硬件并且查找可启动设备,如USB、CDROM、HD。
- MBR
BIOS找到可启动设备后执行其引导代码,引导代码为MBR(共512字节)的前446字节。
引导代码为操作系统的引导程序。
- GRUB
Grub是现在Linux使用的引导程序。(诸如window下的ntldr)
可以引导大多数的操作系统。
grub相关文件保存在/boot/grub。
grub配置文件为/boot/grub/grub.conf。
目录内含文件:
/boot/grub/stage1 #MBR引导代码的镜像文件,如果MBR损坏,可拷贝过去。
诸如/boot/grub/e2fs_stage1_5等以stage1_5后缀的文件是支持文件系统的加载文件。
/boot/grub/stage2 #stage1引导完后的第二个引导文件
- Kernel
MBR的引导代码将负责找到并加载Linux内核。
内核保存在:/boot/vmlinuz-2.6.32-279.el6.i686
一般还会加载内核模块打包文件:/boot/initramfs-2.6.32-279.el6.i686
为保持Kernel的精简,一些不常用的驱动、功能编译成为模块,在需要的时候动态加载,这些模块被打包保存为一个initramfs文件。
在需要的时候动态加载,而这些模块被打包保存为一个initramfs文件。
initramfs是initrd的替代优化版本(早期Linux使用initrd文件)。
通过dmesg命令或查看/var/log/dmesg文件,可查询此次启动的内核输出信息。(查询内核的某些故障有用)
- INIT
init是LINIX系统运行的第一个进程,也是所有进程的父进程。
init会一直存在,直到关机。
作用:调用 /etc/rc.d/rc.sysinit负责对系统初始化,挂载文件系统,并且根据运行级别启动相应服务。
Linux运行级别:
- 关机,
- 单用户模式,
- 不带网络的多用户模式,
- 多用户模式,
- 未使用
- XII图形化模式
- 重启
可通过/etc/inittab配置文件修改默认的运行级别;
每个级别对应的启动服务保存在/etc/rc.d/rc[0123456].d各目录中。
命令:
runlevel:显示上一个和当前运行的级别。
init:可改变当前的运行级别。
单用户修改密码:
为内核传递参数"1"或"single"可系统进入单用户模式;
单用户模式下不启动任何服务,并直接以root用户登陆,不需要密码。
此时可以使用passwd修改root密码。
GRUB加密:
通过在grub.conf中的grub.conf的启动配置的首行中加入如下参数即可对grub进行加密:
password –md5 …………………………………………… #点为密码
加密后的密码可以通过grub-md5-crypt生成。
Linux学习笔记17--Linux系统启动详解的更多相关文章
- Linux学习之文件特殊权限详解(SetUID、SetGID、Sticky BIT)(十一)
Linux学习之文件特殊权限详解(SetUID.SetGID.Sticky BIT) 目录 SetUID SetGID Sticky BIT SetUID SetUID简介 只有可以执行的二进制程序和 ...
- IP2——IP地址和子网划分学习笔记之《子网掩码详解》
2018-05-04 16:21:21 在学习掌握了前面的<进制计数><IP地址详解>这两部分知识后,要学习子网划分,首先就要必须知道子网掩码,只有掌握了子网掩码这部分内容 ...
- linux学习笔记2 - linux常用命令
转载请标注原链接:http://www.cnblogs.com/xczyd/p/5543731.html 第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装lin ...
- Linux学习笔记之Linux启动级别
对于绝大多数Linux程序员来说,进入Linux系统后一般看到的是黑乎乎的界面(开发模式),因为系统如果启动选择开发模式,会减少启动时间,优化内存等.但是通常我们刚安装完Linux系统,然后进去以后是 ...
- Linux学习笔记之Linux启动引导过程
早期时,启动一台计算机意味着要给计算机喂一条包含引导程序的纸带,或者手工使用前端面板地址/数据/控制开关来加载引导程序.尽管目前的计算机已经装备了很多工具来简化引导过程,但是这一切并没有对整个过程进行 ...
- ubuntu学习笔记-tar 解压缩命令详解(转)
tar 解压缩命令详解 -c: 建立压缩档案 -x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能 ...
- 【Java学习笔记之三十三】详解Java中try,catch,finally的用法及分析
这一篇我们将会介绍java中try,catch,finally的用法 以下先给出try,catch用法: try { //需要被检测的异常代码 } catch(Exception e) { //异常处 ...
- jQuery学习笔记之Ajax用法详解
这篇文章主要介绍了jQuery学习笔记之Ajax用法,结合实例形式较为详细的分析总结了jQuery中ajax的相关使用技巧,包括ajax请求.载入.处理.传递等,需要的朋友可以参考下 本文实例讲述了j ...
- Linux学习笔记之Linux相关知识
[想成为某一方面的大神,没有捷径可走,只能不断的记录.练习.总结.coding……] notes:主要从网上摘录了一些关于Linux的历史以及一些相关内容,以便对Linux系统有一定的了解.这不但可以 ...
- [读书笔记]C#学习笔记三: C#类型详解..
前言 这次分享的主要内容有五个, 分别是值类型和引用类型, 装箱与拆箱,常量与变量,运算符重载,static字段和static构造函数. 后期的分享会针对于C#2.0 3.0 4.0 等新特性进行. ...
随机推荐
- 2.Redis常用命令
setget 匹配Keykeys *keys na*keys na?e 判断指定的Key是否存在exists key 删除一个或者多个keydel key//删除一个del key1 key2//删除 ...
- FileUpload实现文件上传(包含多文件)
package com.hzml.serve; import java.io.File; import java.io.IOException; import java.io.PrintWriter; ...
- 关于IIS部署时出现“System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本”的问题解决摘要
系统环境:windows2008 X64 IIS版本:iis7 oracle客户端版本:11g,另外装了32位的客户端. 网站.net framework版本: 4.0 目前状况,IIS可以正常运行, ...
- Ruby FFI 入门教程
FFI是一个可以让用户使用Ruby调用C代码的gem.如果你需要执行一些系统底层调用,或者做一些高性能运算的话,FFI是一个很不错的选择. 1. 安装 执行gem install ffi即可.非常标准 ...
- 探秘Tomcat(一)——Myeclipse中导入Tomcat源码
前言:有的时候自己不知道自己是井底之蛙,这并没有什么可怕的,因为你只要蜷缩在方寸之间的井里,无数次的生活轨迹无非最终归结还是一个圆形:但是可怕的是有一天你不得不从井里跳出来生活,需要重新审视井以外的生 ...
- Kettle实现MapReduce之WordCount
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 欢迎转载 抽空用kettle配置了一个Mapreduce的Word count,发现还是很方便快捷的,废话不多说 ...
- 笔记:Html.Partial和Html.Action
1.带有Render的方法返回值是void,在方法内部进行输出:不带的返回值类型为MvcHtmlString,所以只能这样使用:@Html.Partial 对应 @{Html.RenderPartia ...
- Hyperledger中数据存取的实现
简介 本文介绍了在Hyperledger中数据存取的实现. API接口 Hyperledger提供基于key/value的数据存储,其中key是字符串,value则是二进制字节数组,Hyperledg ...
- SQL约束
SQL约束: 非空约束:就是不能为null: 主键约束(PK):唯一,不重复,并且不为空: 唯一约束:唯一,允许为空,但只能出现一次: 默认约束:如果不给值,默认值: 检查约束:范围以及格式限制: 外 ...
- Auto Mapper04(MVC中的配置)
学习如何在MVC项目中配置AutoMapper. 一:首先在MVC项目中引用AutoMapper的DLL文件,接着创建一个接口,这里面我们需要定义两个方法,接口里面的方法只能定义不能实现,也没有什么修 ...