Proceso de arranque y control de servicios (¡incluida la simulación de fallas del sector MBR y la reparación de fallas de arranque GRUB!)

Proceso de arranque y control de servicios

1. El proceso de arranque del sistema operativo Linux

Diagrama de flujo del proceso de arranque

Inserte la descripción de la imagen aquí

1. CORREO

Una vez que se enciende el servidor host, la CPU, la memoria, la tarjeta gráfica, el teclado y otros dispositivos se probarán inicialmente de acuerdo con la configuración en el BIOS de la placa base. Una vez que la prueba sea exitosa, el control del sistema se transferirá de acuerdo con el inicio preestablecido secuencia, y la mayor parte del tiempo se transferirá al disco duro local.
Resumen: se detecta el primer dispositivo capaz de arrancar el sistema, como un disco duro o una unidad óptica

2. Arranque MBR

Al iniciar el sistema desde el disco duro local, primero transfiera el control del sistema directamente a la partición que contiene los archivos de inicio del sistema operativo de acuerdo con la configuración de MBR (Master Boot Record) en el primer sector del disco duro; o directamente de acuerdo con el inicio en el registro MBR La información llama al menú de inicio (como GRUB).
Resumen: Ejecute el programa de arranque GRUB de arranque ubicado en el sector MBR

3. Menú GRUB

Para el sistema operativo Linux, GRUB (Unified Boot Loader) es el programa de cargador de arranque multisistema más utilizado. Una vez que el control del sistema se pasa a GRUB, se mostrará el menú de arranque para que el usuario elija, y el archivo del kernel de Linux se cargará de acuerdo con la opción seleccionada (o el valor predeterminado), y luego el control del sistema se transferirá a el núcleo.
CentOS 7 usa el cargador de arranque GRUB2.
Resumen: el programa de arranque de GRUB lee el archivo de configuración de GRUB /boot/grub2/grub.cfg para obtener la configuración del sistema de archivos del kernel y espejo y las ubicaciones de las rutas

4. Cargue el kernel de Linux

El kernel de Linux es un archivo binario especial precompilado, entre varios recursos de hardware y programas del sistema, responsable de la asignación y programación de recursos. Una vez que el kernel asume el control del sistema, controlará completamente el proceso de ejecución de todo el sistema operativo Linux.
En el sistema CentOS 7, el archivo de kernel predeterminado se encuentra en "/boot/vmlinuz-3.10.0-514.el7.x86_64".
Resumen: cargue el kernel y el sistema de archivos espejo en la memoria

5. inicialización del proceso init

Para completar el proceso de arranque del sistema, el kernel de Linux primero carga el programa "/ sbin / init" en el sistema en la memoria para ejecutarlo (el programa en ejecución se llama proceso), el proceso de inicio es responsable de completar la inicialización de todo el sistema y, finalmente, espera a que el usuario inicie sesión.
Resumen: cargue el controlador de hardware, el kernel carga el proceso de inicio en la memoria para ejecutar

En segundo lugar, el proceso de inicialización del sistema

1.Init proceso

  • Cargue y ejecute el programa / sbin / init con el kernel de linux
  • El proceso de inicio es el primer proceso en el sistema.
  • El número PID (ID de proceso) del proceso de inicio es siempre 1

2.Sistema

  • Systemd es una especie de software de inicio del sistema operativo Linux
  • CentOS7 utiliza un nuevo método de inicio Systemd, que reemplaza al tradicional SysVinit
  • El primer proceso de inicio que se ejecuta en CentOS es / lib / systemd / systemd

SysVinit tradicional se basa en la ejecución en serie de scripts de Shell para iniciar los servicios, lo que da como resultado una baja eficiencia y una velocidad de inicio lenta del sistema.
Systemd puede iniciar más procesos de servicio en paralelo y tiene la capacidad de proporcionar servicios de inicio bajo demanda, de modo que se pueden realizar menos procesos. iniciado, mejorando así la velocidad de inicio del sistema.

3.Tipo de unidad del sistema

