Wiele osób poszukuje programu w stylu Norton Ghost – który
wykonuje kopie zapasowe dysków / partycji UFS - FreeBSD. W bardzo łatwy sposób
możemy to uczynić przy pomocy dump / restore.
* Zrzucanie partycji do pliku
Przykład – zrzucenie partycji ad0s1f do pliku ad0s1f.dump –
gdzie ad0s1f jest montowane jako /usr
dump
Flagi:
- 0 – poziom backupu – zero oznacza pełną archiwizację
- a – auto size – określa automatycznie wielkość bufora do
zrzucanego dysku
- f – zrzucanie do podanego pliku
# dump 0af /backup/ad0s1f.dump /usr
Przed wykonaniem tego polecenia – lektura obowiązkowa to man
dump ponieważ możliwe, iż będziesz zmuszony dodać jeszcze parę opcji do
polecenia np. –L (jeżeli robisz dump na żywym systemie plików). Jeżeli, chcesz
natomiast zrobić pełny dump całego obecnego systemu operacyjnego – musisz zrobić
kopię 3 partycji (/ /var /usr). Taką archiwizację nie należy przeprowadzać na
uruchomionym systemie lecz w trybie pojedynczego użytkownika lub też z poziomu
Fixit.
* Odtwarzanie i pełny backup systemu
Jeżeli chcemy zrobić pełny backup systemu operacyjnego z
naszego dysku – oczywiste jest, iż należy zrzucić 3 podstawowe partycje tj.:
- /
- /usr
- /var
W opisywanym przykładzie, pozwolę sobie użyć przykładowego
podzielenia dysku na partycje tj.
- ad0s1a / ufs
- ad0s1b swap
- ad0s1d /var ufs, soft-updates
- ad0s1e /tmp ufs
- ad0s1f /usr ufs
- ad0s1g /backup ufs
Na ad0s1g będą przechowywane kopie zapasowe, oraz inne pliki
które nie chcemy, aby były archiwizowane (np. drzewo naszego lokalnego ftp z
programami i dokumentami)
Jeżeli mamy już wykonaną kopie zapasową naszych 3 partycji tj. pliki:
/backup/ad0s1a.dump
/backup/ad0s1d.dump
/backup/ad0s1f.dump
należy uruchomić z płyty instalacyjnej FreeBSD – sysinstall i
wybrać z niej polecenie Fixit. Uruchomić fixit z np. dyskietki (oczywiście przed
tymi czynnościami należy zrobić dyskietkę Fixit której image znajduje się na
wszystkich płytach instalacyjnych FreeBSD w katalogu /floppies).
W tym momencie można zadać pytanie:
Pyt. Dlaczego nie możemy uruchomić systemu w trybie pojedynczego
użytkownika i tam dokonać restore?
Odp. Ponieważ w trybie pojedynczego użytkownika główną partycją
automatycznie montowaną będzie ad0s1a / naszego systemu - natomiast aby
przywrócić tą partycję z pliku, wpierw musielibyśmy ją od montować co jest dość
chybionym pomysłem.
Gdy mamy już odpaloną konsole Fixit, w pierwszej kolejności
należy się pod montować dysk ad0s1g
# mount /dev/ad0s1g /tmp
Następnie tworzymy nowy system plików na poszczególnych, docelowych
partycjach, gdzie będzie odtwarzany stary OS:
# newfs -U /dev/ad0s1a
# newfs -U -O2 /dev/ad0s1d
# newfs -U -O2 /dev/ad0s1f
newfs
Flagi:
-U - SoftUpdates narzuca konieczności uprzedniego zamówienie
operacji w buforze pamięci podręcznej co pozwala zrezygnować z kodu FFS
odpowiedzialnego za synchroniczne zapisywanie wpisów katalogów. Dzięki temu daje
się zauważyć bardzo duży przyrost wydajności dla operacji zapisu.
-O2 - Określa format plików UFS2 (uwaga – to nie jest „zero”
tylko duże „o”)
tunefs
Możemy też ustawić SoftUpdate później, po rozpakowaniu pliku
np:
# tunefs -n enable /dev/ad0s1f
Montujemy pierwszą partycje / (usuwamy pod drodze katalog .snap)
i odtwarzamy system (na końcu robimy umount partycji)
# mount /ad0s1a /mnt
# cd /mnt
# rm -d .snap
# restore -rf /tmp/ad0s1a.dump
# cd ..
# umount /dev/ad0s1a
Musimy pamiętać aby zawsze być na partycji docelowego
rozpakowywanie (w katalogu partycji) gdy wydajemy polecenie restore. W/w
czynności wykonujemy dla 2 pozostałych partycji /var i /usr.
restore
Flagi:
-r - Restore (rebuild a file system). Cel pliku powinien być
przed wykonaniem potraktowany poleceniem newfs po czym powinniśmy przejść przy
pomocy polecenia cd(1) do ścieżki gdzie zostanie rozpakowany plik.
-f - oznacza po prostu plik z którego będą pobierane dane
Np.:
# cd /usr
# restore -rf /backup/ad0s1f.dump
* Przenoszenie systemu operacyjnego pomiędzy dyskami
Przyjmijmy że mamy zainstalowany system na dysku 10GB (ide
master ad0) i chcemy przenieść nasz system na drugi dysk o wielkości 80GB.
Pierwszą czynnością jaką musisz wykonać jest zainstalowanie
dysku 80GB jako IDE Master i wykonanie minimalnej instalacji FreeBSD na nim –
tak aby zostały stworzone partycje i aby była możliwość BOOT`owania systemu z
niego.
Następnie wkładamy stary dysk 10GB i podpinamy go na IDE Master – natomiast dysk
80GB podpinamy jako IDE Slave. Uruchamiamy system w trybie pojedynczego
użytkownika (single user mode)
Aby to zrobić należy:
- Nacisnąć spację w trakcie odliczania 10 sekund na
bootscreenie.
- Wpisać :
# boot –s
i nacisnąć Enter
(dla FreeBSD 5.x z menu wybieramy 4)
Po wyskoczeniu znaku zachęty # wpisujemy:
# mount -u /
# mount -a
# swapon -a
# adjkerntz -i
Następnie upewnij się, że masz stworzony pliki urządzeń tak
abyś mógł pod montować partycje z dysku slave.
(Dla FreeBSD 4.x wpisz):
# cd /dev
# ./MAKEDEV ad1s1a
# ./MAKEDEV ad1s1e
# ./MAKEDEV ad1s1f
Teraz tworzymy punkty montowania dla nowych partycji:
Wpisz:
# mkdir /backup
# mkdir /backup/root
# mkdir /backup/usr
# mkdir /backup/var
Ostatnia czynność – Najłatwiej stworzyć i użyć skryptu który
automatycznie zrobi nam kopię zapasową – będzie wykonywał następujące polecenia:
1 – stworzy nowy system plików na dysku 80GB
(newfs the drive)
2 – za montuje partycje z dysku 80GB
3 – zrobi dump ze starego dysku, a następnie odtworzy ją (restore)
na nowym
4 – od montuje nowe partycje
5 - uruchomi softupdates dla nowych stacji
Oto przykładowy skrypt:
#!/bin/sh
newfs /dev/ad1s1a
newfs /dev/ad1s1e
newfs /dev/ad1s1f
mount /dev/ad1s1a /backup/root
mount /dev/ad1s1e /backup/var
mount /dev/ad1s1f /backup/usr
( dump -0f - / ) | ( cd /backup/root ; restore -rf - )
( dump -0f - /var ) | ( cd /backup/var ; restore -rf - )
( dump -0f - /usr ) | ( cd /backup/usr ; restore -rf - )
umount /backup/root
umount /backup/var
umount /backup/usr
tunefs -n enable /dev/ad1s1a
tunefs -n enable /dev/ad1s1e
tunefs -n enable /dev/ad1s1f |
Oczywiście należy go dopasować do własnych potrzeb.
Cały proces najprawdopodobniej potrwa parę godzin (dump zazwyczaj trwa 2x krócej
niż restore). Kiedy wszystko powiedzie się pomyślnie - należy odłączyć stary
dysk, nowy przestawić na slave i uruchomić system już z nowego dysku.
Jeżeli chcesz się dowiedzieć o paru innych ciekawych opcjach które mogą się
przydać podczas tworzenia kopii zapasowych – przeczytaj:
# man dump
# man restore
# man tar
# man mount
# man adjkerntz
Oczywiście artykuł ten może zawierać błędy więc nie biorę
odpowiedzialności za straty danych. Testowałem wszystko u siebie na FreeBSD
5.2.1 i w moim przypadku działa – jednak będę wdzięczny za wszystkie uwagi
(zniewagi) ;) , rady i opinie które mogłyby przyczynić się do
aktualizacji/poprawy w/w tekstu.
Autor: Artur "Zdolny" Zdoliński
zdolny(at)siedlce.mine.nu Tylko zarejestrowani użytkownicy mogą pisać komentarze. Prosze zaloguj się i dodaj komentarz. Powered by AkoComment! |