User Tools

Site Tools


doc:appunti:linux:sa:restore_bare_metal

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:linux:sa:restore_bare_metal [2023/02/08 14:39] niccolodoc:appunti:linux:sa:restore_bare_metal [2023/02/08 17:54] (current) – [Copiare una directory da host remoto] niccolo
Line 5: Line 5:
 ===== Partizionamento del disco ===== ===== Partizionamento del disco =====
  
-In generale si dovrà avere una macchina nuova con un disco vuoto su cui effettuare il restore. È possibile contestualmente aggiornare una macchina con disco partizionato **DOS/MBR** e **BIOS legacy** ad una installazione con disco partizionato **GPT** e boot **EFI**.+In generale si dovrà avere una macchina nuova con un disco vuoto su cui effettuare il restore. È possibile contestualmente aggiornare una macchina con disco partizionato col metodo obsoleto **DOS/MBR** e un **BIOS legacy** ad una installazione con disco partizionato **GPT** e boot **EFI**.
  
 Dopo aver avviato la macchina con una distribuzione live moderna (es. **[[https://grml.org/|GRML 2022]]**), si esegue il partizionamento con **parted**: Dopo aver avviato la macchina con una distribuzione live moderna (es. **[[https://grml.org/|GRML 2022]]**), si esegue il partizionamento con **parted**:
Line 13: Line 13:
 </code> </code>
  
 +Uno schema standard con partizioni per GRUB, una per le immagini EFI e partizioni separate per **rootfs**, **swap**,  **var** e **home** viene realizzato come segue:
  
 +<code>
 +mklabel gpt
 +mkpart primary   1.0MB   10.0MB
 +mkpart primary  10.0MB  100.0MB
 +mkpart primary 100.0MB   60.0GB
 +mkpart primary  60.0GB   68.0GB
 +mkpart primary  68.0GB  200.0GB
 +mkpart primary 200.0GB  100%
 +set 1 bios_grub on
 +set 2 boot on
 +set 2 esp on
 +name 3 rootfs
 +name 4 swap
 +name 5 var
 +name 6 home
 +</code>
 +
 +La partizione **bios_grub** deve contenere solo il secondo stadio di GRUB, quindi **1 Mb** sarebbe già sufficiente. La partizione **boot esp** contiene invece il codice EFI per i vari sistemi operativi installati (in caso di sistemi multiboot); un solo sistema operativo GNU/Linux Debian 11 richiede un BIOS EFI di circa **6 Mb**.
  
 ===== Restore da Borg Backup ===== ===== Restore da Borg Backup =====
Line 19: Line 38:
 Se si utilizza **Borg backup** per effettuare le copie di sicurezza è necessario eseguire il restore dell'ultima versione disponibile. Se si utilizza **Borg backup** per effettuare le copie di sicurezza è necessario eseguire il restore dell'ultima versione disponibile.
  
 +FIXME
 +
 +
 +===== Copiare una directory da host remoto =====
 +
 +Se i file originali sono contenuti semplicemente in una directory di un host remoto è possibile copiarli, ma si devono avere alcune accortezze. Ad esempio **scp** non va bene perché segue i link simbolici (cioè copia i file e non ricrea i link).
 +
 +Se si desidera copiare una directory da un host remoto **mantenendo i symlink** si può ricorrere ad un trucco che utilizza **tar**. In questo esempio si esegue ssh dalla macchina vuota verso l'host che contiene i dati, quindi è possibile trasferire con tar una intera cartella:
 +
 +<code bash>
 +cd /
 +ssh root@backup.server.org 'cd /home/backups/restore/; tar cf - bin' | tar xvf - --numeric-owner
 +</code>
 +
 +Vedere come si può usare **rsync** FIXME
 +
 +===== MySQL =====
 +
 +Si deve creare la data directory, assegnare i permessi opportuni e inizializzarla (testato con MariaDB 10.5 su Debian 11 Bullseye):
 +
 +<code>
 +mkdir /var/lib/mysql
 +chown mysql.mysql /var/lib/mysql/
 +chmod 700 /var/lib/mysql/
 +mysql_install_db
 +systemctl start mysql
 +</code>
 +
 +Quindi è possibile fare il restore del file creato con **%%mysqldump --all-databases%%**:
 +
 +<code>
 +zcat /home/backups/mysql/20230205.dump.gz | mysql
 +</code>
 +
 +===== PostgreSQL =====
 +
 +Se la data directory è completamente vuota bisogna crearla con i permessi giusti:
 +
 +<code>
 +mkdir -p /var/lib/postgresql/13/main
 +mkdir -p /var/log/postgresql/
 +chown -R postgres.postgres /var/lib/postgresql/
 +chown -R postgres.postgres /var/log/postgresql/
 +chown -R postgres.postgres /etc/postgresql/
 +</code>
 +
 +Quindi va inizializzata:
 +
 +<code>
 +su - postgres
 +/usr/lib/postgresql/13/bin/initdb -D /var/lib/postgresql/13/main
 +</code>
 +
 +A questo punto è possibile avviare il servizio:
 +
 +<code>
 +systemctl start postgresql@13-main
 +</code>
 +
 +E fare il restore del file creato con **pg_dumpall**:
 +
 +<code>
 +su - postgres
 +psql --file=pg_dumpall_20230206.dump
 +</code>
  
doc/appunti/linux/sa/restore_bare_metal.1675867179.txt.gz · Last modified: 2023/02/08 14:39 by niccolo