系统的初始化和服务

1. Linux 系统启动流程

  • 打开计算机,从主板 BIOS(Basic Input/Out System)读取其中所存储的程序,引导你找到存储系统的硬件(如光盘、硬盘等)
  • 接下来,机械手臂读取硬盘中起始的 512 bytes 程序,这个叫作 主引导记录MBR(master boot record),MBR 会引导你找到该硬盘中存储系统的分区(partiton),并找到加载系统的程序 boot loader
  • Boot Loader 存储系统的相关信息,如系统名称、系统内核(kernel)所在位置等,常见的 boot loader 有 GRUB(Grand Unified BootLoader 多重操作系统启动管理器) 和 LILO等
  • 随后 boot loader 会帮助我们加载系统内核 kernel,它的任务是管理计算机的硬件资源,充当软件和硬件的接口
  • 随后 kernel 会启动一个 init 进程 ,Linux 有 7 个系统级别,如果是图形界面,默认是 init 5
  • 到此计算机就完成量启动工作

所以完整的启动流程为:BIOS —— MBR ——boot loader (GRUB)—— kernel —— init

MBR 会在启动盘的第 1 个块中,大小为 512 bytes,前 446 b 程序代码用来选择 boot partition(分区),也就是哪个分区来装入开机用的代码。

硬盘最小单位是一个扇区,一个扇区大小为 512 bytes

2. init

init 配置文件在 /etc/inittab,init 程序要做的工作:

  • 决定默认启动哪个运行级别(run levels)
  • 执行一些系统初始化的脚步(程序)来初始化操作系统
