Proceso de inicio del sistema Centos6 / Centos7 y soluciones a muchos problemas durante el inicio

Sección 12: Proceso de inicio del sistema Centos6 / Centos7 y soluciones a problemas relacionados en las tres etapas de la etapa GRUB

12.0 ¿Qué es el proceso de inicio del sistema?

Sistema Centos6

  1. Etapa de carga del BIOS de autocomprobación de encendido: presione el botón de encendido cuando se enciende, la computadora se enciende y el BIOS comienza a cargar el sistema básico de entrada y salida, que incluye información como CPU, memoria, información del hardware del disco duro, secuencia de inicio del dispositivo, reloj y otra información.

  2. Etapa de lectura de MBR: la computadora busca el primer sector del disco duro, el sector MBR (designado por el BIOS), carga los primeros 446 bytes del sector, el cargador de arranque, en la memoria y se prepara para el arranque del sistema.

  3. Etapa de inicio de GRUB: las tres etapas de los archivos incluyen: etapa1, etapa1.5, etapa2.

    • Stage1 es el cargador de arranque ( los primeros 446 bytes del sector MBR ) para localizar y cargar stage1.5 a través del contenido del archivo (que cubre la dirección de carga especificada);
    • Como transición entre stage1 y stage2, stage1.5 tiene como objetivo ** / sistema de archivos de partición de arranque **, es decir, cargar el contenido de los 27 sectores después del sector MBR en la memoria; a partir de ese momento, Stage1 tiene la capacidad de identificar el sistema de archivos a través de Stage1.5 Posibilidad de comenzar a cargar Stage2;
    • stage2 encuentra y carga el archivo del kernel leyendo el archivo grub.conf en / boot / grub (que se ha cargado en Stage1.5) , y se prepara para entregar el control a Linux; la información de la opción grub vista al inicio y el fondo de grub, etc. La información se proporciona en la etapa 2.
  4. Fase de arranque del kernel: descomprime el archivo del kernel, descomprímelo en la memoria e inicia el kernel; luego, el kernel libera el sistema de archivos raíz a través del sistema de archivos temporales initramfs y luego cambia al programa / sbin / init;

  5. Etapa de operación del programa de inicio:

    • El proceso init es el primer proceso y, dado que es un metaproceso, primero leerá el archivo / etc / inittab como nivel operativo del sistema;
    • Luego, el programa init carga el archivo a nivel de usuario /etc/rc.d/rc.sysinit, que cubre: establecer el parámetro del kernel /etc/sysctl.conf, habilitar el intercambio, montar la partición raíz en modo lectura-escritura, verificar y montar Otros sistemas de archivos en / etc / fstab, etc .;
    • Según el sector de operación del sistema establecido, el sistema ejecuta programas de script en el directorio rc0.d a rc6.0 para completar los servicios requeridos para la inicialización del sistema. Si los archivos en el directorio comienzan con K, significa que el servicio correspondiente está detenido y comienza con S. Inicie el servicio correspondiente, el número después de SK indica el número de secuencia de inicio, cuanto menor sea el número, más temprana será la ejecución;
    • Después de que el sistema inicie el servicio correspondiente, ejecute el archivo /etc/rc.d/rc.local y el sistema ejecutará la tarea de inicio línea por línea de acuerdo con el contenido del archivo;
    • El sistema ejecuta el programa / bin / lgin, y el usuario ingresa el nombre de usuario y la contraseña para iniciar sesión en el sistema. Una vez que el inicio de sesión es exitoso, el sistema carga el archivo de configuración e ingresa al terminal de shell

    Se inicia el sistema operativo Linux

12.1 Reparación de daños en archivos Stage1

