您的位置:首页 > 运维架构 > Linux

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文件会体术输入密码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: