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的数据
posted @ 2023-05-31 23:32  Edmond辉仔  阅读(88)  评论(0)    收藏  举报