Linux系列-Linux系统启动详解

本文深入浅出地介绍了Linux系统的启动过程,从BIOS查找启动设备到MBR的执行,再到GRUB引导程序的选择,以及Linux内核的加载过程。同时,文章还详细解释了init进程的作用及Linux的不同运行级别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我对操作系统这些底层也不懂,下面都是我整理的一些资料,说的比较浅显。

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文件会体术输入密码












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值