Directorio de artículos
- 1. Descripción general del proceso de arranque
- 2. Proceso de inicialización del sistema
-
-
-
-
-
- 2.1, proceso de inicio
- 2.2.Systemd
- 2.3 Tipos de unidades de systemd
- 2.4 Objetivos de Systemd correspondientes a los niveles de ejecución
- 2.5 Obtener el nivel de ejecución actual
- 2.6 Obtener el nivel operativo predeterminado del sistema
- 2.7 Establecer el nivel operativo predeterminado del sistema (comenzando a ingresar el nivel operativo establecido)
-
-
-
-
- 3. Reparación del fallo del sector `MBR`
- 4. Repare la falla de arranque de GRUB
1. Descripción general del proceso de arranque
El proceso de arranque del sistema operativo Linux
El proceso de arranque del sistema operativo Linux ( 面试题
):
-
(1) Autoprueba de encendido:
verifique el dispositivo de hardware y detecte el primer dispositivo que pueda iniciar el sistema, como un disco duro o una unidad óptica -
(2)
MBR
Arranque:
Ejecute el gestor de arranque GRUB ubicado en el sector MBR -
(3)
GRUB
Menú de arranque:
el gestor de arranque de GRUB lee el archivo de configuración de GRUB /boot/grb2/grub.cg para obtener la configuración y las ubicaciones de las rutas de los sistemas de archivo de imágenes y kernel, y muestra el menú de grub en la pantalla. -
(4) Cargue
Linux
el kernel :
cargue el kernel y el sistema de archivos de imagen en la memoria -
(5) inicialización del proceso de inicio:
agregue el controlador de hardware y el kernel carga el proceso de inicio en la memoria para ejecutarlo
2. Proceso de inicialización del sistema
2.1, proceso de inicio
- El kernel de Linux carga y ejecuta el programa /sbin/init
- El proceso init es el primer proceso en el sistema y el proceso padre de todos los procesos.
- El número de PID (etiqueta de proceso) del proceso de inicio siempre es 1
输入 pstree
以树状式显示系统进程
2.2.Systemd
Systemd es un software de inicio del sistema operativo Linux. CentOS7 utiliza un nuevo método de inicio de Systemd para reemplazar el
SysVinit tradicional
. El primer proceso de inicio que se ejecuta en CentOS7 es /lib/systemd/systemd
systemd es el proceso padre de todos los procesos |
使用
pstree -p
查看进程号,systemd的进程号是为1
La gestión tradicional de procesos de imit es ejecutar el script Shell1 para iniciar el servicio, que es propenso a bloquearse, lo que resulta en una baja eficiencia y una velocidad de inicio del sistema lenta. systemd puede iniciar más
procesos de servicio en paralelo y tiene la capacidad de iniciar servicios a pedido. , por lo que se inician menos procesos, mejorando así la velocidad de inicio del sistema.
2.3 Tipos de unidades de systemd
tipo de unidad | nombre de extensión | nombre de extensión |
---|---|---|
Service |
.servicio2 | Describir un servicio del sistema |
Enchufe | .enchufe | Describe un socket para la comunicación entre procesos. |
Dispositivo | .dispositivo | Describe un archivo de dispositivo reconocido por el núcleo |
Montar | .montar | .Describe un punto de montaje del sistema de archivos |
Automount |
.automontaje | Describe un punto de montaje automático para un sistema de archivos. |
Intercambio | .intercambio | 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 similares a cron) |
Instantánea | .instantánea | Se utiliza para guardar el estado de un svstemd |
Alcance | .alcance | Cree procesos externos mediante programación utilizando la interfaz de bus de systemd |
Rebanada | .rebanada | Describe un conjunto de procesos del sistema de gestión organizados jerárquicamente en un Caroup |
Target |
.objetivo | Describe un conjunto de unidades systemd |
2.4 Objetivos de Systemd correspondientes a los niveles de ejecución
nivel de carrera | objetivo de systemd | ilustrar |
---|---|---|
0 | poweroff.target |
关机 El estado que usa este nivel se cerrará |
1 | rescate.objetivo | 单用户 El modo no requiere una contraseña para iniciar sesión en el sistema para el mantenimiento de múltiples sistemas |
2 | objetivo multiusuario | Niveles de ejecución definidos por el usuario/específicos de la ciudad. El valor predeterminado es igual a 3 (la red no está habilitada en CentOS6) |
3 | objetivo multiusuario | interfaz de personajecompletoMulti usuariomodo, la mayoría de los servidores se ejecutan en este nivel |
4 | objetivo multiusuario | Niveles de ejecución definidos por el usuario/específicos del dominio. El valor predeterminado es igual a 3 |
5 | gráfico.objetivo | interfaz gráficadeMulti usuariomodo, que proporciona un entorno operativo gráficamente realista |
6 | reiniciar.objetivo | 重新启动 , usar este nivel reiniciará el host |
preguntas de entrevista |
init 3
切换单用户字符界面
init 5
切换多用户图形界面
inicial 0 | systemct1isolatepoweroff.objetivo | systemctlisolatereboot .objetivo | apagado | cerrar |
inicio 1 | systemct1isolatepoweroff.objetivo | ninguno | ninguno | Alternar modo de usuario único |
inicio 3 | systemct1isolatepoweroff.objetivo | ninguno | ninguno | Cambiar el modo multiusuario de la interfaz de caracteres |
inicio 5 | systemct1isolatepoweroff.objetivo | ninguno | ninguno | Alternar el modo multiusuario de GUI |
inicio 6 | systemctlisolatereboot .objetivo | reinicio systemctIl | reiniciar | reiniciar |
2.5 Obtener el nivel de ejecución actual
runlevel
2.6 Obtener el nivel operativo predeterminado del sistema
systemctl get-default
2.7 Establecer el nivel operativo predeterminado del sistema (comenzando a ingresar el nivel operativo establecido)
systemctl set-default multi-user.target
或者以更改软链接方式
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
ln -s创建软链接 -f强制
El principio de establecer el nivel de operación mediante un enlace suave es cambiar el archivo al que apunta el enlace suave /etc/systemd/system/default.target al nivel de operación correspondiente que debe configurarse.
3. Reparación MBR
de fallas en el sector
(1) Causa de la falla
- Daños causados por virus, troyanos, etc.
- Operación incorrecta de la partición, operación incorrecta de lectura y escritura del disco
(2) Fenómeno de falla
- Bootloader no encontrado, arranque interrumpido
- No se puede cargar el sistema operativo, pantalla negra después de arrancar
(3) Soluciones
- Los archivos de respaldo deben prepararse con anticipación
- Arranque en modo de rescate con el disco de instalación
- Restaurar desde archivo de copia de seguridad
MBR se encuentra en el primer sector físico del primer disco duro (/dev/sda), con un total de 512 bytes
1.1, copia de seguridad de datos de zona horaria MBR en otros discos dañados (/dev/sdb1)
fdisk /dev/sdb 创建分区,设置扇区大小
mkfs -t xfs /dev/sdb1 格式化磁盘分区
mkdir /backup 创建挂载文件
mount /dev/sdb1 /backup
dd if=/dev/sda of=/backup/mbr.bak bs=512 count=1
#直接复制磁盘sda的前512byte,而不是sda1(第一个分区)
1.2 Simular la destrucción del sector de arranque MBR
dd if=/dev/zero of=/dev/sda bs=512 count=1
复制0数据到sda的前512字节(MBR引导)
1.3 La interfaz de arranque ingresa al modo de emergencia y restaura los datos del sector MBR desde el archivo de copia de seguridad
Haga clic en la configuración de la máquina virtual para conectar el CD |
Esta interfaz se muestra después de volver a suspender el disco virtual |
cargar el modo de emergencia |
Ingrese al modo de primeros auxilios y configúrelo, y volverá a la normalidad después de reiniciar
sh-4.2# mkdir /backup
sh-4.2# mount /dev/sdb1 /backup #挂载带有备份文件的分区
sh-4.2# dd if=/backup/mbr.bak of=/dev/sda #恢复备份数据
sh-4.2# reboot #执行reboot命令退出临时Shell 环境,系统将会自动重启
4. Repare la falla de arranque de GRUB
(1) Causa de la falla
- El cargador de arranque GRUB en el MBR está dañado
- Falta el archivo grub.cfg y la configuración de arranque es incorrecta
(2) Fenómeno de falla
- El sistema se inicia atascado en el indicador "grub>"
(3) Soluciones
- Intente ingresar los comandos de arranque manualmente
Ingrese al modo de rescate, reescriba o restaure grub.conf desde la copia de seguridad - Reconstruir el programa grub para el sector MBR
Método 1 (entrada manual, 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 //内核的名字及位置等信息
grub> initrd16 /initramfs-3.10.0-693.el7.x86_64.img //镜像系统文件
grub> boot //引导boot
ll /boot //查看内核文件名
fdisk -l //查看分区UUID
Método 2: ingrese al modo de emergencia y restaure el cargador de arranque GRUB |
MBR位于第一块硬盘 (/dev/sda)的第一个物理扇区处,总共512字节,前446字节是主引导记录,分区表保存在MBR扇区中的第447-510字节中
.mkdir /bak
mount /dev/sdb1 /bak
dd if=/dev/sda of=/bak/grub.bak bs=446 count=1 //模拟对MRB中的GRUB引导程序的破坏,但并不破坏分区表
dd if=/dev/zero of=/dev/sda bs=446 count=1
//引导界面进入急救模式,从备份文件中恢复GRUB引导程序
sh-4.2# mkdir /backupdir
sh-4.2# mount /dev/sdb1 /backupdir
sh-4.2# dd if=/backupdir/qrub.bak of=/dev/sda
sh-4.2# exit
Método 3: Inicie la interfaz en modo de emergencia y reconstruya el archivo de configuración del menú de GRUB |
Simular archivos de configuración de grub dañados
rm -rf /boot/grub2/grub.cfg
重启后就出现以下情况
进入急救模式,加载光盘镜像,切换到系统根环境
Presione ESC mientras comienza a ingresar a la interfaz de arranque, seleccione la opción CDROM
Primero use el comando exit para salir de bash-4, 2
y luego reinicie con reinicio