run level 功能
0 关机,不能设置为 initdefault(即不能设置为默认的运行级别
1 单用户模式,只有 root 用户可以登录,用于系统维护的
2 多用户模式,但是没有启动网络功能
3 多用户模式,启动了网络功能,但是为文字界面
4 用户自定义模式,默认与 run level 3 相同
5 与 run level 3 相同,并且启动了 X11 (即图形界面)
6 重新启动系统,不能设置为 initdefault

2.1 怎么进入单用户模式

在开启虚拟时,会出现有 5 s 的读秒时间,此时按下任意键,进入 GRUB 程序,在这可以选择系统进入,如下图所示:

接着按下字母 e,进入 kernel 选项,选择相应内核(即第 2 项):

内核选择好之后,再按字母 e,进入内核启动编辑模式,在参数末尾输入 single 或 1,回车:

出现如图 1 同样的界面,按下字母 b,即可进入单用户模式,可以进行密码修改(passwd)或者磁盘分区修复(e2fsck -f /dev/systemvg/varlv)等等

2.2 GRUB 加密

GRUB(Grand Unified BootLoader 多重操作系统启动管理器) 加密,就是为了防止有人在不知道系统密码的时候,使用单用户模式,从而修改密码。

可以通过给 GRUB 加密即可防止被其他人登录单用户模式,GRUB 有个配置文件etc/grub.conf,修改它即可

  • default = 0:表示默认选择第一个操作系统启动
  • timeout:表示读秒时间为 5 s
  • splashimage:启动时的 logo
  • hiddenmenu:隐藏文件(在进入内核启动编辑模式后出现,即按下字母 e 后出现)
  • title centOS 6(2.6.32-642.el6.x86_64):为系统版本,多个系统为多个 title

设置 grub MD5 加密命令

首先在 grub-md5-crypt 中生成经过 md5 加密算法的密文

[root@hj ~]# grub-md5-crypt
Password:
Retype password:
$1$72yxxxxxxxxxxRldziX32. # 使用 md5 算法加密后的密码,复制

复制密文,编辑 grub.conf 文件,在 title 之上,hiddenmenu 之下,新建一行 password 文件,保存退出即可

vim /etc/grub.conf
hiddenmenu.....
password --md5 $1$72yxxxxxxxxxxRldziX32.
titile...

经过 GRUB 设置后,再想进入使用单用户模式,就需要输入密码(此密码为你设置的密码,非经 md5 加密的密文)

2.3 BIOS 加密

GRUB 加密也不是完全的安全,通过 BIOS 中的救援模式亦可破解

00. 通过BIOS 破解 GRUB 方法:

  • 在开机时,按下 f2(或f12、esc)进入 BIOS 设置,在 boot 中选择以 CD-ROM(即光盘中启动,因为虚拟机大部分都是模拟光盘装的系统),然后会进入如下界面,选择第三个进入 救援模式

  • 进入救援模式之后,同样地进入了 root 用户登录的命令行界面,原来的系统会被挂载到 /mnt/sysimage 目录下
  • 进入 /mnt/sysimage 目录,打开 etc/grub.conf,删除 grub.conf 中的 password ,重启
  • 再设置 BIOS,以本地硬盘启动,再进入单用户模式
basg-4.1# cd /mnt/sysimage/
ls
cat etc/grub.conf

01. BIOS 加密方法:

f2 进入 BIOS 后,选择 Security,里面有一个 Set Supervisor Password,输入密码,f10 保存退出即可。

注意:即使 BIOS 加密也不是最安全的,拔掉 BIOS 电池,代码被还原,加密自然破解

3. 关机和重启命令

3.1 关机命令

shutdown -h now
halt
poweroff
init 0

3.2 重启命令

shutdown -r now
reboot
init 6
ctrl + alt + delete 键

4. 查看系统内核、版本信息命令

cat /etc/redhat-release		# 查看系统版本信息
uname -r # 内核版本
uname -a # 内核详细信息

Linux 系统初始化和服务的更多相关文章

  1. linux系统的crond服务

    linux系统中有一个服务,用来做周期性运行的例行任务,这个服务就是crond服务.执行这项服务的命令 就是crontab命令了.而linux下的任务调度又分为系统任务调度和用户任务调度两个大类. 系 ...

  2. 使用mybatis assembly插件打成tar包,在linux系统中运行服务

    使用mybatis assembly插件打成tar包,在linux系统中运行服务 assembly插件插件地址: 链接:https://pan.baidu.com/s/1i6bWPxF 密码:gad5 ...

  3. 『学了就忘』Linux服务管理 — 75、Linux系统中的服务

    目录 1.服务的介绍 2.Windows系统中的服务 3.Linux系统中服务的分类 4.独立的服务和基于xinetd服务的区别 5.如何查看一个服务是独立的服务还是基于xinetd的服务 (1)查看 ...

  4. Day 6 Linux基础之正文处理、vi编辑和系统初始化和服务

    Linux基础之正文处理.vi编辑和系统化服务 一.正文处理命令及tar命令 1.归档 定义:归档(archiving)就是将许多文件(或目录)打包成一个文件. 目的:归档的目的就是方便备份.还原及文 ...

  5. linux系统初始化——文件系统初始化步骤

    linux文件系统初始化步骤 System V init启动过程 概括地讲,Linux/Unix系统一般有两种不同的初始化启动方式. 1) BSD system init 2) System V in ...

  6. Linux系统自带服务罗列

    /ect/services 文件列出了系统详细的服务 红色字体为常用服务 acpid ACPI(全称 Advanced Configuration and Power Interface)服务是电源管 ...

  7. Linux系统初始化过程及运行级别简介

    Linux开机过程: 1 开机自检(BIOS):初始化硬件,查找启动介质 2 MBR引导 3 GRUB引导菜单:GRUB程序安装在Bootloader 4 加载内核(kernel) 5 运行INIT进 ...

  8. Linux系统下DHCP服务安装部署和使用详解

    一.概述 DHCP :动态主机设置协议(英语:Dynamic Host Configuration Protocol,DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:用于内部网或 ...

  9. KALI LINUX系统初始化配置

    1.Kali Linux安装VirtualBox增强功能 VirtualBox增强功能介绍:物理机与虚拟机之间的文件共享.物理机与虚拟机之间的剪切板共享.虚拟机的direct3D支持,这样虚拟机窗口就 ...

随机推荐

  1. 怎么利用jquery.form 提交form

    说明:开发环境 vs2012 asp.net mvc c# 利用jQuery.form.js提交form 1.HTML前端代码 <%@ Page Language="C#" ...

  2. what is spring and what is spring for

    1 what is spring spring是一个轻量级的容器. 它使用依赖注入技术来构建耦合性很低的系统. 2 what is  spring for 用于系统的依赖解耦合.在一个系统中,A类依赖 ...

  3. 【题解】Coins(二进制拆分+bitset)

    [题解]Coins(二进制拆分+bitset) [vj] 俗话说得好,bitset大法吼啊 这道题要不是他多组数据卡死了我复杂度算出来等于九千多万的选手我还不会想这种好办法233 考虑转移的实质是怎样 ...

  4. table表格隔行变色

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. 推荐20个非常有帮助的web前端开发教程

    1. CSS Vocabulary 一个伟大的指向和点击的小应用程序,让你加高速度掌握 CSS 语法的各个不同部分,学习各个属性的正确的名称. 2. Liquidapsive 一个简单的信息化布局.通 ...

  6. 利用iOS原生系统进行人脸识别+自定义滤镜(GPUImage)

    人脸识别+滤镜效果(基于GPUImage实现的自定义滤镜) 最近碰到一个好玩的需求.说要客户端这边判定一下是否有人脸.在有的基础上.对相片做进一步的美化滤镜处理. 首先是人脸的识别判定; //将图片对 ...

  7. 在ubuntu怎样修改默认的编码格式

    ubuntu修改系统默认编码的方法是: 1. 参考 /usr/share/i18n/SUPPORTED 编辑/var/lib/locales/supported.d/* gedit /var/lib/ ...

  8. hihocoder 微软编程之美2015 初赛 第一场 (树算法 + 暴力思想 + 搜索思想)

    题目1 : 彩色的树 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给定一棵n个节点的树,节点编号为1, 2, …, n.树中有n - 1条边,任意两个节点间恰好有一条路 ...

  9. Linus Torvalds: 成功的项目源于99%的汗水与1%的创新

    2017年2月15日,在加利福尼亚州的开源领袖峰会上,由Linux基金会执行董事Jim Zemlin进行的一次采访中,Torvalds讨论了他如何管理Linux内核的开发以及他对工作的态度. Linu ...

  10. hdu 6103(Kirinriki)

    题目链接:Kirinriki 题目描述: 找两个不重叠的字符串A,B. 使得dis(A,B)<=m;\(dis(A,B)= \sum _{i=0}^{n-1} \left | A_i-B_{n- ...