Actualizado el 21 de Marzo del 2018 (Publicado el 27 de Febrero del 2018)
399 visualizaciones desde el 27 de Febrero del 2018
89,1 KB
20 paginas
Curso avanzado de Linux
Rafael Varela Pet
Unidad de Sistemas
Área de Tecnologías de la Información y Comunicaciones
Universidad de Santiago de Compostela
Curso avanzado de GNU/Linux
Curso avanzado de Linux
Recuperación del sistema
Curso avanzado de GNU/Linux
Recuperación del sistema
● Escenarios
– Olvido de la contraseña de root
– Recuperación del arranque
– Particiones dañadas
● Consideraciones previas:
– Preparar nuestro sistema para cuando haya que
realizar una recuperación
Curso avanzado de GNU/Linux
Consideraciones previas
● Puede ser que /usr/ no se encuentre accesible.
● Necesitamos un editor situado en /bin/
● Alternativas:
– elvis-tiny: editor vi reducido (vi para comenzar)
– nano / nano-tiny
– ed: editor mínimo (difícil de usar)
Curso avanzado de GNU/Linux
Consideraciones previas (2)
● Recopilar información:
– Tabla de particiones:
fdisk -l
– Tabla de montaje:
/etc/fstab
● Disponer disco de arranque:
– CD
– Memoria USB
– Disquete
Curso avanzado de GNU/Linux
Consideraciones previas (3)
● Identificar dispositivos
● /dev clásico
– Entradas estáticas para cada dispositivo que pueda
llegar a ser usado
– Registro de nombres:
http://www.lanana.org/docs/device-list/devices.txt
Curso avanzado de GNU/Linux
Consideraciones previas (4)
● udev: userspace devices
– /dev se genera dinámicamente
– obtiene la información de SysFs
– dispositivos nombrados según LSB
(www.linuxbase.org)
– Disponible en el kernel 2.6
Curso avanzado de GNU/Linux
Olvido contraseña root
● Iniciar sistema sólo con una shell:
boot: Linux init=/bin/sh
● El sistema raíz puede estar montado en modo de
sólo lectura:
mount -n -o remount,rw /
● Cambiar la contraseña:
– Comando passwd
– Editar fichero /etc/shadow
Curso avanzado de GNU/Linux
Olvido contraseña root (2)
● Problema: /bin/sh es un ejecutable dinámico
● Puede no iniciarse correctamente
● Utilizar sash (paquete sash)
● Iniciar sistema:
boot: Linux init=/bin/sash
Curso avanzado de GNU/Linux
Olvido contraseña root (3)
● Alternativa: iniciar con disco de arranque
– LiveCD: Knoppix, GRML, etc.
– Disco de instalación de Debian
– Montamos partición raíz y editamos fichero
/etc/shadow
Curso avanzado de GNU/Linux
Generar disco de arranque
● LILO: mkrescue
Genera disquetes o CDs de arranque usando la
información en /etc/lilo.conf
● GRUB
– Paquete grub-disk
(/usr/share/grub-disk/grub-0.97-i486-pc.iso)
– Generar a mano
Curso avanzado de GNU/Linux
Generar disco arranque GRUB
● mkdir -p iso/boot/grub
● cp /lib/grub/i386-pc/stage2_eltorito iso/boot/grub
● (Opcional) Crear fichero menu.lst en
iso/boot/grub
● (Opcional) Añadir otras utilidades al directorio
● Crear una imagen ISO9660:
$ mkisofs -R -b boot/grub/stage2_eltorito -no-emul-
boot \ -boot-load-size 4 -boot-info-table -o grub.iso iso
Curso avanzado de GNU/Linux
Arranque manual con GRUB
● Entrar en modo comando (pulsar “c”)
● Buscar la partición donde está el arranque del
sistema. Ejemplo:
find /boot/grub/stage1
– El camino a buscar depende del particionado de
nuestro disco duro
– Por ejemplo, si /boot está en una partición
independiente, buscaremos /grub/stage1
● Establecer el “root device”:
root (hd0,2)
Curso avanzado de GNU/Linux
Arranque manual con GRUB
● Establecer el kernel a iniciar:
kernel /boot/vmlinuz-x.y.z root=/dev/hda3 single
● (Opcional) Establecer disco RAM inicial
initrd /boot/initrd-x.y.z
– Los kernels Debian utilizan initrd
– Otros kernels pueden no necesitarlo
● Arrancar:
boot
Curso avanzado de GNU/Linux
Instalar GRUB
● Repetir pasos anteriores (excepto kernel):
find /boot/grub/stage1
root (hd0,2)
● Instalarlo en el sector de arranque del primer
disco:
setup (hd0)
Curso avanzado de GNU/Linux
Falla /var
● Perdemos la información sobre los paquetes
instalados (/var/lib/dpkg/status)
● Podemos encontrar copias en
/var/lib/dpkg/status-old
/var/backups/dpkg.status.*.
● Problema: también están en /var
● Colocar /var/backups en otro sistema de archivos
Curso avanzado de GNU/Linux
Falla /var (2)
● Guardar la selección de paquetes con
dpkg --get-selections "*" > selecciones
● Recuperar /var de otro sistema con la misma
versión (Sarge, Etch, ...)
● Volver a establecer la selección de paquetes
dpkg --set-selections < selecciones
Curso avanzado de GNU/Linux
Falla /usr
● Ciertas utilidades dejan de funcionar al no
existir /usr/bin /usr/lib ...
● Recuperar de otro sistema similar
Curso avanzado de GNU/Linux
Otros
● Instalar paquetes en un sistema que no arranca:
– Utilizar disco de arranque
– Montar la(s) particion(es) del sistema
– dpkg --root /destino -i nombre_paquete.deb
● Si dpkg no funciona:
– lynx http://ftp.usc.es/mirror/linux/debian/pool/main/d/dpkg/
– ar x dpkg_version_arquit.deb
– tar xzfv data.tar.gz
Curso avanzado de GNU/Linux
Referencias
● http://www.es.debian.org/doc/manuals/reference/
● http://es.wikipedia.org/wiki/Linux_Standard_Base
● http://stason.org/TULARC/os/linux-faq/index.html
Curso avanzado de GNU/Linux
Comentarios de: Curso avanzado de Linux - Recuperación del sistema (0)
No hay comentarios