Sistema Centos6

  • Primero haga una copia de seguridad de los archivos del sector y luego simule el daño, elimine los primeros 446 bytes de la partición MBR (si es una simulación del sistema de máquina virtual, tome una instantánea con anticipación), y finalmente reinicie el sistema en init 6, el disco duro del sistema ya no tiene la función de arranque, vaya directamente a la siguiente Dispositivo de arranque

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

  • Después de reiniciar el sistema, ingrese al siguiente modo
    Inserte la descripción de la imagen aquí

  • Seleccione el sistema instalado Rescue para ingresar al modo de rescate

    • Elija idioma EE. UU.

    • Elija si desea configurar la tarjeta de red, no

    • Cambie al indicador del directorio raíz, elija continuar, luego aceptar y finalmente elija ejecutar el shell, de la siguiente manera
      Inserte la descripción de la imagen aquí
      Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

  • ingrese el comando

    1. #chroot / mnt / sysimage / #Cambiar el directorio raíz del disco

    2. # grub-install / dev / sda #Generate grub, este comando puede restaurar el contenido de grub en todas las etapas

Inserte la descripción de la imagen aquí

  • Después de ejecutar grub, el comando sync actualiza el disco. Luego salga del shell y reinicie el sistema.

Inserte la descripción de la imagen aquí

Sistema Centos7

  • El método es el mismo que el proceso de reparación centos6
  • Necesito prestar atención a la modificación.
系统启动如何进入救援模式?
界面选择:Troubleshooting,在选择:Rescue a CentOS system,然后执行chroot /mnt/sysimage切跟
安装命令:grub2-inatall /dev/sda   #带个2

12.2 Reparación de daños en el sector State2 (cargado / sistema de archivos de partición de arranque) en GRUB stage1.5

Sistema Centos6

  • Destrucción simulada

    dd if=/dev/zero of=/dev/sda bs=1 count=10000 skip=512 seek=512   
    #MBR后27个扇区的数据:原则上是512*27=13824字节,我们这里是从/dev/sda 的512字节后开始破坏,将10000个字节存储空间破坏清零
    
  • Consulte 12.5, el método es el mismo

  • El daño del archivo de etapa GRUB Stage2 también usa el mismo método

12.3 Elimine grub.conf y repárelo reiniciando el sistema

Sistema Centos7

El sistema Centos7 utiliza la versión Grub2 para iniciar el sistema. El menú de inicio se genera automáticamente desde / boot en lugar de la configuración manual en menu.lst. Para obtener contenido específico, consulte el archivo de configuración: /boot/grub2/grub.cfg. Este archivo se genera automáticamente cada vez que se ejecuta grub2-mkconfig, por lo que la modificación de este archivo no será válida después de que se actualice el kernel.

  1. Registre los parámetros relacionados con el sistema
