Linux00--系统分区、启动流程、运行级别、破解root密码、系统加密
0 运维人员如何开展自己的工作?
1.画出架构图
服务器的数量与作用、软件的部署架构等
2.围绕三点展开工作
稳定性:监控
可靠性:备份、解决单点故障
性能优化 拓展性
1 系统分区方案
### 方案一:常规生产场景(工作)方案 三个分区
网络集群架构中的某个节点服务器(很多个功能相同的服务器)
即数据有多份或者数据不重要的服务器
/boot : 存放引导程序,建议大小是300-500MB # 500M更优
swap : 虚拟内存,1.5-2倍内存大小
ps: 工作中, 物理内存<8G,SWAP就 内存*1.5
物理内存>8G,SWAP就 8G
/ : 根分区,存放所有数据,剩余空间都给根
# 提示: /usr、/home、/var等分区和/共用一份分区,像Windows的C盘,所有数据和系统文件都放在了一起
### 方案二: 四个分区
数据库及存储角色的服务器,即有大量重要的数据的业务
/boot: 存放引导程序,建议大小是300-500MB
swap : 虚拟内存,1.5-2倍内存大小
/ : 根分区,50-200G,只存放系统相关文件,网站业务数据不放这里
/data:剩余硬盘空间大小,放数据库及存储重要数据的,data的名称也可以起别的名字
# 提示:本方案其实就是把重要数据单独分区,便于备份和管理
### 方案三: 三个分区 + 待分区
大门户网站,大型企业的分区思路
/boot: 存放引导程序,CentOS6给200M,CentOS7给200M
swap : 虚拟内存,1.5倍内存大小
/ : 根分区,50-200G,只存放系统相关文件,网站业务数据不放这里
剩余空间不分区,保留,将来分配给部门,由他们根据需求再分
# 提示:此方法更灵活,比较适合业务线比较多需求不确定的大企业使用
### 其他方案:
1 LVM:在线调整分区大小
1.性能差
2.没必要(事先规划好)!
2 操作系统软raid不要用
1.性能差,没有冗余
2.生产场景使用硬件raid
2 系统基础优化
1.Linux系统最小化安装
根据经验,选择安装包时应该按最小化原则,即不需要的或者不确定是否需要的就不安装,最大程度上确保系统安全。
2.安装常用的开发包组
# 在安装系统过程时,落了部分包组或者其他伙伴安装时没选,可通过yum安装
yum groupinstall "Compatibility libraries" "Base" "Development tools"
yum groupinstall "debugging Tools" "Dial-up Networking Support"
# 可以通过yum groupinfo包组查看具体安装的组件
3.可以查看选包的情况:yum grouplist
可以看到除了我们选择的外,系统还是默认安装了一些额外的软件包组。
注意:不要使用yum的删除功能删除软件,会删除相关依赖,导致意外问题。
4.安装系统补装工具命令
可以根据需求yum来安装下,例如:
[root@egon ~]# yum -y install tree nmap sysstat lrzsz dos2unix telnet bash-completion bash-completion-extras vim lsof net-tools rsync ntpdate nfs-utils
# 如果需要更新补丁则执行
yum update
5.配置网络
setup命令
→ Network configuration
→ Device configuration
→ eth0
→ 配置完依次点击“ok”
→ “save”
→ Save&Quit
→ Quit,这样就退出到命令行界面了。
# 该配置实质就是修改网卡的配置文件/etc/sysconfig/network-scripts/ifcfg-eth0 内容
3 系统启动流程
### 启动流程
# 1.加电自检(BIOS)
加电、启动BIOS、检测启动项目(从本地磁盘、U盘、光盘启动等)
# 2.MBR引导 (512k) dd </dev/zero> /dev/sda bs=1k count=400
读取启动盘的第一个扇区 512Bytes
包含是MBR主引导记录(446Bytes的引导程序BootLoader -> grub)
64Bytes的分区信息、2Bytes的结束标志
# 3.GRUB菜单 ---> 选择系统模式
GRUB加载操作系统的内核
1.读取运行级别
2.初始化系统 system init
3.启动服务
# 4.运行systemd centos7启动的第一个程序 systemd 进程号pid为0
-检查 /etc/systemd/system/default.target -> /usr/lib/systemd/system/multi-user.target
就是default.target 软链接到 对应的target
-找到 /etc/systemd/system/multi-user.target.wants/所有服务,并启动
# 5.建立终端
# 6.用户登录
### 拓展知识
# GRUB是什么?
GRUB是一个用于加载和管理系统启动的完整程序
它是Linux发行版中最常见的引导程序(bootloader)
引导程序是计算机启动时运行的第一个软件
它加载 操作系统的内核,然后再由内核初始化操作系统的其他部分(包括Shell、显示管理器、桌面环境等)
4 系统运行级别
### linux系统的运行级别:
# 对应 系统启动的target /usr/lib/systemd/system/下
0 : 关机 poweroff.target
1 : 单用户模式 rescue.target
# 禁止远程登录,不需要输入账号密码,进操作系统就是管理员账号 ==> 破解管理员root密码
2 : 多用户模式(没有文件系统,没有网络) multi-user.target
3 : 多用户模式(有文件系统,命令行) multi-user.target
4 : 系统未使用,保留 multi-user.target
5 : GUI模式(图形界面模式,有网络) graphical.target
6 : 重启 reboot.target
# 查看运行级别:
[root@localhost ~]$ runlevel
N 3
[root@localhost ~]$ who -r
run-level 3 2021-09-14 12:14
# 切换系统运行级别 centos6
init 3
# 修改默认运行级别 centos7
# 修改为多用户状态(3):
systemctl set-default multi-user.target
# 修改为图形界面执行(5):
systemctl set-default graphical.target
5 单用户模式破解root密码
# 原理:
在grub菜单下,编辑内核,进入单用户模式下(运行级别),破解root密码
1.开机时进入 选择内核界面 (按下方向键盘,阻止系统自动继续)
2.按e键出现内核编辑界面
3.按方向键下,定位到最后,找到“ro”一行,ro的意思是read only
将“ro”替换成 rw init=/sysroot/bin/sh
4.按 Ctrl + x 进入单用户模式
5.切换到原始系统目录
执行 chroot /sysroot/
ps: chroot命令 用来切换系统; /sysroot/目录 就是原始系统
6.修改root密码
执行 password root
输入新密码
7.让SELinux生效 (或者干脆关闭SELinux)
执行 touch /.autorelabel # 如果不行,密码不会生效。
8.重启系统生效
按Ctrl+D,执行reboot
# 注:若因为启用x-window或者显卡驱动更新,无法进入桌面,可以修改默认启动级别(开机进入命令行模式)
systemctl set-default multi-user.target # 设置成命令模式
init 3 # 切换到字符模式,有时只使用上面的语句没有效果
按下Ctrl+D后,执行reboot
6 GRUB加密
# grub加密的作用
进入grub菜单时,进行账户验证,从而防止其他人进行编辑内核,破解root密码
# 前提:
centos7.2+ 中引入了新的实用程序“grub2-setpassword”
# 1.设置grub2的密码 username是当前的用户名 一般就是root
执行 grub2-setpassword
Enter password:
Confirm password:
# 2.修改/boot/grub2/grub.cfg 文件 实际未使用这步
打开文件并使用密码搜索需要保护的启动条目
它以menuentry开头。找到条目后,从中删除 --unrestricted 参数 # restricted v.限制
原理:
若现在重新启动系统并尝试修改引导条目,系统将要求提供凭据
但 可以在没有凭据的情况下修改引导条目
故为了阻止未经授权的修改和启动,需要对 /boot/grub2/grub.cfg 文件进行更改
# 3.重启验证
reboot
只有当输入正确的用户名和密码时,才能进入 grub 菜单或者修改引导条目
7 光盘修复/救援模式破解root密码
# 原理:
就是BIOS启动后,MBR引导时,绕过原本 本机硬盘的系统(携带grub菜单的)
选择从光盘启动,从而绕过grub加密,进入系统
# 0.制作一个带有centos ISO镜像的光盘
虚拟机上,就是添加一个 CD/DVD
# 1.进入bios、设置优先从光盘启动
# 2.点击Troubleshooting troubleshoot n.故障排除
# 3.进入到Troubleshooting界面
选择:Rescue a CentOS Linux system
# 4.进入到Rescue界面里 按 ENTER键 选1 ,其他选项意思如下
1.continue : 继续
救援模式程序会自动查找系统中已有的文件系统,并可读写 的挂载到/mnt/sysimage目录下
2.Read-Only : 会以只读的方式挂载已有的文件系统
3.Skip to shell: 手动挂载
4.Quit(Reboot) : 退出重启
# 5.切换到本地硬盘 文件系统的shell环境(bash解释器)
chroot /mnt/sysimage/
# 6.执行命令
passwd root
# 7.重启,并设置BIOS,优先从本地硬盘启动
# 注:需要关闭 selinux 可在第5步,进入到原文件系统中 修改
8 BIOS加密
# 原理:
设置BIOS密码,防止别人制作启动盘,修改你的 BIOS的 硬盘启动优先级
# 开机时,按F2 ---> security ---> Set Supervisor Password Supervisor n.管理者
# 破解BIOS加密
扣掉 BIOS系统所在 主板的只读ROM芯片上 的电池,释放电池,从而清除BIOS的数据

浙公网安备 33010602011771号