Demostración del proceso de arranque y control de servicios y resolución de problemas en Linux (ilustración súper detallada)

1. Gestión del proceso de arranque de CentOS

El inicio del sistema es el comienzo de la operación del sistema operativo. Antes de que el usuario pueda iniciar sesión en el sistema normalmente, el proceso de inicio de Linux completa una serie de tareas de inicialización y carga los programas y terminales de comando necesarios para preparar el inicio de sesión del usuario. en.

1.1 El proceso de arranque

1.1.1 Descripción general del proceso de arranque

El proceso de arranque del sistema operativo Linux generalmente incluye las siguientes etapas: autocomprobación de encendido, arranque MBR, menú GRUB, carga del kernel de Linux e inicialización del proceso de inicio.
1)
Después de encender el servidor, la CPU, la memoria, la tarjeta gráfica, el teclado y otros dispositivos se probarán inicialmente de acuerdo con la configuración en la BIOS de la placa base (Entrada básica / Sistema Ourput). Después de que la prueba sea exitosa, el sistema ser transferidos al control del sistema de acuerdo con la secuencia de inicio preestablecida Derecha, 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 de CD-ROM.
2) Arranque MBR
Al arrancar el sistema desde el disco duro local, primero siga el MBR (Registro de arranque maestro) en el primer sector del disco duro Configure, transfiera el control del sistema directamente a la partición que contiene el archivo de inicio del sistema operativo, o llame directamente al menú de inicio (como GRUB) de acuerdo con la información de inicio en el registro MBR.
Resumen : Ejecute el programa de arranque GRUB ubicado en el sector MBR
3) Menú GRUB
Para el sistema operativo Linux, GRUB (Unified Boot Loader) es el programa 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 y la ubicación de las rutas del kernel y del sistema de archivos espejo
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 del kernel predeterminado se encuentra en "/boot/vmlinuz-3.10.0-514.e17.x86_64".
Resumen : Cargue el kernel y el sistema de archivos espejo en la memoria.
5. Inicialice el proceso de inicio
para poder completar el proceso de arranque del sistema adicional, 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

1.1.2 Proceso de inicialización del sistema init y Systemd

Proceso de inicio
El proceso (programa en ejecución) en el sistema Linux está marcado con números y la identidad de cada proceso está marcada con PID. En el proceso de arranque del sistema Linux, "/ sbin / init" es el primer programa cargado por el kernel, por lo que el proceso init es el primer proceso en el sistema y el número PID correspondiente es siempre 1. El
proceso init es el primero proceso en el sistema, es el proceso principal de todos los procesos y proporciona servicios a los usuarios juntos.
Systemd
Systemd es un tipo de software de inicio del sistema operativo Linux

CentOS7 utiliza un nuevo método de inicio de Systemd para reemplazar el tradicional SysVinit

El primer proceso de inicio que se ejecuta en CentOS7 es / lib / systemd / systemd

SysVinit tradicional se basa en la ejecución en serie de scripts de Shell para iniciar los servicios, lo que resulta en una baja eficiencia y un inicio lento del sistema.

systemd puede iniciar más procesos de servicio en paralelo y tiene la capacidad de iniciar servicios a pedido, de modo que se inician menos procesos, lo que aumenta la velocidad de inicio del sistema.
El proceso init es el primer proceso en el sistema y es el proceso padre de todos los procesos
x
tipo de unidad Systemd

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

Objetivo de Systemd correspondiente al nivel de ejecución

Nivel de ejecución Destino 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, que es igual a 3 de forma predeterminada, pero no se puede conectar a Internet
3 multiusuario.target Modo multiusuario 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. El valor predeterminado es equivalente a 3
5 objetivo gráfico El modo multiusuario de la interfaz gráfica proporciona un entorno operativo de escritorio gráfico
6 reboot.target Reiniciar, el host se reiniciará al usar este nivel

1.2 Solucionar fallas de inicio

1. Análisis de fallas del sector MBR

  • 1) Causa de la falla

Daños causados ​​por virus, troyanos, etc.
Operaciones de partición incorrectas, errores de lectura y escritura del disco

  • 2) Fenómeno de falla