[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. Mueva /boot/grub2/grub.cfg fuera de este directorio, luego reinicie el sistema, el host ingresa a la siguiente interfaz
mv /boot/grub2/grub.cfg /root
init 6 #重启

Inserte la descripción de la imagen aquí

  1. Ver información actual del disco

Inserte la descripción de la imagen aquí

  1. Configuración variable (completando la ruta a través de la tecla de tabulación)
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. Inicie sesión en el sistema correctamente y vuelva a generar el archivo grub.cfg
grub2-mkconfig -o /boot/grub2/grub.cfg

Inserte la descripción de la imagen aquí

Si no conoce la ruta de la partición raíz en el modo grub, el método anterior no puede continuar. En este momento, debe usar el método de inicio del CD-ROM para ingresar:

  1. Al arrancar, mantenga presionado el botón Esc en la esquina superior izquierda del teclado. Después de que aparezca la ventana de selección del menú, seleccione 3 CD-ROM Driver, y luego seleccione Rescatar sistema instalado para ingresar al modo de rescate / rescate

  2. Puede optar por no permitir la configuración de red

  3. Mensaje a seguir: elige ok
    chroot / mnt / sysimage #cut root: cambia temporalmente el directorio raíz del sistema

  4. grub2-mkconfig -o /boot/grub2/grub.cfg # El directorio actual ya es el directorio raíz del sistema

  5. salir #Salir

  6. reiniciar reiniciar

Sistema Centos6

Archivo de configuración *: /boot/grub/grub.conf, para asegurar que grub y el kernel estén en el mismo directorio; además, crea un archivo de enlace /etc/grub.conf para apuntar al archivo de configuración para asegurar que los usuarios usen la consistencia del archivo de configuración *

  1. Registre los parámetros relacionados con el sistema (énfasis: el punto de montaje de la partición raíz, algunos son volúmenes lógicos, mi sistema es / dev / sda3)

Inserte la descripción de la imagen aquí

  1. Mueva grub.conf fuera del directorio

Inserte la descripción de la imagen aquí

  1. Reinicie el sistema init 6 y abra la línea de comando de inicio de grub

Inserte la descripción de la imagen aquí

  1. Después de ejecutar el comando de configuración de parámetros, ejecute boot para reiniciar

Inserte la descripción de la imagen aquí

  1. Vuelva a iniciar sesión en el sistema y restaure grub.conf en el directorio / boot / grub (si se mueve, use el comando mv para mover el archivo hacia atrás)

Inserte la descripción de la imagen aquí

12.4 Etapa de inicio de sesión de Linux: Olvídese de la contraseña del sistema Linux, ingrese al modo de usuario único para restaurar la contraseña de usuario

El nivel operativo del sistema Linux consta de seis niveles, y el modo de usuario único es el nivel 1. El sistema de inicio de sesión en modo de usuario único se utiliza principalmente para modificar la contraseña de root del sistema. No todos pueden ingresar al modo de usuario único. Solo podemos iniciar sesión en el sistema de modo de usuario único a través de la computadora local, pero no podemos iniciar sesión de forma remota (muchos servicios ssh no proporcionan 1 nivel de ejecución).

Nivel de ejecución Descripción
0 Apagado, el nivel de ejecución predeterminado del sistema no se puede establecer en 0; de lo contrario, no se iniciará normalmente y se apagará automáticamente tan pronto como se encienda.
1 Modo de usuario único, autoridad de root, utilizado para el mantenimiento del sistema, se prohíbe el inicio de sesión remoto.
2 Modo multiusuario, sin soporte de red NFS.
3 Completa el modo de texto multiusuario, con NFS, ingresa al modo de línea de comandos de la consola después de iniciar sesión. Por lo general, inicie sesión en el sistema en este modo
4 El sistema no se usa, generalmente no se usa, se puede usar para hacer algunas cosas en algunos casos especiales. Por ejemplo, cuando se agota la batería de una computadora portátil, puede cambiar a este modo para realizar algunos ajustes.
5 Modo gráfico, ingrese al modo GUI gráfico o GNOME, interfaz gráfica KDE después de iniciar sesión, como X Window System.
6 En el modo de reinicio, el nivel de ejecución predeterminado no se puede establecer en 6; de lo contrario, no se iniciará normalmente, siempre se reiniciará y reiniciará.

Sistema Centos7

  1. init 6 Reinicie el sistema, presione la letra e en la interfaz de cuenta regresiva para ingresar al modo de edición

Inserte la descripción de la imagen aquí

  1. Encuentre la línea donde se encuentra la cadena ro, cambie ro a 'rw init = / sysroot / bin / sh', presione ctrl + x para ingresar al modo de usuario después de la modificación

Inserte la descripción de la imagen aquí

  1. Después de ingresar al modo de usuario único, ingrese el siguiente comando para cambiar la contraseña

Inserte la descripción de la imagen aquí

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

Sistema Centos6

  1. Inicie el sistema, al arrancar, presione cualquier tecla (e) para ingresar a la interfaz del menú de grub, de la siguiente manera
    Inserte la descripción de la imagen aquí

  2. De acuerdo con el indicador de ayuda en la parte inferior de la interfaz del menú de grub, presione la letra a para modificar los parámetros del kernel antes del inicio del sistema, agregue + espacio + single al final de la línea del kernel y presione Enter

Inserte la descripción de la imagen aquí

  1. Inicie el sistema, es decir, ingrese al modo de usuario único y comience a cambiar la contraseña
    Inserte la descripción de la imagen aquí

12.5 Cifrar grub

Sistema Centos7

¿Por qué cifrar grub? Porque si grub no está encriptado, otros usuarios pueden ingresar al modo de usuario único a voluntad para modificar la contraseña de la cuenta del sistema, lo que representa un riesgo de seguridad.

  • Ver la versión actual de centos

Inserte la descripción de la imagen aquí

  • Establecer contraseña (guardarla)
[root@ ~ 11:13:00]#grub2-mkpasswd-pbkdf2
Enter password: 
Reenter password: 
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.216202CEB237E45256DD02E80D7FAC425A4CAEEEED8850541CAB02D19A138DF224AEB2603A7CE9A7C0BE6C3FA94015AA95091B8DFE67F308AA00972FA43C0EA6.50165007B8DC1514BF95859DD8852B0AF922E0BF60773382D721A33D1A1F6C308B53C81821A850074162A3DAC95A4D087298A2EF1C61B7232E7CC431DF2CBE58
  • Modificar el archivo de configuración
[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
  • Vuelva a compilar el archivo 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 reinicie el sistema, presione la letra e en la interfaz de cuenta regresiva, aparecerá la interfaz de inicio de sesión de grub (el cifrado de grub es efectivo), ingrese el nombre de usuario y la contraseña, y presione la tecla Intro;

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Sistema Centos6

  1. Genere una contraseña cifrada basada en el algoritmo MD5
[root@lin ~]# grub-md5-crypt
Password: 
Retype password: 
$1$mgqu/1$5vcAFwFSL4Xtb574S2.U30

2. Agregue la cadena de contraseña en el archivo /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. Presione init 6 para iniciar el sistema, presione cualquier tecla para ingresar a la interfaz del menú de grub, el siguiente mensaje requiere que presione la tecla p para ingresar la contraseña para ingresar al modo de edición de grub
    Inserte la descripción de la imagen aquí
    Inserte la descripción de la imagen aquí

12.6 Dos archivos del kernel en la partición de arranque están dañados y reparados

Sistema Cntos6

1.参考12.1,进入救援模式;开启shell步骤;
bash-4.1# df
bash-4.1# mkdir /mnt/cdrom    
bash-4.1# mount /dev/sr0 /mnt/cdrom #挂载
bash-4.1# rpm -ivh /mnt/cdrom/Packages/kernel-******.x86_64.rpm --root=/mnt/sysimage --force                 #安装内核文件
bash-4.1# ls /mnt/sysimage/boot   #查看是否有内核文件
bash-4.1# reboot   #重启

Sistema Cnetos7

同上

12.7 El archivo del kernel en la partición de arranque está dañado y el archivo / etc / fstab también está dañado

Sistema Centos6

  • Idea: primero ingrese al modo de rescate, busque la partición raíz a través del sistema de archivos temporal / mnt / sysimage
  • Primero vea todas las particiones a través de fdisk -l
  • Cree un archivo de directorio y monte particiones en el archivo de directorio una por una hasta que el archivo de partición raíz no esté vacío debajo del archivo
  • Modifique el archivo / etc / fstab en el directorio de montaje, agregue entradas de montaje relacionadas y complete otras entradas después de que se repare el sistema
  • Reinicie en modo de rescate, repare el archivo del kernel de arranque, consulte 12.6

12.8 Reparación del archivo init.d dañado en el primer proceso del sistema Centos6

Sistema Centos6

1.进入救援模式
2.安装 rpm -ivh --force --root=/mnt/sysimage /mnt/cdrom/Packages/upstart-****.x86_64.rpm
3.查看安装情况:ls /mnt/sysimage/sbin/init
4.重启

12.9 ¿Entonces todos los archivos de / boot / grub están dañados?

1.进入救援模式安装内核文件:参考12.8
2.安装grub引导程序:参考12.1 就是生成grub目录
3.进入grub2目录安装grub.cfg ,参考12.3 第五步
4.重启系统

Supongo que te gusta

Origin blog.csdn.net/weixin_31789689/article/details/108219309
Recomendado
Clasificación