当前位置:   article > 正文

Linux操作系统启动流程汇总_启动linux系统,并从控制台进入图形界面,写出操作步骤

启动linux系统,并从控制台进入图形界面,写出操作步骤

1、内核设计风格:

    单内核: 把所有功能统统都做进内核(Linux)(在Linux系统上,线程被称为"轻量级进程LWP")

        模块化设计=核心+各种外部内核模块(ko,内核专用模块)

                                   扩展:so,共享对象(用户空间中各种进程所用到的共享模块)

                  核心可以动态加载任何的外围内核模块

    微内核:  内核很小,只是一个核心,他那各种的外围程序都做成他的子系统,需要用到哪个子系统,由内核去调动(Windows)

Redhat (红帽) : 核心(核心很小,但核心上布满了孔洞,任何一个模块需要的时候,只需要把它装载进他所在的位置就可以)

               这就是动态加载(我用到哪个模块,模块本身我把它放在外围的路径下,当我们需要时,让核心自动去装载这个功能)

模块位置(红帽系列) :1、在/lib/modules/“内核版本号命名的目录”/

                    2、内核的命名:vmlinux-版本号

 

详解

arch :跟你的平台相关的,驱动你的CPU的

crypto :加密解密相关的模块

drivers :驱动

fs :文件系统

kerne :内核自身额外的其他功能

lib :库

net :网络

sound :声卡

ldd :显示共享库的依赖关系,显示的结果是:  库名称   库路径

ramfs :把内存模拟成磁盘来用, (用来识别对应设备的驱动)

chroot :创建一个伪根,语法:chroot  伪根目录     /bin/bash

2、运行级别(启动的服务不同,判定的级别不同)

/etc/inittab

0 :halt 关机

1 :单用户模式(直接登录管理员,不需要密码)或使用s

2 :多用户模式,不启用NFS

3 :正常多用户模式(文本模式)

4 :预留

5 :图形界面

6 :reboot重启

3、详解启动过程

bootloader (MBR):由系统安装程序提供

              Linux常用的bootloader有两种

                                      LILO:Linux loader,在8G以上的分区不能引导,在嵌入式系统上使用

                                     GRUB:统一的bootloader

                                                GRUB分为两个阶段:

                                                             stage1 :被装在MBR中,目的用于引导第二阶段

                                                            stage1.5 :  帮助我们识别系统的文件系统,用与支持下一阶段

                                                             stage2 :真正用于引导操作系统,位于内核所在的分区,/boot/grub/

/etc/grub.conf

default=0    --->设定默认启用的title的编号

timeout=5    --->等待用户选择的超时时间(秒)

splashimage=(hd0,0)/grub/splash.xpm.gz    --->指定grub背景图片

hiddenmenu     --->隐藏菜单

title CentOS (2.6.32-358.el6.i686)    --->标题,用于定义当前系统的不同版本的内核(可自由修改)

         root (hd0,0)     --->内核文件所在的设备,对grub而言,所有的硬盘类型一律认为hd, 前面为第几块硬盘,后面为分区,用逗号隔开

         kernel /vmlinuz-2.6.32-358.el6.i686 ro root=/dev/mapper/vg_pc-lv_root rd_   --->内核文件路径及传递给内核的参数

    NO_LUKS rd_LVM_LV=vg_pc/lv_swap crashkernel=128M rd_NO_MD rd_LVM_LV=vg_pc/lv_root   --->

     LANG=zh_CN.UTF-8  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet

         initrd /initramfs-2.6.32-358.el6.i686.img    --->ramfs文件路径,"initrd",安装操作系统最后一步生成的。

4grub界面应用

e :编辑

a :修改内核参数

c :进入命令行界面

选择我的内核敲e键进行编辑,进入二级菜单!

这个时候我们想编辑某一行直接敲e键就可以

对着kernel敲e键,进入编辑界面,可以修改运行级别,编辑完成之后敲回车。

删除一行用d键,新增一行用o

完成之后敲b键,启动系统!

4.1grub密码

1、使用 grub-md5-crypt命令 ,生成一个用md5加密的字符串

2、复制生成的字符串到/etc/grub.conf文件中,粘贴在title上面,

3、重启之后,敲p键输入密码,才能编辑内核

4、想要输入密码才启动系统就把密码复制到title下面。

查看运行级别

第一个是上一次的运行级别

第二个是现在的运行级别

或者  who  -r 命令

查看内核版本号

uname  -r 简单显示

uname  -a 显示详细

4.2 、修复grub

1、使用命令把boot的分区中的grub破坏掉 dd   if=/dev/zero  of=/dev/sda  count=1  bs=400

2、使用光盘进入系统安装界面,选择 Rescue Install system,进入救援模式。

3、选择语言以及键盘类型,随后问你需不需要开启网络

4、进入Rescue界面,选择Countinue,

5、三个选项(shell:进入命令行模式、fakd:诊断模式、reboot:重启电脑)选择shell

6、进入命令行模式之后输入grub,进入grub界面。

7、grub> root  (hd0,0)  --->指定内核分区

8、grub>setup  (hd0)   --->安装grub到指定分区,只需要写磁盘位置就好,不需要分区。

9、grub>find (hd0,0)/    --->搜索内核文件

5.1kernel初始化过程

设备探测

驱动初始化(可能从initramfs文件中装载驱动模块)

以只读方式挂载根文件系统(若以读写模式挂载文件系统,任何一个bug都会导致文件系统崩溃)

装在第一个进程init(PID号1)

5.2initsbin/init

init是/sbin/init,他要读取的配置文件是/etc/init。

在红帽6.0之后,这个init程序不再使用传统的init 程序(执行速度慢),换成了upstart,,但是文件名依然是init.

         upstart:由Ubuntu公司开发的,实现并行启动好多进程,使用d-bus,这是一种系统内部各子系统之间IPC的机制(IPC:进程间通信)

                基于事件来完成系统之间启动(事件驱动)

                它是由一堆配置文件来协助工作的(有一个目录/etc/init/,都以.conf结尾的,他们都是基于事件驱动的方式来编写的)

               

         systemd:比upstart还要好的init程序,纯粹完整意义上并行启动多个程序的机制

ACTION(红帽5中/etc/init文件详解)

initdefault:设置默认级别

sysinit:系统初始化

wait:等待级别切换至此级别是执行

respawn:一旦程序终止(....tty...),会重新启动

5.3/etc/rc.d/rc.sysinit完成的任务

激活udev和seLinux;

根据/etc/sysctl.conf文件,来设定内核参数;

设定系统时钟;

装载键盘映射;

启用交换分区;

设置主机名;

根文件系统检测,并以读写方式重新挂载

激活软RAID和LVM设备

启用磁盘配额

清理过期的锁和PID文件

专业书籍、问题答疑、教学视频、在线实验平台等服务请移步:www.noylinux.com《零基础趣学Linux》
如果此文章有帮助到您,还请麻烦动动您的小手点个赞,谢谢~   
Linux运维技术交流q:962822359

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/414576
推荐阅读
相关标签
  

闽ICP备14008679号