Contexto
- Windows 10 Inicio 21H1
- Caja virtual 6.1
- Máquina virtual CentOS 8
- Modo BIOS:
Pregunta
¿Qué tecnología de arranque se utiliza en esta máquina virtual?
Sospecho que BIOS está cargando un cargador de arranque MBR de etapa 1, que carga GRUB2. Lo que resulta confuso es el diseño mucho más moderno de la /boot
partición.
Se siente como un híbrido de systemd-boot preparado /boot
, con configuración de estilo systemd-boot, pero BIOS, MBR y GRUB2 en control.
Análisis
Creo que systemd-boot solo se puede usar en sistemas UEFI con discos GPT que contengan un sistema de archivos basado en FAT para /boot
.
Mi instalador no ha creado una partición legítima del cargador de arranque extendido systemd-boot (XBOOTLDR), ya /dev/sda1
que XFS no está basado en FAT.
Dado que mi máquina virtual está configurada para NO usar EFI (por lo que está predeterminada en BIOS), creo que CentOS 8 ha creado elestructura de directorio correctapara systemd-boot ( /boot/loader/entries/
), pero en untipo de partición incorrecto(XFS en versiones que no sean ESP/XBOOTLDR). Esto no es un problema ya que estoy usando BIOS.
Por lo que puedo decir, GRUB2 está siendo cargado por el sector de arranque MBR. Entonces, GRUB2 recoge los fragmentos del menú de inicio en /boot/loader/entries/
?
/boot/efi/*
son directorios vacíos; normalmente los veo llenos de un archivo de configuración de grub e imágenes EFI.
/boot/grub2/
contiene grub.cfg
y device.map
- i386-pc/*.mod
buenas señales de una instalación de GRUB2 saludable.
Hay entradas que indican que el sistema está utilizando la configuración de estilo systemd-boot en lugar de GRUB simple:
[root@c8 ~]# cat /boot/loader/entries/7d05af5fc5db47fbb5e0c5c6d5bdece7-4.18.0-305.10.2.el8_4.x86_64.conf
title CentOS (4.18.0-305.10.2.el8_4.x86_64) 8
version 4.18.0-305.10.2.el8_4.x86_64
linux /vmlinuz-4.18.0-305.10.2.el8_4.x86_64
initrd /initramfs-4.18.0-305.10.2.el8_4.x86_64.img $tuned_initrd
options $kernelopts $tuned_params
id centos-20210720173403-4.18.0-305.10.2.el8_4.x86_64
grub_users $grub_users
grub_arg --unrestricted
grub_class kernel
Inspección de disco
Disco MBR y tabla de particiones msdos:
[root@c8 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 80G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 79G 0 part
├─cl-root 253:0 0 49.8G 0 lvm /
├─cl-swap 253:1 0 5G 0 lvm [SWAP]
└─cl-home 253:2 0 24.3G 0 lvm /home
sr0 11:0 1 1024M 0 rom
[root@c8 ~]# parted -l /dev/sda
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 85.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 1075MB 1074MB primary xfs boot
2 1075MB 85.9GB 84.8GB primary lvm
[root@c8 ~]# file -sL /dev/{sda,sda1}
/dev/sda: DOS/MBR boot sector
/dev/sda1: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)
[root@c8 ~]# df -hTP
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/cl-root xfs 50G 6.1G 44G 13% /
/dev/sda1 xfs 1014M 407M 608M 41% /boot
No se puede inspeccionar la imagen cargada por el firmware; otra señal de que el BIOS está a cargo:
[root@c8 ~]# bootctl status
Couldn't find EFI system partition. It is recommended to mount it to /boot or /efi.
Alternatively, use --path= to specify path to mount point.
System:
Not booted with EFI
[root@c8 ~]# efibootmgr -v
EFI variables are not supported on this system.
Respuesta1
A partir de Fedora 30, el paquete GRUB2 de la distribución viene con un nuevomódulo "blscfg"que lee los archivos de configuración de la especificación del cargador de arranque y produce elementos del menú de GRUB.
En general, la configuración de GRUB puede provenir de muchas fuentes. El grub.cfg estándar se genera a través de scripts extensibles, algunos de los cuales se instalan mediante paquetes separados (como os-prober), y no se limita simplemente a recopilar una lista de kernels de /boot; no habría nada particularmente inusual si su En cambio, la distribución tenía grub-mkconfig que transformó /boot/loader/entries en un grub.cfg.