Tipo de unidad nombre de la extensión Descripción
Servicio .Servicio Describe un servicio del sistema
Enchufe .enchufe Describir un conector para la comunicación entre procesos.
Dispositivo .dispositivo Describe un archivo de dispositivo reconocido por el kernel.
Montar .montar Describe el punto de montaje de un sistema de archivos.
Automount .automount Describir el punto de montaje automático de un sistema de archivos.
Intercambio .intercambio Describir un archivo o dispositivo de intercambio de memoria
Camino .camino Describir un archivo o directorio en un sistema de archivos.
Temporizador .Temporizador Describe un temporizador
Objetivo .objetivo Describe un conjunto de unidades systemd
Instantánea .instantánea Se usa para guardar el estado de un sistema.
Alcance .alcance Utilice la interfaz de bus de systemd para crear procesos externos mediante programación
Rodaja .rodaja Describir un grupo de procesos del sistema de gestión que residen en Cgroup a través de una organización jerárquica.

4. Objetivo de Systemd correspondiente al nivel de ejecución

nivel de ejecución de inicio objetivo systemd 的 Descripción
0 objetivo Estado de apagado, el host se apagará cuando se use este nivel
1 objetivo de rescate Modo de usuario único, puede iniciar sesión en el sistema sin verificación de contraseña, que se utiliza principalmente para el mantenimiento del sistema
2 multiusuario.target Nivel de ejecución definido por el usuario / específico del dominio, el valor predeterminado es 3, en comparación con 3, sin red
3 multiusuario.target Modo de usuario completo con interfaz de caracteres, la mayoría de los servidores se ejecutan en este nivel
4 multiusuario.target Nivel de ejecución definido por el usuario / específico del dominio, no se usa por defecto en centos6, reservado, es equivalente a 3 en centos7
5 objetivo gráfico El modo multiusuario de la interfaz gráfica proporciona un entorno operativo de escritorio gráfico
6 reboot.target Reiniciar, cuando se usa este nivel, el host se apagará y reiniciará normalmente

2 y 4 no se usan comúnmente, 5 se usa a menudo para individuos y 0, 3, 5 y 6 se usan para servidores y se usan más comúnmente.

En tercer lugar, la solución de problemas de fallas de inicio.

1. Análisis de fallas del sector MBR

1) Causa de la falla

  • Daños provocados por virus, troyanos, etc.
  • Operación incorrecta de la partición, mal funcionamiento de la lectura y escritura del disco

2) Fenómeno de falla

  • No se encuentra el programa de inicio, el inicio se interrumpe
  • No se puede cargar el sistema operativo, pantalla negra después del arranque

3) Soluciones

  • Los archivos de respaldo deben realizarse con anticipación
  • Arranque en modo de emergencia con el CD de instalación
  • Restaurar desde el archivo de respaldo

2. Simular fallas y reparaciones del sector MBR

  • MBR se encuentra en el primer sector físico del primer disco duro (/ dev / sda), un total de 512 bytes

1) Realice una copia de seguridad de los datos del sector MBR en otros discos (/ dev / sdb1)

mkdir /backup  #创建一个文件夹作为挂载点
mount /dev/sdb1 /backup
dd if=/dev/sda of=/backup/mbr.bak bs=512 count=1

2) Simular la destrucción del sector de arranque MBR

dd if=/dev/zero of=/dev/sda bs=512 count=1

3) La interfaz de arranque ingresa al modo de emergencia y restaura los datos del sector MBR desde el archivo de respaldo

Primero cargue la imagen del CD, reinicie el sistema operativo,
cuando aparezca la interfaz del asistente de instalación, seleccione la opción "Solución de problemas"
y luego seleccione la opción "Rescatar un sistema CentOS Linux" para ingresar al modo de emergencia.
Seleccione "1", seleccione Continuar y presione Enter para continuar
presionando nuevamente Después de la tecla Enter, ingresará al entorno Bash Shell con el mensaje "sh-4.2 #"

sh-4.2# mkdir /backupdir
sh-4.2# mount /dev/sdb1 /backupdir 				#挂载带有备份文件的分区
sh-4.2# dd if=/backupdir/mbr.bak of=/dev/sda	#恢复备份数据
sh-4.2# exit									#执行exit命令退出临时Shell 环境,系统将会自动重启

①Añadir un nuevo disco duro en estado de apagado

Inserte la descripción de la imagen aquí

②Enciende y verifica la partición

Inserte la descripción de la imagen aquí

③ Gestión de particiones, número de partición y tipo de partición

Inserte la descripción de la imagen aquí

④Formatear y montar

Inserte la descripción de la imagen aquí

⑤ Realice una copia de seguridad del contenido del registro de arranque maestro MBR en / dev / sda1, y luego haga una tarea para dañar la partición de arranque maestro / dev / sda y luego reinicie

Inserte la descripción de la imagen aquí

