Linux第一天
1. 硬件启动
- 打开电源
- POST自检:初始化硬件设备,检查系统硬件设备
(CPU、内存条、硬盘、键盘、鼠标) - BIOS自检:检查设备启动顺序,如果是硬盘启动,
则读取硬盘第一扇区(MBR,512字节)并执行MBR的
BootLoader。- MBR
MBR(Main Boot Record),是硬盘的0柱面,0磁道、
1扇区(第一个扇区),称为主引导扇区,也称为主引导记
录。
它由三部分组成:主引导程序(BootLoader)、硬盘分区
表DPT(Disk Partition table)和硬盘有效标志
(55AA)。
注:硬盘默认一个扇区大小为512字节。- grub2引导阶段
- 第一部分,主引导程序(BootLoader)占446个字节,负
责从活动分区中装载,并运行系统引导程序。 - 第二部分,硬盘分区表DPT占64个字节,有4个分区表项,
每个分区表项占16个字节,硬盘中分区有多少以及每一
个分区的大小都记录在其中。 - 第三部分,硬盘有效标志,占2个字节,固定为55AA。如果
这个标志位0xAA55,就认为这个是MBR。
- 第一部分,主引导程序(BootLoader)占446个字节,负
- grub2引导阶段
- BootLoader
不同的系统有不同的主引导程序(BootLoader)。
Windows使用的是NTLDR(NT Loader,Windows NT系
列操作
系统)、Bootmgr(Boot Manager,Windows
Vista,7,8,10),Linux一般使用的是grub(也叫
grub legacy)
和grub2。
- MBR
2. grub2引导阶段
centos6用的是grub centos7用的是grub2
加载两个镜像,再加载MOD模块文件,把grub2程序加
载执行,接着解析配置文件/boot/grub/grub.cfg,根据
配置文件加载内核镜像到内存,构建临时根文件系统
3. 系统内核引导
加载内核、驱动,切换到真正的根文件系统,执行初始
化程序/usr/lib/systemd/systemd
4. systemd初始化阶段
执行默认运行级别并准许操作系统启动本机基础服务、
执行/etc/rc.d/rc.local文件中用户自定义的脚本,最后出
现系统登录的界面。
二、系统启动级别
Linux分为7个启动级别:
- 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
- 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
- 运行级别2:多用户状态(没有NFS)
- 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式(常用)
- 运行级别4:系统未使用,保留
- 运行级别5:X11控制台,登陆后进入图形GUI模式(常用)
- 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
现在很多Linux系统都默认启动等级为5。如果我们想切换系统等级,可使用init命令
init 3
这样就可以切换到多用户状态且带有网络文件系统了。
这种方式对于CentOS7也适用。但想修改默认启动级别,
CentOS7同其他Linux稍显不同了。
对于传统的设置方法,只要修改/etc/inittab文件即可,
将默认的启动级别改为需要改动的级别。
打开CentOS7的/etc/inittab,发现该文件与其他
Linux不同:
按照该文件所说的,runlevels被targets所取代,即
CentOS7采用加载target的方式来替代之前的启动级别。
其中有两个重要的target:multi-user.target与
graphical.target。它们分别表示运行级别中的3与5级
别。
通过systemctl get-default可获得默认启动的
target
通过systemctl set-default设置默认启动的
target
那么,想修改为多用户状态只需执行:
systemctl set-default multi-user.target
修改为图形界面执行:
systemctl set-default graphical.target
注意:虚拟机安装完成后需关闭防火墙以及SELINUX。
#systemctl stop firewalld.service
#setenforce 0
检查网络状态:
#ping www.baidu.com
返回一串IP地址以及TTL TIME参数,说明网络正常
查看当前网卡IP信息
#ip addr
获取到192.168.11.xxx的IP地址说明IP信息正常
切换到网卡配置文件所在目录
#cd /etc/sysconfig/network-scripts/
查看当前目录文件
#ls -l
自己的网卡名称为ifcfg-开头的 ensxxxx或者eth0或1,输入时可以用tab补全
编辑网卡配置文件
#vi ifcfg-eth0
注意编辑自己虚拟机对应名称的配置文件,可输入ifcfg-e然后按tab键补全
进入vi
编辑器后,按a键进入编辑模式,按ESC键退出编辑
模式,:wq
保存退出配置文件。
删除行为当前光标所在行,退出编辑模式的情况下使用dd命
令,删除两行:快按两下dd
重启网卡服务:
#systemctl restart network
三、单用模式
1、开机时进入如下界面,(按下方向键盘,阻止系统自动继续)
按e键出现下面界面
按方向键下,定位到最后,找到“ro”一行,ro的意思是read only
,将“ro”替换成 rw init=/sysroot/bin/sh
,如下图
- 按Ctrl-x 进入单用户模式
- 执行
chroot /sysroot
。其中chroot
命令用来切换系统,/sysroot
/目录就是原始系统 - 如果要修改root密码
passwd
是修改root密码的命令,touch /.autorelabel
执行这行命令作用是让SELinux生效(或者干脆关闭SELinux)
如果不行,密码不会生效。按Ctrl+D,执行reboot重启生效。
如下图
- 如果因为启用x-window或者显卡驱动更新,无法进入桌面,可以修改默认启动级别(开机进入命令行模式)
systemctl set-default multi-user.target
设置成命令模式
init 3
切换到字符模式,有时只使用上面的语句没有效果
按下Ctrl+D后,执行reboot
四、grub加密
centos7.x操作流程
- 使用
grub2-mkpasswd-pbkdf2
命令创建密文(一定要保存记住自己设置的密码)
grub2-mkpasswd-pbkdf2
Enter password:
Reenter password:
- **在
/etc/grub.d/00_header
文件末尾,添加以下内容 (root 为单用户登录使用的用户名,第三行root后面为上一步加密后得到的密文,注意root和密文之间是空格隔开的不是换行符)
cat <<EOF
set superusers='root'
password_pbkdf2 root
grub.pbkdf2.sha512.10000.B157F42E96462AB239C03000F113D32EB18FD48073F1FC7D8F87A8F3B3F89F662424ECCAB901F3A812A997E547FD520F3E99D0E080F4FE8B05E019757E34F75B.29C83F87B4B6C086FC9A81E046CC3623CC5CF2F82128EDC3A0364894E429D4993B28563F82D71BF346188108CBD4341FC4A71B90E543581646B4E7EAE920C54AE0F
- 重新编译生成grub.cfg文件
grub2-mkconfig -o /boot/grub2/grub.cfg
** - reboot进入单用户模式检验
五、光盘修复模式
- 进入bios、从光盘启动
- 点击
Troubleshooting
- 进入到Troubleshooting界面,选择:
Rescue a CentOS Linux system
- 三点:进入到
Rescue
选项 按 ENTER键 选1 ,其他选项意思如下continue
:救援模式程序会自动查找系统中已有的文件系统,并可读写挂载到/mnt/sysimage
目录下。Read-Only
:会以只读的方式挂载已有的文件系统。Skip to shell
: 手动挂载
sh
切换bash
模式
chroot /mnt/sysimage/
- 执行命令
passwd root
六 bios加密
进入bios界面点按钮
bios破解:抠电池,就能还原