Control de servicio y proceso de arranque básico de Linux (relativamente importante, es necesario comprenderlo)

1. El proceso de arranque del sistema operativo Linux

Inserte la descripción de la imagen aquí

1. ENVIAR

Cuando el servidor está encendido, realizará una autoprueba de encendido para detectar si los dispositivos de hardware como CPU, memoria, tarjeta gráfica, teclado y otros dispositivos están defectuosos. Si no hay falla, el sistema se transferirá de acuerdo con a la secuencia de inicio preestablecida, que es la situación normal Disco duro de la máquina.
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 a la partición que contiene el archivo 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 (por ejemplo, GRUB).
El MBR tiene un tamaño de 512 bytes y almacena información previa al arranque, tabla de particiones y otra información.
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 inicio 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.
GRUB son los primeros 446 bytes del programa MBR.
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

Después de que se carga el kernel, el primer programa que se ejecuta es "/ sbin / init" (el programa en ejecución se llama proceso). El proceso init es responsable de completar la inicialización de todo el sistema y finalmente esperar 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

2. Proceso de inicialización del sistema

1. El proceso de inicio

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

2 、 Systemd

  • Systemd es un software de inicio del sistema operativo Linux
  • CentOS7 utiliza un nuevo método de inicio Systemd para reemplazar el tradicional SysVinit
  • El primer proceso de inicio que se ejecuta en CentOS7 es / lib / systemd / systemd

Comparación de sysvinit tradicional y systemd

nombre Método de inicio eficacia Velocidad de inicio
Sysvinit tradicional Confíe en la ejecución en serie del script Shell para iniciar el servicio
(hay una dependencia entre cada archivo, comience de acuerdo con la dependencia, en orden)
Se inician todos los servicios, lo que resulta en una baja eficiencia El inicio del sistema es lento
sistema Inicie más procesos de servicio en paralelo
(primero ignore las dependencias, inícielas al mismo tiempo y establezca las dependencias después de que se inicie el software dependiente correspondiente)
Proporciona la capacidad de iniciar servicios a pedido, de modo que se inician menos procesos y la eficiencia es alta Inicio rápido del sistema

3. 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 (puerto IP) 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.
Intercambiar .intercambiar Describir un dispositivo de intercambio de memoria o un archivo de intercambio.
Camino .camino Describir un archivo o directorio en un sistema de archivos.
Temporizador .Temporizador Describir un temporizador (utilizado para implementar tareas de programación de tipo cron)
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
Rebanada .rebanada Describir un grupo de procesos del sistema de gestión organizados por jerarquía en Cgroup
Objetivo .objetivo Describe un conjunto de unidades systemd
  • Los tres tipos de unidades principales son Service, Socket y Targe, y los demás también son necesarios para ver lo que significan.
  • Estos tipos de unidades se añaden al nombre del recurso en forma de sufijo, como servicio de red network.service.

4. El objetivo de Systemd correspondiente al nivel de ejecución

nivel de ejecución init 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 multi-user.target Nivel de ejecución definido por el usuario / específico del dominio, el valor predeterminado es equivalente a 3, en comparación con 3, sin red
3 multi-user.target Modo de usuario completo con interfaz de caracteres, la mayoría de los servidores se ejecutan en este nivel
4 multi-user.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, el host se apagará y reiniciará normalmente cuando se use este nivel

Los más utilizados son 0, 3, 5, 6, 3 para servidores, 5 para uso personal y 1 para mantenimiento del sistema, los niveles superiores 2 y 4 utilizan muy poco.

3. Eliminar fallas de inicio

Demostración de la reparación de fallas en el próximo blog: documento técnico de linux: simular y reparar la falla

1. Análisis de fallas del sector MBR

1) Causa de falla

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

2) Fenómeno de falla

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

3) Soluciones

  • Los archivos de respaldo deben hacerse 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

先加载好光盘镜像,重启操作系统,
当出现安装向导界面时,选择“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 环境,系统将会自动重启

3. Análisis de fallos de arranque de GRUB

1) Causa de falla

  • El programa de arranque GRUB en MBR está dañado
  • Falta el archivo grub. Cfg y la configuración de arranque es incorrecta (la ubicación del archivo centos7 es /boot/grub2/grub.cfg)

