Przywracanie systemu Linux. Wykorzystanie backupu – Bacula

30 kwietnia 2015

Procedura przywracania systemu Linux. Wykorzystanie backupu, który został wcześniej utworzony przez oprogramowanie Bacula.

Założenia :

– brak dostępu do systemu klienta Bacula

– uszkodzony dysk (np. /dev/sda)

– wykonano wcześniej backup systemu

– mamy dostęp do innego systemu Linux/Unix (np. KNOPPIX Linux Live CD), który będzie mógł posłużyć do zamontowania partycji (nowego dysku).

Rozwiązanie :

KROK 1:

Uruchamiamy system KNOPPIX Linux Live CD. System można pobrać za darmo ze strony :

http://www.knoppix.org

Można uruchomić dowolny inny system Linux/UNIX i zamontować nową partycję w celu przywrócenia danych z backupu. Polecam używanie systemu Knoppix ponieważ posiada już zainstalowanego klienta Bacula. Klient ten jest potrzebny do przywrócenia danych. Jeżeli klienta Bacula nie ma w systemie, to należy zainstalować.

W systemach opartych na Debianie wystarczy wykonać :

apt-get update

apt-get install bacula-client

KROK 2:

Należy przejść do katalogu /etc/bacula i skonfigurować plik konfiguracyjny : bacula-fd.conf

Przykładowa konfiguracja :

Director {
Name = bacula-dir
Password = "postfix-fd-haslo"
}

#Name - nazwa zarządcy uprawnionego do używania klienta
#Password - hasło którym zarządca będzie się autoryzował z klientem

FileDaemon {
Name = postfix-fd
FDport = 9102
WorkingDirectory = /var/lib/bacula
Pid Directory = /var/run/bacula
Maximum Concurrent Jobs = 20
FDAddress = 192.168.3.108
}

#Name - nazwa klienta
#FDAddress - adres IP interfejsu, na którym działa klient.
#Należy pamiętać aby taki sam adres IP (FDAddress) zdefiniować później
#u zarządcy na serwerze Bacula (dla celów przywracania).
#FDPort - numer portu na którym nasłuchuje klient
#PID Directory - tutaj zapisywany jest numer ID procesu
#Maximum Concurrent Jobs - ilość zadań jakie jednocześnie może obsłużyć klient

Messages {
Name = Standard
director = bacula-dir = all, !skipped, !restored
}

#Director - nazwa zarządcy oraz poziom raportowania

Restartujemy usługę klienta po konfiguracji :

/etc/init.d/bacula-fd restart

KROK 3:

Podłączamy nowy dysk do komputera.

Sprawdzamy na systemie Knoppix, czy jest dostępny nowy dysk :

fdisk -l

Tworzymy nową tablicę partycji (jeżeli posiadamy kopię tablicy partycji z uszkodzonego systemu, to można ją przywrócić)

Założenie : brak kopii tablicy partycji

Aby utworzyć partycje dla nowego dysku np. : /dev/sdb

Wykonujemy w konsoli :

fdisk /dev/sdb

Korzystamy z dostępnego menu.

Po utworzeniu partycji np. /dev/sdb1, tworzymy nowy system plików :

mkfs -t ext3 /dev/sdb1

Następnie nową utworzoną partycję należy zamontować w systemie KNOPPIX Linux Live CD:

Jeśli punktem montowania będzie np. /mnt wykonujemy w konsoli :

mount /dev/sdb1 /mnt

KROK 4:

Zdefiniowanie zadania przywracania plików – Restore :

Otwieramy plik konfiguracyjny Directora (bacula-dir.conf LUB inny plik np. postfix-fd.conf, który został załączony do konfiguracji Directora):

nano /usr/local/bacula/etc/bacula-dir.conf

Dodajemy nowe zadanie typu Restore:

Przykładowa definicja dyrektywy JOB :

Job {
Name = RestoreFiles
Type = Restore
Client= postfix-fd
FileSet= postfix-fd
Storage = Dysk
Pool = Backup_Pelny-postfix-fd
Messages = Daemon-bacula-dir
}

Zapisujemy zmiany w pliku.

Wykonujemy restart usługi :

/usr/local/bacula/sbin/bacula restart

Uruchamiamy konsolę Bacula “narzędzie Bconsole” oraz przeprowadzamy Restore (tzw. przywracanie danych z wykonanego wcześniej backupu) :

