Centos6 / Centos7 구현 : GRUB 구성 파일을 삭제하면 시스템이 복구되고 단일 사용자 모드로 들어가 사용자 암호를 복원하며 GRUB 암호화가 구현됩니다.

시스템 시작 프로세스의 12 가지 FAQ 단계

12.1 grub.conf를 삭제 한 다음 시스템을 다시 시작하여 복구하십시오.

Centos7 시스템

Centos7 시스템은 Grub2 버전을 사용하여 시스템을 부팅합니다. 부팅 메뉴는 menu.lst의 수동 구성 대신 / boot에서 자동으로 생성됩니다. 구체적인 내용은 다음 구성 파일을 참조하십시오 : /boot/grub2/grub.cfg이 파일은 grub2-mkconfig가 실행될 때마다 자동으로 생성되므로 커널 업그레이드 후이 파일을 수정하면 무효화됩니다.

  1. 기록 시스템 관련 매개 변수
[root@ ~ 06:12:14]#df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       10190100 5330036   4319392  56% /     #重点记录根目录路径
...
[root@ ~ 06:08:30]#cat /etc/fstab                     #记录根分区和boot分区的UUID
#
# /etc/fstab
# Created by anaconda on Mon Jun 22 18:51:04 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=ea1d8d1c-3e80-4a6f-98cc-c83d8897ff86 /                       ext4    defaults        1 1
UUID=35521718-2203-497c-b690-d44622dc6704 /boot                   ext4    defaults        1 2
...

  1. 이 디렉토리에서 /boot/grub2/grub.cfg를 이동 한 다음 시스템을 다시 시작하면 호스트가 다음 인터페이스로 들어갑니다.
mv /boot/grub2/grub.cfg /root
init 6 #重启

여기에 사진 설명 삽입

  1. 현재 디스크 정보보기
    여기에 사진 설명 삽입

  2. 변수 설정 (탭 키를 통해 경로 완성)

grub> set root=(hd0,msdos1)  #设置boot分区
grub> linux /vmlinuz-3.10.0-862.e17.x86_64 ro root=/dev/sda2#root=系统根分区路径或UUID=?
grub> initrd /initramfs-3.10.0-862.e17.x86_64.img #内核初始化环境变量设置
grub> boot #启动系统
  1. 시스템에 성공적으로 로그인하고 grub.cfg 파일을 다시 생성하십시오.
grub2-mkconfig -o /boot/grub2/grub.cfg

여기에 사진 설명 삽입

GRUB 모드에서 루트 파티션 경로를 모르면 위의 방법을 수행 할 수 없습니다. 이때 CD-ROM 부팅 방법을 사용하여 입력해야합니다.

구조 모드.

복구 모드로 들어간 후 다음 명령을 실행하십시오.
chroot / mnt / sysimage # 일시적으로 시스템 루트 디렉토리를 변경하십시오.

grub2-mkconfig -o /boot/grub2/grub.cfg # 현재 디렉토리는 이미 시스템 루트 디렉토리입니다

Centos6 시스템

구성 파일 * : /boot/grub/grub.conf, grub과 커널이 동일한 디렉토리에 있는지 확인합니다. 또한 사용자가 구성 파일 일관성을 사용할 수 있도록 구성 파일을 가리키는 링크 파일 /etc/grub.conf를 생성합니다 *

  1. 시스템 관련 매개 변수 기록 (강조 : 루트 파티션 마운트 지점, 일부는 논리 볼륨, 내 시스템은 / dev / sda3)
    여기에 사진 설명 삽입

  2. grub.conf를 디렉토리 밖으로 이동

여기에 사진 설명 삽입

  1. 시스템 초기화 6을 다시 시작하고 grub 시작 명령 줄을 표시합니다.
    여기에 사진 설명 삽입

  2. 매개 변수 구성 명령을 실행 한 후 부팅을 실행하여 다시 시작합니다.
    여기에 사진 설명 삽입

  3. 시스템에 다시 로그인하고 grub.conf를 / boot / grub 디렉토리로 복원합니다 (이동 된 경우 mv 명령을 사용하여 파일을 다시 이동).
    여기에 사진 설명 삽입

12.2 단일 사용자 모드로 들어가 사용자 암호 복원

Linux 시스템의 운영 수준은 6 단계로 구성되며 단일 사용자 모드는 수준 1입니다. 단일 사용자 모드 로그인 시스템은 주로 시스템 루트 암호를 수정하는 데 사용됩니다. 모든 사람이 단일 사용자 모드에 들어갈 수있는 것은 아닙니다. 로컬 컴퓨터를 통해서만 단일 사용자 모드 시스템에 로그인 할 수 있지만 원격으로 로그인 할 수는 없습니다 (많은 ssh 서비스가 1 실행 수준을 제공하지 않음).