2) Fenómeno de falla

  • El arranque del sistema se detiene, mostrando el mensaje "grub>"

3) 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 en el sector MBR

4. Reparar la falla de arranque de GRUB

1) Método 1: Ingrese manualmente el comando de guía (torpe y engorroso, no recomendado)

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

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

2) 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 en el MBR sector Así que aquí hacemos una copia de seguridad de los primeros 446 bytes y mantenemos 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 MRB, pero no destruye la tabla de particiones
dd if=/dev/zero of=/dev/sda bs=446 count=1  
  • La interfaz de arranque entra en modo de emergencia y el programa de arranque 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: La interfaz de inicio entra en modo de emergencia y reconstruye el archivo de configuración del menú de GRUB.
Este método generalmente se ocupa de la situación en la que falta el archivo /boot/grub2/grub.cfg o la configuración de inicio es incorrecta.

  • Elimine el archivo grub.cfg para simular la falla
rm -rf /boot/grub2/grub.cfg
  • Ingrese al modo de emergencia, cargue la imagen del sistema, 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

5. Análisis de contraseña del usuario root olvidado

1. La causa de la falla:
Se olvidó la contraseña del usuario root.
2. El fenómeno de la falla
. La operación de administración que requiere privilegios de root no se puede realizar.
Si no hay otra cuenta disponible, el sistema no podrá para iniciar sesión.
3. Soluciones para
ingresar al modo de emergencia y restablecer la contraseña

6. Restablecer la contraseña del usuario root.

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

Cuatro, control de servicio del sistema

1. Control de servicio del sistema

systemctl 控制类型 服务名称

2. Tipo de control

iniciar: iniciar
parada: detener
reiniciar: reiniciar
recargar: recargar
estado: ver el estado del servicio
...

Cinco, el nivel operativo del sistema Linux.

1. Ver el nivel de ejecución

  • comando de nivel de ejecución
  • herramienta
    systemctl --systemctl get-default (ver el nivel de ejecución predeterminado del sistema)

2. Cambiar temporalmente el nivel de ejecución

  • comando init
  • herramienta systemctl

3. Comandos correspondientes al nivel de ejecución

Después de la función está el comando que se puede ejecutar, y la función es la misma

efecto nivel de ejecución init objetivo systemd 的
Apagar init 0 systemctl aislar poweroff.target systemctl poweroff apagado apagado -h tiempo detener
Modo de usuario único init 1 systemctl isolate rescue.target
Interfaz de personajes init 3 systemctl isolate multi-user.target
interfaz gráfica init 5 systemctl isolate graphical.target
Reiniciar init 6 systemctl isolate reboot.target reiniciar systemctl reiniciar apagado -r tiempo

Suplemento: apagar -h y -r deben ir seguidos de tiempo, por ejemplo: ahora, apagar o reiniciar inmediatamente; apagado automático o reinicio después de 10 o 10 minutos; 12:00, apagado o reinicio a las 12:00. Formato de comando: shutdown -r ahora
Si el apagado o reinicio se establece mediante el comando shutdown, puede usar el comando shutdown -c para cancelar el reinicio.

4. Establecer el nivel de operación permanente

ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target      #设置永久运行级别
systemctl set-default multi-user.target    #设置永久运行级别
两者作用一样,选其一即可
systemctl get-default  #查看系统默认的运行级别

Inserte la descripción de la imagen aquí

Seis, optimiza el proceso de inicio

1. 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 usa para controlar si el servicio se inicia automáticamente

2. Herramienta Systemct

  • No se proporciona una ventana visual interactiva
  • Gestione un único servicio de forma más eficiente

7. Inicio y control de los servicios del sistema.

1. 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

Después de ingresar ntsysv, muestra
Inserte la descripción de la imagen aquí

2. Servicios del sistema de arranque y control

  • Ver el estado de inicio de los servicios del sistema
systemctl is-enabled 服务名称
  • El nombre del servicio establece el estado de inicio del servicio del sistema.
systemctl enable 服务名称       #开启开机自启动
systemctl disable 服务名称       #关闭开机自启动

Supongo que te gusta

Origin blog.csdn.net/weixin_51326240/article/details/110287888
Recomendado
Clasificación