目录
一、Linux的系统开机过程
1.1 开机自检
当用户开启服务器后,根据BIOS里的启动设备来启动系统(通常有硬盘和光盘)并检查CPU,硬盘等硬件信息。
1.2 MBR引导
MBR引导:是存放在硬盘中的引导程序,将系统控制权传递给包含操作系统引导文件的分区,并启动分区中的grub引导程序(共512字节,446字节属于配置文件,66字节属于分区表)
1.3 GRUB引导菜单
统一资源引导器,它的工作是提供一个菜单,允许用户选择要启动的系统或不同的内核版本;把用户选定的内核装载到RAM中的特定空间中,然后解压、展开,而后把系统控制权移交给内核。
Grub目前有两个版本:
1、GRUB 0.X:Grub Legacy(CentOS5、6,version 0.97);
2、GRUB 1.X:Grub2(CentOS7,version 1.96)。
1.4 加载Linux内核
负责在硬件和系统之间互相调度,充当翻译官,当内核拥有完全控制权时,内核就把自己和镜像文件加载到内存当中。
可以进入/boot目录下查看默认内核文件位置“/boot/vmlinuz-3.10.0-514.el7.x86_64”
1.5 init进程初始化
系统的第一个正在运行的程序。
加载硬件驱动程序,内核把init进程加载到内存中运行。
init 系统中有多个运行模式。如果没有默认的运行模式,那么用户将进入系统控制台,手动决定进入何种运行模式。
二、Systemd
2.1 systemd概述
systemd是Linux操作系统的一种init软件
centos7中采用采用全新的启动方式,取代传统的sysvinit
centos7中运行的第一个init进程是:/lib/systemd/systemd
2.2 systemd单元类型
单元类型 | 扩展名 | 说明 |
service | .service | 描述一个系统服务 |
socket | .socket | 一个进程间的套接字 |
device | .device | 内核识别的设备文件 |
mount | .mount | 文件系统的挂载点 |
automount | .automount | 文件系统的解挂载点 |
swap | .swap | 内存交换设备或交换文件 |
path | .path | 文件中的目录 |
timer | .timer | 定时器 |
snapshot | .snapshot | Systemd 运行状态 |
scope | .scope | 描述一些系统服务的分组信息 |
slice | .slice | 在Cgroup的一组通过层次组织的管理系统过程 |
target | .target | 描述一组systemd的单元 |
2.3 运行级别所对应的systemd目标
运行级别 | systemd的target | 解释 |
0 | target | 关机状态,使用此级别会关机 |
1 | rescue.target | 单用户模式 |
2、4 | multi-user.target | 用户自定义运行级别,通常识别为级别3。 |
3 | multi-user.target | 字符界面的完整多用户的模式,大多数服务器主机运行在这个级别 |
5 | graphical.target | 多用户,图形界面。继承级别3的服务,并启动图形界面服务。 |
6 | reboot.target | 重启 |
emergency | emergency.target | 急救模式(Emergency shell) |
三、模拟实验
3.1 模拟备份修复扇区实验
配置一块硬盘并做好分区
[root@localhost ~]# lsblk 查看硬盘
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 30G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 29G 0 part
├─centos-root 253:0 0 27G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 10G 0 part
└─sdb2 8:18 0 5G 0 part /mnt
sdc 8:32 0 20G 0 disk 添加的硬盘
sr0 11:0 1 4.2G 0 rom /run/media/root/CentOS 7 x86_64
[root@localhost ~]#
[root@localhost ~]# fdisk /dev/sdc 开始分区默认配置
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0xc6063539 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]#
[root@localhost ~]# mkdir /data 创建目录
[root@localhost ~]# mkfs.xfs /dev/sdc1 格式化分区
meta-data=/dev/sdc1 isize=512 agcount=4, agsize=1310656 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=5242624, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]# mount /dev/sdc1 /data 将分区挂载到创建的目录下
备份MBR扇区数据到备份磁盘( /dev/sdc1)
[root@localhost ~]# dd if=/dev/sda of=/data/mbr.bak bs=512 count=1
由于实验需要需要模拟破坏分区
[root@localhost ~]# dd if=/dev/zero of=/dev/sda bs=512 count=1
首先确保系统光盘正常加载 reboot重启设备,此时设备进入系统安装导向界面,选择"Rescue a CentOS Linux system"选项,进入急救模式
进入输入1选择Continue并按Enter 键继续
按Enter 键继续进入下一步
(创建一个目录将备份磁盘的分区挂载到新建的目录下,并恢复数据,重启设备。)
设备配置完成
3.2 更改root用户密码
假设交接员工忘记超级管理密码时如何配置更改密码
(配置前提光盘启动运行正常)
首先进入更改系统的启动项选择CD-ROM Drive(虚拟机ESC键)
进入急救模式
进入急救模式后选择1,并回车更改密码
(sh-4.2# chroot /mnt/sysimage 重设root密码bash-4.2# passwd root)
此时再次修改启动项为硬盘启动(Hard Drive)
查看连接xshell是否需要输入密码