No se puede encontrar el programa de inicio y se interrumpe el inicio El sistema operativo no se puede cargar y la pantalla se vuelve negra después del inicio.

  • 3) Soluciones

Haga un archivo de respaldo
con anticipación, arranque
desde el CD de instalación, ingrese al modo de emergencia y restaure desde el archivo de respaldo.

2. Simular la falla del sector MBR

MBR está ubicado en el primer sector físico de un disco duro (/ dev / sda), un total de 512 bytes.
Debido a que es un experimento, es necesario simular una falla con anticipación.
Agregue un nuevo disco duro y móntelo para utilizar como disco de respaldo.
Inserte la descripción de la imagen aquí
Formatear
Inserte la descripción de la imagen aquí

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

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

2. Simular la falla del sector MBR

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

Inserte la descripción de la imagen aquí
Luego, puede intentar reiniciar la máquina virtual y descubrir que ya no puede ingresar directamente al sistema en este momento
Inserte la descripción de la imagen aquí

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

先加载好光盘镜像,重启操作系统,
当出现安装向导界面时,选择“Troubleshooting”选项,
再选择“Rescue a CentOS Linux system”选项,进入急救模式
选择“1”选择 Continue并按 Enter 键继续
再次按 Enter 键后将进入带“sh-4.2#”提示符的 Bash Shell 环境
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 环境,系统将会自动重启

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Puede comprobar que la ruta de backupdir ya existe en el archivo mbr.bak. Después de
Inserte la descripción de la imagen aquí
salir, puede iniciar sesión normalmente.
Inserte la descripción de la imagen aquí

4. Reparar la falla de arranque de GRUB

Causa de la falla

  • El programa de arranque GRUB en MBR está dañado

  • Falta el archivo grub.conf, el error de configuración de arranque
    Síntoma

  • El inicio del sistema se detiene y se muestra el mensaje "grub>".
    Soluciones

  • Intente ingresar manualmente el comando de arranque

  • Ingrese al modo de emergencia, reescriba o restaure grub.conf desde la copia de seguridad

  • Reconstruir el programa grub para la recuperación de fallas del sector MBR

/boot/grub/目录下的包是用于启动菜单的背景图片及样式
/boot/grub2/grub.cfg			GRUB配置文件

Método 1 : este método no se recomienda, ya que no se puede copiar ni pegar. Todos los comandos se ingresan manualmente un carácter por un carácter, lo cual es engorroso y propenso a errores.

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	            内核的名字及位置等信息
grub> initrd16 /initramfs-3.10.0-693.el7.x86_64.img			镜像系统文件
grub> boot							引导boot

Método 2: ingrese al modo de emergencia y restaure el programa de arranque GRUB

  • 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 477-510 bytes del MBR sector Medio, por lo que los primeros 446 bytes se respaldan aquí y se conserva la tabla de particiones anterior.
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 el MBR, 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

El comando de operación es el mismo que el anterior para reparar el MBR. Solo es necesario cambiar los 512 bytes a 446 bytes y ya no demostrar el
Método 3: la interfaz de inicio ingresa al modo de emergencia y el archivo de configuración del menú de GRUB se reconstruye

  • Este método generalmente se ocupa de la situación en la que el archivo /boot/grub2/grub.cfg se elimina o se pierde por error o la configuración de inicio es incorrecta.
    1) Para simular un experimento de falla, primero elimine el archivo / boot / grub2 / grub. Cfg
rm -rf /boot/grub2/grub.cfg

Inserte la descripción de la imagen aquí

48.png)
aparece grub> no se puede iniciar normalmente
Inserte la descripción de la imagen aquí

2) Ingrese al modo de emergencia, cargue la imagen del CD, cambie al entorno raíz del sistema,
ingrese al modo de emergencia, presione la tecla ESC al cargar la interfaz para ingresar al modo de emergencia
Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí
A veces, la barra de progreso es demasiado rápida para leer, demasiado tarde para hacer clic en el botón esc, puede usar los siguientes métodos para lograrlo:
Apague primero,
Inserte la descripción de la imagen aquí
encienda la alimentación e ingrese el firmware
Inserte la descripción de la imagen aquí
. Mueva las teclas de flecha a la tecla Boot ± para mueva la unidad de CD-ROM a la primera línea,
Inserte la descripción de la imagen aquí
presione F10 para guardar e
Inserte la descripción de la imagen aquí
ingresar al modo de emergencia.
Inserte la descripción de la imagen aquí