W konsoli wykonujemy :

list jobs

Sprawdzamy backupy jakie zostały wcześniej wykonane. Najczęściej przywracanym backupem jest ten najnowszy. Zapamiętujemy ID jego zadania.

W konsoli Bacula wykonujemy :

restore jobid=podajemy_tutaj_ID_zadania_backupu_który_chcemy_przywrócić

Jeśli chcemy przywrócić wszystkie dane z backupu, wpisujemy w konsoli :

mark *

Zostanie wyświetlona informacja, ile plików zostało zaznaczonych do przywrócenia.

Następnie wykonujemy:

done

Przykładowe zadanie Restore :

1,826 files selected to be restored.

Automatically selected Client: postfix-fd
Run Restore job
JobName: RestoreFiles
Bootstrap: /opt/bacula/working/bacula-dir.restore.2.bsr
Where: *None*
Replace: always
FileSet: postfix-fd
Backup Client: postfix-fd
Restore Client: postfix-fd
Storage: Dysk
When: 2015-04-29 19:28:02
Catalog: Baza_Bacula
Priority: 10

W zadaniu nie ma określonego parametru Where, gdzie pliki (do jakiej lokalizacji) mają być przywrócone.

Wpisujemy :

mod

Należy wybrać parametr do zmodyfikowania :

Parameters to modify:
1: Level
2: Storage
3: Job
4: FileSet
5: Restore Client
6: When
7: Priority
8: Bootstrap
9: Where
10: File Relocation
11: Replace
12: JobId
13: Plugin Options

Jeżeli chcemy zmienić parametr Where, należy wybrać 9.

Należy następnie podać pełną ścieżkę do katalogu do którego zostaną przywrócone dane. Wcześniej zamontowaliśmy partycję /dev/sdb1 do /mnt.

Please enter the full path prefix for restore (/ for none):

Należy wpisać mnt.

Po modyfikacji parametrów wpisujemy yes i naciskamy klawisz ENTER.

Czekamy aż zadanie zostanie wykonane.

Przykładowy log z przeprowadzonego przywracania :

Build OS: i686-pc-linux-gnu debian 7.7
JobId: 34
Job: RestoreFiles.2015-04-30_16.19.40_07
Restore Client: postfix-fd
Start time: 30-kwi-2015 16:19:42
End time: 30-kwi-2015 16:24:29
Files Expected: 46,642
Files Restored: 46,643
Bytes Restored: 1,455,399,879
Rate: 5071.1 KB/s
FD Errors: 0
FD termination status: OK
SD termination status: OK
Termination: Restore OK

Założenie : Z backupu zostały wykluczone następujące katalogi :

/proc – wirtualny katalog, zawierający dane o aktualnie uruchomionych procesach
/tmp – pliki tymczasowe
/mnt – miejsce “montowania” dysków
/var/tmp – pliki tymczasowe, które w przeciwieństwie do /tmp powinny być zachowywane przy zamknięciu systemu.
/dev – pliki urządzeń

Należy ręcznie utworzyć katalogi oraz nadać odpowiednie uprawnienia :

mkdir /mnt/proc
mkdir /mnt/tmp
mkdir /mnt/mnt
mkdir /mnt/var/tmp
mkdir /mnt/dev
chmod 777 /mnt/tmp

KROK 5:

Po przywróceniu katalogów oraz plików należy naprawić bootloadera (GRUB) :

Montujemy system plików (partycję systemową) :

mount /dev/sdb1 /mnt

Montujemy katalogi /proc, /sys, /dev :

mount -o bind /proc /mnt/proc
mount -o bind /sys /mnt/sys
mount -o bind /dev /mnt/dev

Wykonujemy :

chroot /mnt /bin/bash

Instalujemy bootloadera :

grub-install /dev/sdb

Jeśli pojawi się komunikat :

Installation finished. No error reported.

znaczy że instalacja przebiegła poprawnie.

Odświeżamy listę zainstalowanych systemów :

 update-grub 

KROK 6:

Uruchamiamy system, który się znajduje na nowym dysku.

markos
Specjalizuję się w systemach komputerowych Windows oraz Linux. Oprócz wykonywanej pracy w zawodzie, informatyka jest moją pasją.

Dodaj komentarz

avatar
  Subscribe  
Powiadom o