Centos7 시스템

  1. init 6 시스템을 다시 시작하고 카운트 다운 인터페이스에서 문자 e를 눌러 편집 모드로 들어갑니다.
    여기에 사진 설명 삽입

  2. ro 문자열이있는 줄을 찾아 ro를 'rw init = / sysroot / bin / sh'로 변경하고 ctrl + x를 눌러 수정 후 사용자 모드로 들어갑니다.
    여기에 사진 설명 삽입

  3. 단일 사용자 모드로 들어간 후 다음 명령을 입력하여 비밀번호를 변경하십시오.
    여기에 사진 설명 삽입

  4. 남은 단계

touch /.autorelabel #修改完密码后要创建的文件以让selinux生效(无创建则无法重启)
exit #退出chroot
reboot #重启系统,生效

Centos6 시스템

  1. 시스템을 시작하고 부팅 할 때 아무 키 (e) 나 눌러 다음과 같이 grub 메뉴 인터페이스로 들어갑니다.
    여기에 사진 설명 삽입
  2. grub 메뉴 인터페이스 하단의 도움말 프롬프트에 따라 문자 a를 눌러 시스템 부팅 전에 커널 매개 변수를 수정하고 커널 줄 끝에 + space + single을 추가 한 다음 Enter 키를 누릅니다.
    여기에 사진 설명 삽입
  3. 시스템을 시작합니다. 즉, 단일 사용자 모드로 들어가 암호 변경을 시작합니다.
    여기에 사진 설명 삽입

12.3 GRUB 암호화

Centos7 시스템

GRUB을 암호화하는 이유는 무엇입니까? grub이 암호화되지 않은 경우 다른 사용자가 임의로 단일 사용자 모드로 들어가 시스템 계정 암호를 수정할 수 있으므로 보안 위험이 있습니다.

  • 현재 Centos 버전보기
    여기에 사진 설명 삽입

  • 비밀번호 설정 (저장)

[root@ ~ 11:13:00]#grub2-mkpasswd-pbkdf2
Enter password: 
Reenter password: 
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.216202CEB237E45256DD02E80D7FAC425A4CAEEEED8850541CAB02D19A138DF224AEB2603A7CE9A7C0BE6C3FA94015AA95091B8DFE67F308AA00972FA43C0EA6.50165007B8DC1514BF95859DD8852B0AF922E0BF60773382D721A33D1A1F6C308B53C81821A850074162A3DAC95A4D087298A2EF1C61B7232E7CC431DF2CBE58
  • 구성 파일 수정
[root@ ~ 11:13:27]#vim /etc/grub.d/00_header
cat <<EOF
set superusers='root'  #单用户使用的用户名
password_pbkdf2 root grub.pbkdf2.sha512.10000.216202CEB237E45256DD02E80D7F    AC425A4CAEEEED8850541CAB02D19A138DF224AEB2603A7CE9A7C0BE6C3FA94015AA95091B    8DFE67F308AA00972FA43C0EA6.50165007B8DC1514BF95859DD8852B0AF922E0BF6077338    2D721A33D1A1F6C308B53C81821A850074162A3DAC95A4D087298A2EF1C61B7232E7CC431D
F2CBE58   			   #尾部是加密密码,一定要加上,用于输入密码判定
EOF
  • grub.cfg 파일을 다시 컴파일하십시오.
[root@ ~ 11:22:38]#grub2-mkconfig -o /boot/grub2/grub.cfg 
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-862.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-862.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-09726f1d0db4408cbc2fe751f0b185ea
Found initrd image: /boot/initramfs-0-rescue-09726f1d0db4408cbc2fe751f0b185ea.img
done
  • init 6 시스템을 다시 시작하고 카운트 다운 인터페이스에서 문자 e를 누르면 grub 로그인 인터페이스가 팝업되고 (Grub 암호화가 적용됨) 사용자 이름과 암호를 입력하고 Enter 키를 누릅니다.

여기에 사진 설명 삽입
여기에 사진 설명 삽입

Centos6 시스템

  1. MD5 알고리즘을 기반으로 암호화 된 비밀번호 생성
[root@lin ~]# grub-md5-crypt
Password: 
Retype password: 
$1$mgqu/1$5vcAFwFSL4Xtb574S2.U30

2. /boot/grub/grub.conf 파일에 암호 문자열을 추가합니다.

[root@lin ~]# vi /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda3
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
password --md5 $1$mgqu/1$5vcAFwFSL4Xtb574S2.U30  #添加在这里是对grub菜单整体加密,锁定编辑模式
title CentOS 6 (2.6.32-696.el6.x86_64)
#添加在这里是对某个菜单进行加密,不能锁定编辑模式
        root (hd0,0)
        kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=56*****3a-6**4-**4b-adb7-d40********e01 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32-696.el6.x86_64.img
~
  1. init 6을 눌러 시스템을 시작하고 아무 키나 눌러 grub 메뉴 인터페이스로 들어갑니다. 다음 프롬프트는 grub 편집 모드로 들어가기 위해 암호를 입력하기 위해 p 키를 눌러야합니다 (마지막의 프롬프트 정보가 변경됨).
    여기에 사진 설명 삽입
    여기에 사진 설명 삽입

추천

출처blog.csdn.net/weixin_31789689/article/details/108060598