sh-4.2# chroot /mnt/sysimage

3) Vuelva a instalar el programa de arranque GRUB en el sector MBR del primer disco duro (/ dev / sda)

bash-4.2# grub2-install /dev/sda

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

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

5) Salga del entorno chroot y reinicie
Inserte la descripción de la imagen aquí

bash-4.2# exit
sh-4.2# reboot

Puede empezar normalmente
Inserte la descripción de la imagen aquí

5. Olvidar la contraseña del usuario root

1) La causa de la falla:
Se ha olvidado la contraseña del usuario root.
2) El fenómeno de la falla
. Las operaciones de administración que requieren privilegios de root no se pueden realizar.
Si no hay otra cuenta disponible, el sistema no será capaz de iniciar sesión.
3) Soluciones:
entrar en el modo de emergencia y restablecer la contraseña.
4) Olvido de la contraseña del usuario root para
entrar en el modo de emergencia, cargar la imagen del sistema, cambie a la raíz del sistema de entorno

sh-4.2# chroot /mnt/sysimage     //进入急救模式,加载系统镜像,切换到系统根环境
bash-4.1# passwd root      //重设 root 用户密码
**按照步骤重设即可**

Los pasos para ingresar al modo de emergencia son los mismos que ↑ y no se demostrarán

2. Control de servicios del sistema y optimización del proceso de puesta en marcha

1. Formato de comando

systemctl 控制类型 服务名称

2. Tipos de control comunes:

  • comienzo: comienzo
  • para para
  • reiniciar: reiniciar
  • recargar: recargar
  • status: ver el estado del servicio

3. Nivel de ejecución

  1. Ver nivel de ejecución
  • comando de nivel de ejecución (ver el nivel de ejecución antes del interruptor y el nivel de ejecución actual, N significa que no hay ningún interruptor antes)
  • herramienta systemctl
  • systemctl get-default (Ver el nivel de ejecución predeterminado del sistema)
  1. Nivel de funcionamiento del interruptor temporal / permanente Interruptor
    temporal
  • comando init

  • interruptor permanente de la herramienta systemctl

Dos comandos:

ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target      
或
systemctl set-default multi-user.target    

systemctl get-default    查看系统默认的运行级别

4. Optimiza el proceso de inicio

herramienta ntsysv

  • Proporcionar una ventana visual interactiva
  • Se puede ejecutar en una terminal de caracteres.
  • Conveniente para la gestión centralizada de múltiples servicios
  • Se utiliza para controlar si el servicio se inicia automáticamente después de arrancar
    ■ la herramienta systemct
  • No se proporciona una ventana visual interactiva
  • Gestione un único servicio de forma más eficiente

5. Inicio y control de los servicios del sistema

■ herramienta de gestión de servicios del sistema ntsysv

ntsysv
ntsysv --level 级别列表
  • Presione la barra espaciadora para marcar la opción de servicio
  • Presione ↑, ↓ para cambiar las opciones de servicio
  • Presione la tecla de tabulación para cambiar el cursor
    Inserte la descripción de la imagen aquí

6. Inicio y control de los servicios del sistema.

(1) Ver el estado de inicio del servicio del sistema
systemctl está habilitado nombre del servicio
2, nombre del servicio que configura el estado de inicio del servicio del sistema
systemctl habilitar el nombre del servicio // habilitar el inicio automático del sistema
systemctl deshabilitar el nombre del servicio // deshabilitar el inicio automático comienzo

7. Modifique permanentemente el nombre de host y vea el estado del nombre de host.

hostnamectl set-hostname newname          永久修改主机名
hostnamectl status                        查看主机名的状态

8. Configure el idioma del sistema en chino.

localetcl set-locale LANG=zh_CN.utf8      设置系统语言为中文
localectl [status]                        查看当前系统使用的语言

9. Ver la hora de inicio del sistema

systemd-analyze

Supongo que te gusta

Origin blog.csdn.net/zhangyuebk/article/details/113730617
Recomendado
Clasificación