¡Esta es una revisión vieja del documento!
Tabla de Contenidos
202.2 System Recovery
- Weight: 4
- Description: Candidates should be able to properly manipulate a Linux system during both the boot process and during recovery mode. This objective includes using both the init utility and init-related kernel options. Candidates should be able to determine the cause of errors in loading and usage of bootloaders. GRUB version 2 and GRUB Legacy are the bootloaders of interest. Both BIOS and UEFI systems are covered.
- Key Knowledge Areas:
- BIOS and UEFI
- NVMe booting
- GRUB version 2 and Legacy
- grub shell
- boot loader start and hand off to kernel
- kernel loading
- hardware initialisation and setup
- daemon/service initialisation and setup
- Know the different boot loader install locations on a hard disk or removable device.
- Overwrite standard boot loader options and using boot loader shells.
- Use systemd rescue and emergency modes.
- Terms and Utilities:
- mount
- fsck
- inittab, telinit and init with SysV init
- The contents of /boot/, /boot/grub/ and /boot/efi/
- EFI System Partition (ESP)
- GRUB
- grub-install
- efibootmgr
- UEFI shell
- initrd, initramfs
- Master boot record
- systemctl
Cargador de arranque
GRUB (Grand Unified Bootloader) cargador de arranque estándar utilizado en la actualidad para Linux.
Es un pequeño programa cargado en el MBR (Master Boot Record) cuya función es realizar la carga del kernel u otros sistemas operativos delegando en otros caargados.
GRUB debe conocer:
- La ubicación del kernel.
- La partición en la que se mostrará la raíz del sistema (
/)
Grub 1 (legacy)
Versión 1 de GRUB. Versión ya obsoleta, pero disponible en algunos sistemas.
Fichero de configuración /boot/grub/menu.lst
Ejemplo:
default 0 timeout 10 title Ubuntu 9.10, kernel 2.6.31-16-generic kernel /boot/vmlinuz-2.6.31-16-generic root=/dev/hda1 ro quiet splash initrd /boot/initrd.img-2.6.31-16-generic
default: indica qué sistema operativo arranca primerotimeout: cuenta atrás hasta que se arranque el sistema por defectotitle: nombre de la opción del menúkernel: ubicación del kernelinitrd: ramdisk
GRUB 2
Versión actual de GRUB.
Fichero de configuración /boot/grub/grub.cfg y no se debe modificar directamente.
Las opciones modificables por el usuario están en:
/etc/default/grub: opciones/etc/grub.d/: archivos con información de la configuración de GRUB.
En /etc/grub.d/ hay una serie de ficheros nombrados según el orden en que se usarán (00_header va antes que 05_debian_theme, por ejemplo)
El fichero de configuración se genera automáticamente mediante el uso de alguno de los dos comandos:
Para crear un nuevo fichero de configuración:
grub-mkconfig -o /boot/grub/grub.cfg
Aplicar cambios:
update-grub
Las entradas correspondientes a un sistema operativo en el archivo de configuración comienzan con la palabra menuentry y el contenido va entre llaves:
menuentry 'Linux 3.14.0' {
set root='hd0,msdos1'
linux /boot/vmlinuz-3.14.0 root=/dev/sda1 ro quiet
initrd /boot/initrd.img-3.14.0
}
set rootespecifica el disco y la partición a utilizarlinuxespecifica el archivo del kernel a usar y la particióninitrdespecifica el archivo ramdisk que se usará para descomprimir el kernel.
Podemos interrumpir el arranque normal del GRUB si cuando nos aparece en pantalla usamos las flechas del teclado para seleccionar otras opciones (así interrumpimos la cuenta atrás). Una vez hecho esto podemos seleccionar una entrada y editarla usando la tecla E. Una vez editada, pulsamos F10 para arrancar con los cambios realizados.
Aunque estamos editando partes del fichero /boot/grub/grub.cfg, los cambios que se hagan durante el arranque normal del GRUB no son permanentes.
Podemos pasarle parámetors al kernel para el arranque, añadiendo opciones en la línea linux del GRUB.
Reinstalar GRUB
grub-install [--root-directory=/boot] <DISPOSITIVO>
Ejemplo:
grub-install /dev/sda1
Si tenemos montado un RAID 1 por software, deberíamos instalar GRUB en los dos discos por si uno cae, poder arrancar con el otro.
Recuperación del sistema
El siguiente apartado trata de aplicar los conocimientos adquiridos para recuperar un sistema en caso de errores, utilizando los siguientes conceptos:
- init
- GRUB
grub-install
Reiniciar contraseña de root
Si no sabemos la contraseña de root o la hemos olvidado y tenemos acceso físico al sistema, podemos utilizar GRUB para acceder como root y establecer la contraseña que queramos.
Utilizamos como proceso de init /bin/bash en modo rw para poder escribir en el sistema de ficheros.
Al editar la entrada deseada en el GRUB, le pasamos una opción más a la línea linux:
linux /boot/vmlinuz-3.16.0.4-amd64 root=/dev/sda1 ro quiet init=/bin/bash rw
Con init=/bin/bash indicamos que en el arranque del kernel se saltará el proceso de arrancar el proceso init tal cual y va a arrancar /bin/bash. Al arrancar en esta shell, tendríamos una consola de root.
La opción rw es para que podamos hacer modificaciones en los ficheros de la partición y así realizar cambios en la contraseña de root:
passwd <NUEVA_CONTRASEÑA>