⑥A continuación, vaya al lado de la máquina virtual para operar, ingrese al modo de emergencia y luego elija rescatar el sistema

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

⑦ Ingrese 1 para elegir continuar, haga doble clic en Enter para ingresar al entorno del shell, la operación de seguimiento es la siguiente, después de que se complete la reparación final, ingrese exit e ingrese para comenzar normalmente

Inserte la descripción de la imagen aquí

3. Reparar la falla de arranque de GRUB

El paquete en el directorio / boot / grub / se usa para la imagen de fondo y el estilo del menú de inicio

/boot/grub2/grub.cfg			    #GRUB配置文件

1) Método 1: ingrese manualmente el comando de arranque (torpe y engorroso, no recomendado)

grub> insmod xfs					#加载指定的模块到内核
grub> linux16 /vmlinuz-3.10.0-693.el7.x86_64 root=UUID=8fd74986-  ae66-4ffd-b7d8-a19f2eca7b6f ro rhgb quiet LANG=zh_CN.UTF-8	

Información como el nombre y la ubicación del kernel

grub> initrd16 /initramfs-3.10.0-693.el7.x86_64.img			#镜像系统文件
grub> boot						   	#引导boot

2) Método 2: Ingrese al modo de emergencia y restaure el programa de arranque GRUB (similar al sector de arranque MBR)

MBR se encuentra en el primer sector físico del primer disco duro (/ dev / sda), un total de 512 bytes, los primeros 446 bytes son el registro de arranque maestro, la tabla de particiones se almacena en los 447-510 bytes en el MBR sector en.

mkdir /bak
mount /dev/sdb1 /bak
dd if=/dev/sda of=/bak/grub.bak bs=446 count=1

Simula la destrucción del programa de arranque GRUB en MRB, pero no destruye la tabla de particiones

dd if=/dev/zero of=/dev/sda bs=446 count=1

La interfaz de inicio ingresa al modo de emergencia y el programa de inicio GRUB se restaura desde el archivo de respaldo

sh-4.2# mkdir /backupdir
sh-4.2# mount /dev/sdb1 /backupdir 	
sh-4.2# dd if=/backupdir/grub.bak of=/dev/sda	
sh-4.2# exit

3) Método 3: Inicie la interfaz en modo de emergencia y reconstruya el archivo de configuración del menú de GRUB

rm -rf /boot/grub2/grub.cfg

Ingrese al modo de emergencia, cargue la imagen del CD y cambie al entorno raíz del sistema

sh-4.2# chroot /mnt/sysimage

Reinstale el programa de arranque GRUB en el sector MRB del primer disco duro (/ dev / sda)

bash-4.2# grub2-install /dev/sda

Reconstruir el archivo de configuración del menú de GRUB

bash-4.2# grub2-mkconfig -o /boot/grub2/grub.cfg

Salga del entorno chroot y reinicie

bash-4.2# exit
sh-4.2# reboot

① Primero elimine el archivo de configuración /boot/grub2/grub.cfg en el programa de arranque

Este archivo de configuración contiene la configuración y la ruta del kernel y el sistema de archivos espejo. El programa de arranque GRUB puede leer este archivo de configuración para obtener las configuraciones relevantes. Eliminar este archivo hará que el arranque falle.

Inserte la descripción de la imagen aquí

②Cambiar el método de inicio

Inserte la descripción de la imagen aquí

Recuerde F10 para guardar y salir después de que se cambia el modo de inicio

Inserte la descripción de la imagen aquí

Entrar en modo de emergencia

Inserte la descripción de la imagen aquí

Sistema de rescate

Inserte la descripción de la imagen aquí

③Cambie al entorno raíz del sistema, reinstale el programa de arranque grub y reconstruya el archivo de configuración

Inserte la descripción de la imagen aquí

④ Vuelva al modo de inicio original, F10 para guardar y salir

Inserte la descripción de la imagen aquí

Cuarto, olvídate de la contraseña del usuario root.

1) Ingrese al modo de emergencia, cargue la imagen del sistema y cambie al entorno raíz del sistema

sh-4.2# chroot /mnt/sysimage

2) Restablecer la contraseña del usuario root

bash-4.2# passwd root

Ingrese al modo de emergencia, rescate el sistema y luego las operaciones de seguimiento son las siguientes (se recomienda ingresar la contraseña para usar las teclas numéricas anteriores)

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_35456705/article/details/111183356
Recomendado
Clasificación