EmanueleC
Utente Èlite
- Messaggi
- 5,683
- Reazioni
- 1,865
- Punteggio
- 168
Il primo invio chiamato Initial Bootstrapping è un backup completo e a seconda delle dimensione impiegherà del tempo.
Il secondo invio può essere fatto in modo incrementale, se conservato l'ultimo snapshot inviato. A differenza di rsync, cp, che devono scansionare l'origine e la destinazione per confrontare i cambiamenti e sapere cosa copiare, Btrfs send non ha bisogno di leggere un singolo file sulla sorgente o destinazione per sapere cosa è cambiato, ed è molto più veloce. Btrfs send|receive è adatto per il backup, ma è principalmente uno schema di replica. Non ha opzioni di filtro per escludere o includere cartelle/file. Preserva tutto: date, permessi ecc.
Per approfondire btrfs send|receive: https://btrfs.readthedocs.io/en/latest/Send-receive.html
Per inviare lo snapshot di un subvolume, questo deve essere in sola lettura, la destinazione deve essere una partizione Btrfs.
Il secondo invio può essere fatto in modo incrementale, se conservato l'ultimo snapshot inviato. A differenza di rsync, cp, che devono scansionare l'origine e la destinazione per confrontare i cambiamenti e sapere cosa copiare, Btrfs send non ha bisogno di leggere un singolo file sulla sorgente o destinazione per sapere cosa è cambiato, ed è molto più veloce. Btrfs send|receive è adatto per il backup, ma è principalmente uno schema di replica. Non ha opzioni di filtro per escludere o includere cartelle/file. Preserva tutto: date, permessi ecc.
Per approfondire btrfs send|receive: https://btrfs.readthedocs.io/en/latest/Send-receive.html
Per inviare lo snapshot di un subvolume, questo deve essere in sola lettura, la destinazione deve essere una partizione Btrfs.
- Mount del filesystem radice (nel mio caso la partizione è /dev/sda2):
Codice:sudo mount -t btrfs -o --options-source /dev/sda2 /mnt
- Snapshot dei subvolumi in sola lettura con l'opzione "-r"
radice
Codice:sudo btrfs subvolume snapshot -r / /mnt/snap_root1
Codice:sudo btrfs subvolume snapshot -r /home /mnt/snap_home1
- Invio degli snapshot sulla destinazione di backup
radice
Codice:sudo btrfs send /mnt/snap_root1 | sudo btrfs receive /percorso/backup/
Codice:sudo btrfs send /mnt/snap_home1 | sudo btrfs receive /percorso/backup/
- Secondo snapshot per inviare solo la differenza tra snapshot 1 e 2
radice
Codice:sudo btrfs subvolume snapshot -r / /mnt/snap_root2
Codice:sudo btrfs subvolume snapshot -r /home /mnt/snap_home2
- Inviare solo la differenza (incremental)
radice
Codice:sudo btrfs send -p /mnt/snap_root1 /mnt/snap_root2 | sudo btrfs receive /percorso/backup/
Codice:sudo btrfs send -p /mnt/snap_home1 /mnt/snap_home2 | sudo btrfs receive /percorso/backup/
- A questo punto si potrebbe rimuovere lo snapshot 1, per poi al prossimo backup creare uno snapshot 3.
- Ripristino dal backup per home e radice da fare da una distro live
Mount della partizione da ripristinare
Codice:sudo mount -t btrfs -o noatime,compress=zstd:1 /dev/sdXY /mnt
Per la radice:
Codice:sudo btrfs send /percorso/backup/snap_root2 | sudo btrfs receive /mnt/
Codice:sudo btrfs send /percorso/backup/snap_home2 | sudo btrfs receive /mnt/
- Se si vuole rinominare il subvolume per non modificare il mount su "/etc/fstab" (se si preferisce modificare fstab e puntare al subvolume: subvol=snap_home1)
Rinomina del vecchio:
Codice:sudo mv /mnt/@ /mnt/@_vecchio
Codice:sudo mv /mnt/@home /mnt/@home_vecchio
Codice:sudo mv /mnt/snap_root2 /mnt/@
Codice:sudo mv /mnt/snap_home2 /mnt/@home
- Riportare il subvolume in lettura e scrittura
Codice:sudo btrfs property set /mnt/@ ro false
Codice:sudo btrfs property set /mnt/@home ro false
- Per ripristinare un sistema su una partizione vuota:
- Su sistemi EFI, con gparted, Dispositivo > crea tabella partizione > scegliere gpt crea una partizione di 500mb circa in fat32, vai su: Partizione > Gestione flag > selezionare boot|esp:
creare altra partizione in btrfs per ripristino dei subvolumi sul nuovo sistema.
Mount della nuova partizione:
Codice:sudo mount -t btrfs -o noatime,compresszstd:1,autodefrag /dev/sdXY /mnt
- Invio dei backup sulla nuova partizione
Codice:sudo btrfs send /percorso/backup/snap_root2 | sudo btrfs receive /mnt/
Codice:sudo btrfs send /percorso/backup/snap_home2 | sudo btrfs receive /mnt/
- Rinomina i subvolumi
Codice:sudo mv /mnt/snap_root2 /mnt/@
Codice:sudo mv /mnt/snap_home2 /mnt/@home
- Riportare il subvolume in lettura e scrittura
Codice:sudo btrfs property set /mnt/@ ro false
Codice:sudo btrfs property set /mnt/@home ro false
- Modificare l'UUID delle vecchie partizioni presenti sul subvolume radice, con i nuovi UUID visibili da GNOME dischi: /mnt/@/etc/fstab
- Smontare la partizione
Codice:sudo umount /mnt
- Mount della radice
Codice:sudo mount -t btrfs -o noatime,compress=zstd:1,autodefrag,subvol=@ /dev/sdXY /mnt
-
Codice:
for i in dev proc sys run; do sudo mount --bind /$i /mnt/$i; done
- Mount della partizione EFI creata precedentemente
Codice:sudo mount /dev/sdXY /mnt/boot/efi
- Mount bind delle cartelle dev, proc, sys, run
Codice:for i in dev proc sys run; do sudo mount --bind /$i /mnt/$i; done
- chroot per installare il grub (testato su Ubuntu)
Codice:sudo chroot /mnt
Codice:grub-install /dev/sdY
Codice:update-grub
Codice:exit
- Umount della partizione EFI
Codice:sudo umount /mnt/boot/efi
- Riavvio del sistema. Se tutto è andato come previsto, dovremmo avere il sistema funzionante.
Ultima modifica da un moderatore: