IES Miguel Romero Esteo - Departamento de
Informática - Linux/Unix
Particionado / Copia de
seguridad y restauración de un sistema completo.
Procedimiento sobre particiones de disco.
Comandos y
Aplicaciones:
fdisk, wget, VirtualBox, clonezilla
Enunciado:
Taller/Práctica que permitirá al alumno trabajar en la copia
de seguridad y consiguiente restauración de un sistema
completo actuando sobre particiones convencionales de un disco
con Tabla de Particiones GPT conectado en un sistema con
firmware EFI
---> CONSTRUCCION DEL SISTEMA OBJETO DE
LA COPIA DE SEGURIDAD <---
Creación de una máquina virtual.
Con VirtualBox y en el sistema personal del
alumno (USB128) crear una máquina virtual con las siguientes
especificaciones:
- Nombre de la máquina virtual: deb-partitioned-EFI
- Activar EFI.
- Interfaz de paravirtualización: Ninguno
- Tipo: Linux
- Versión: Debian (64-bits)
- Tamaño de la memoria RAM: 2048 Mb.
- Red:
- Adaptador
1 conectado en modo "Sólo anfitrión", lo cual,
requiere la creación previa de una "red sólo
anfitrión"
- Controladora SATA
- disco1:
- nombre: deb-partitioned-GPT
- Tipo:
VDI
- Almacenamiento:
Tamaño dinámico
- Tamaño: 5 Gb
- disco2:
- nombre: deb-partitioned-auxiliar
- Tipo:
VDI
- Almacenamiento:
Tamaño dinámico
- Tamaño: 6 Gb
Particionado del disco1
antes de la instalación del sistema
Descargar la imagen ".iso" de la
última versión estable de la distro sysresccd
(sirve alguna que tenga ya descargada el alumno y que no sea
demasiado antigua). Conectar la imagen a la controladora IDE de
la VM y arrancar con ella.
Para adquirir un mayor conocimiento y
destreza en el uso y manejo de las particiones de disco, no
vamos a dejar en manos del instalador del sistema el
particionado, en su lugar, utilizaremos las herramientas de
consola que proporciona sysresccd
para hacerlo por adelantado.
Adecuación de sysresccd:
- En el menú inicial
del cargador de arranque añadir el parámetro nofirewall
al kernel (se hace situando el cursor sobre la primera
opción de arranque y pulsando la letra "e").
- Una vez que tengamos
prompt de root, atención
con el mapa de teclado (loadkeys es)
y configurar la ip con el valor 10.0.2.200/24
- Asignar una password
a root
- Conectarse via ssh a
la VM y continuar con el paso siguiente.
Particionado del disco1 y disco2
- Para particionar el disco contamos con varias herramientas
de consola, las cuales, en última instancia, son de las que
tiran las herramientas gráficas y de cursor. Las más
relevantes son: cfdisk(8), cgdisk(8), fdisk(8),
parted(8), sfdisk(8), sgdisk(8), gdisk(8)
- Proporcionar al disco1 el particionado que se
refleja en la tabla de abajo haciendo uso de la herramienta fdisk(8).
- Los puntos de montaje y los sistemas de ficheros se
establecerán con la herramienta de particionado que
proporciona el proceso de instalación de Debian GNU/Linux.
- Al acabar, apagar la VM y desconectar la imagen .iso
de sysresccd
DISCO1 - TABLA DE
PARTICIONES GPT.
|
Mount point
|
type |
FS
|
size
|
none
|
ESP (EFI Filesystem) *
|
vfat
|
200 MB
|
/ |
primary - Linux filesystem
|
xfs |
2500 MB |
/home |
primary - Linux filesystem |
xfs |
400 MB |
/opt |
primary - Linux filesystem |
ext4 |
100 MB |
none |
primary - intercambio
|
swap |
512 MB |
(*) Esta es una partición especial
de tipo EFI, donde el instalador de Debian (y el de cualquier
otra distro) insertará el cargador de arranque (GRUB o cualquier
otro), el cual, una vez finalizada la instalación, permitirá
iniciar el sistema de acuerdo a la secuencia
PowerOn->UEFI->GRUB->Kernel. Sin esta partición,
conteniendo el cargador de arranque, no arrancaría un sistema
instalado en un disco GPT con firmware UEFI.
DISCO2 - TABLA
DE PARTICIONES GPT
|
Mount point
|
type
|
FS
|
size
|
none
|
primary - Linux filesystem
|
xfs
|
100%
|
Instalación del sistema en
la VM
- Descargar
la imagen de instalación de la última versión estable de
Debian GNU/Linux (archivo *-amd64-netinst.iso para
instalación desde la red).
- Conectar
la imagen .iso a la controladora IDE la VM.
- Iniciar la
VM y proceder con la instalación de Debian GNU/Linux
respetando escrupulosamente el particionado hecho
anteriormente en ambos discos.
- El perfil
de instalación es "Sistema Base sin entorno gráfico".
- Al
terminar la instalación, iniciar el sistema, hacer login
como root y apagar la VM.
---> PROCEDIMIENTOS
DE BACKUP/RESTORE DEL SISTEMA OBJETIVO <---
BACKUP con el comando dd
- Arrancar deb-partitioned-EFI
con alguna versión estable y actualizada de un
sistema GNU/Linux-LiveCD. Se recomienda sysresccd.
- Una vez que tengamos prompt de root
configurar la ip con el valor 10.0.2.200/24.
- Asignar
una password a root.
- Conectarse
via ssh a la VM con el usuario root.
- Montar el disco2
en un directorio creado al efecto y de nombre /mnt/backup-hd.
- Salvar la tabla de particiones:
# dd if=/dev/sda of=/mnt/backup-hd/gpt-sda.img
count=32
-
Verificar la
integridad de las particiones del disco1
(comando fsck).
-
Con
el procedimiento de abajo, marcamos con ceros el espacio
libre de las particiones del sistema a salvaguardar, con
esto evitamos que se incluya en la imagen de la partición,
es decir, sólo salvamos los datos, con el consiguiente
ahorro de tiempo a la hora de restaurar y de espacio en el
disco de backup:
{n} = número de la
partición
/mnt/partition = Crearlo
para la operación y eliminarlo al acabar.
# mount /dev/sda{n} /mnt/partition
# dd if=/dev/zero of=/mnt/partition/marca.zeros
bs=1M;
# rm -f /mnt/partition/marca.zeros;
# umount
/dev/sda{n}
- Crear en el disco de backup (disco2) las
imágenes comprimidas de las particiones del sistema a
salvaguardar, excepto el contenido de la partición EFI y el de
la partición de swap.
# dd if=/dev/sda{n} status=progress |
gzip > /mnt/backup-hd/sda{n}-backup-img.gz
- Provocar
un desastre irrecuperable en el disco del sistema
salvaguardado.
# dd if=/dev/zero
of=/dev/sda count=1000 status=progress
- Reiniciar deb-partitioned-EFI
desde el disco sda y
verificar que NO SE PUEDE.
RESTORE con el comando dd
-
Arrancar
deb-partitioned-EFI
con alguna versión estable y actualizada de un
sistema GNU/Linux-LiveCD. Se recomienda sysresccd
-
Una
vez que tengamos prompt de root configurar
la ip con el valor 10.0.2.200/24.
-
Asignar
una password a root.
-
Conectarse
via ssh a la VM con el usuario root.
-
Montar
el disco2 en un
directorio creado al efecto y de nombre /mnt/backup-hd.
- Restaurar la tabla de particiones y verificar el
fin correcto de la operación.
cat /mnt/backup-hd/gpt-sda.img >
/dev/sda
fdisk -l /dev/sda
- Ejecutar el comando partprobe para que el
kernel de por enterado de la nueva tabla de particiones
existente en el disco1.
- Restaurar las imágenes de las particiones del sistema
salvaguardado desde el disco de backup.
cat /mnt/backup-hd/sda{n}-backup-img.gz
| gzip -d | dd of=/dev/sda{n} status=progress
{n} = número de la
partición
- Verificar la integridad de lo sistemas de ficheros. OJO!! para
cada tipo de sistema de ficheros existe un comando diferente (fsck.ext2;
xfs_repair)
- Restaurar GRUB aplicando esta
receta.
- Formatear la partición de swap
para que sea usable. Se hace con el comando mkswap.
- Actualizar /etc/fstab con los
nuevos UUID de los sistemas de ficheros presentes en dicho
fichero (normalmente los de la partición EFI y la de SWAP)
- Verificar la integridad de las
particiones del disco1 con el
comando fsck.
- Reiniciar deb-partitioned-EFI desde el disco sda y verificar que
TODO FUNCIONA..... (o no :-()
.. (seguramente habrá que intervenir en el menú de
opciones de la EFI de la máquina virtual para insertar una
nueva opción de arranque y colocarla en primer lugar)
---> RESERVA DE LAS COPIAS DE
SEGURIDAD EN UN SERVIDOR EXTERNO con el comando scp
<---
Este
procedimiento se realiza si la restauración ha ido bien y el
sistema queda tal cual estaba después de la instalación, en
caso contrario, se repetirá el --> PROCEDIMIENTOS DE
BACKUP/RESTORE DEL SISTEMA OBJETIVO <-- hasta que
todo salga bien.
- Iniciar deb-partitioned-EFI
- Hacer login con el usuario root
desde la consola.
- Configurar la ip con el
valor 10.0.2.200/24.
- Conectarse via ssh a
la deb-partitioned-EFI
con el usuario root
y continuar con el siguiente paso.
- Montar el disco2 en /mnt
- Solicitar al profesor un usuario,
contraseña, dirección IP del servidor de destino y
ubicación en el mismo.
- Conjugar debidamente el comando scp
para llevar las copias de seguridad de las particiones a
la ubicación dada.
- Informar al profesor
cuando estén subidas para
verificación.