Page 1 of 2
[HOWTO] Tworzenie stage4/backup systemu.
Posted: Sat May 10, 2008 12:01 am
by C1REX
EDIT: Dodany został nowy, lepszy sposób robienia kopii zapasowej. Credity lecą do SlashBeast.
Jednym ze sposobów na robienie stage4/backupu jest użycie innej dystrybucji. Ja osobiście mam oddzielną partycję z Ubuntu, jako system awaryjny.
Równie dobrze może to być jednak LiveCD.
Wchodzimy na partycję systemową gentoo i
Code: Select all
tar cjvf stage4.tar.bz2 ./* --exclude=usr/portage --exclude=tmp/* --exclude=var/tmp/*
Tyle.
Aby odzyskać system standardowo:
Przy pakowaniu/rozpakowaniu należy uważać na montowanie partycji.
Jeśli nasz system wygląda:
sda1 /
sda5 /boot
to po odpaleniu innej dystrybucji trzeba sobie je podpiąć
sda1 /mnt/gentoo
sda5 /mnt/gentoo/boot
Wyjątkiem może być /home, które warto zostawić odmontowane przy robieniu backupu.
--------------------------------------------------------------------------------------------------------
Drugi sposób jest o wiele ciekawszy.
Najpierw tworzymy skrypt:
...do którego wklejamy:
Code: Select all
#!/bin/sh
test -d /home/backup || mkdir -p /home/backup
mkdir -p /tmp/rootfs
mount /dev/root /tmp/rootfs
cd /tmp/rootfs
tar cvjf /home/backup/stage4_`date '+%F_%H-%M-%S'`.tar.bz2 ./* --exclude=./var/tmp/* --exclude=./home/* --exclude=./tmp/* --exclude=./usr/src/* --exclude=./usr/portage
cd /home/backup
umount /tmp/rootfs
rmdir /tmp/rootfs
Teraz nadajemu mu prawa do wykonania:
Gotowe.
Teraz wykonanie backupu sprowadza się do wydania komendy
na działającym systemie.
Tyle z opisu. Opis z zamierzenia miał być max prosty dla takich noobów jak ja, by nic nie można było popsuć. (Od czasu jak mam MacOS zakochałem się w prostocie)
Jak ktoś chce coś bardziej rozbudowanego, to
http://gentoo-wiki.com/HOWTO_Custom_Stage4
Wszelkie creditsy lecą do
@SlashBeast i @nieprostego. Ja to tylko spisałem.
EDIT: Skrypt do backupu lekko zmodyfikowałem. Oryginał jest na tej stronie w poście @SlashBeast'a.
Ja tylko wpisałem, by plik został zapisany w katalogu domowym, który przeważnie ludzie mają na oddzielnej partycji.
Zmieniłem też, bym /home nie było archiwizowane. Możecie wybrać, albo samemu pozmieniać.
Posted: Sat May 10, 2008 6:42 am
by Poe
dzieki za HOW-TO, wrzuce do listy w FAQ.
Posted: Sat May 10, 2008 9:28 pm
by aqu
nie chciałbym się wtrącać ale chyba powinno być jeszcze --exclude=/tmp/* --exclude=/var/tmp/*
Posted: Sun May 11, 2008 12:09 am
by C1REX
Dodane.
Może ktoś potwierdzić, że jest to bezpieczne?
Posted: Sun May 11, 2008 3:47 am
by BeteNoire
To nie jest howto tylko tip. Pełne howto znajduje się pod adresem gentoo wiki podanym w pierwszym poście. Są tam gotowe skrypty backupujące, które można dostosować do własnych potrzeb. A gdyby C1rex przejrzał artykuł, to nie pytałby, czy wyłączenie /tmp i /var/tmp jest bezpieczne.
W swoim skrypcie używam jeszcze opcji --totals i --ignore-failed-read, pierwsza jest czysto informacyjna, a druga się przydaje, gdy z jakichś powodów nie można odczytac pliku (np. pliki uszkodzone po twardych resetach).
Posted: Sun May 11, 2008 9:39 am
by SlashBeast
C1REX wrote:Dodane.
Może ktoś potwierdzić, że jest to bezpieczne?
tak.
Re: [HOWTO] Tworzenie stage4/backup systemu.
Posted: Sun May 11, 2008 11:26 am
by wirus
C1REX wrote:Aby zrobić stage4 najlepiej odpalić inną dystrybucję Linuksa. Ja osobiście mam oddzielną partycję z Ubuntu, jako system awaryjny.
Równie dobrze może to być jednak LiveCD.
Wchodzimy na partycję systemową gentoo i
Code: Select all
tar cjvf stage4.tar.bz2 ./* --exclude=usr/portage --exclude=/tmp/* --exclude=/var/tmp/*
bez
/ przed tmp i var
Code: Select all
--exclude=tmp/* --exclude=var/tmp/*
Re: [HOWTO] Tworzenie stage4/backup systemu.
Posted: Sun May 11, 2008 8:19 pm
by TBH the lolmaker
wirus wrote:
bez / przed tmp i var
chyba się mylisz
edit: W takim razie zwaracam honor, myślałem że chodzi o backup z działającego systemu.
Re: [HOWTO] Tworzenie stage4/backup systemu.
Posted: Sun May 11, 2008 9:30 pm
by Kurt Steiner
TBH the lolmaker wrote:wirus wrote:
bez / przed tmp i var
chyba się mylisz

Chyba nie

- C1REX sugeruje wykonanie backupu z innego systemu - jeśli zrobisz go ze "/" to zarchiwizujesz nie te katalogi co chcesz.

Posted: Sun May 11, 2008 10:20 pm
by C1REX
Dokładnie. Poprawna wersja jest bez / na początku. Pierwszy post zmieniony.
Posted: Fri May 16, 2008 10:54 pm
by C1REX
BTW: Zrobienie backupu z działającego systemu da dokładnie taki sam efekt?
Posted: Sat May 17, 2008 6:22 am
by 13Homer
C1REX wrote:BTW: Zrobienie backupu z działającego systemu da dokładnie taki sam efekt?
Raczej nie, bo będzie Ci backupował także /proc, a tam jest np. zrzut całej pamięci operacyjnej.
Posted: Sat May 17, 2008 8:54 am
by Spaulding
no to

Posted: Sat May 17, 2008 9:11 am
by SlashBeast
o ile proc i sys mozna sobie olać o tyle nie jestem pewny czy /dev też, przynajmniej za czasów jak używałem pld pamiętam, że na wyłączonym systemie w dev było kilka nodów m.in. null itp. bez tego nie chciał wstać system.
Code: Select all
jinchuuriki ~ # mkdir /tmp/realroot
jinchuuriki ~ # mount /dev/root /tmp/realroot/
jinchuuriki ~ # ls -l /tmp/realroot/dev | wc -l
1470
jinchuuriki ~ #
Jak widzimy ma w dev to i owo, raczej nie pomija
łbym tego, ale backupa można zrobić właśnie w ten sposób, zamontowac rootfs w drugim katalogu i zrobić jego backup z pomijaniem tmpów użytkowników, usr/portage i innych.
Arfrever: Ortografia
Posted: Sat May 17, 2008 9:22 am
by Spaulding
to udev tego nie tworzy? a jak wyglada stage3 z portage? tez ma cos w /dev?
Posted: Sat May 17, 2008 9:29 am
by SlashBeast
Zobacz w którym momencie odpala się udev a w którym momencie odpala się init. Tak, stage3 ma w /dev statycznego dev'a.
edit:
Na szybko napisałem, możliwe, że działa
Code: Select all
#!/bin/sh
test -d /root/backup_dir || mkdir /root/backup_dir
mkdir /tmp/rootfs
mount /dev/root /tmp/rootfs
cd /tmp/rootfs
tar cvjf /root/backup_dir/stage4_`date '+%F_%H-%M-%S'`.tar.bz2 ./* --exclude=./var/tmp/* --exclude=./tmp/* --exclude=./usr/src/* --exclude=./usr/portage --exclude=./root/backup_dir
cd /root/backup_dir
umount /tmp/rootfs
rmdir /tmp/rootfs
Do odpalenia pod działającym gentoo.
edit numer-N-ty:
Teraz skrypt działa.
Posted: Sat May 17, 2008 11:02 am
by BeteNoire
Zapomniałeś o opcji p dla tar (pomijając już fakt, że ten skrypt jest brzydki).
Posted: Sat May 17, 2008 11:40 am
by SlashBeast
BeteNoire wrote:Zapomniałeś o opcji p dla tar (pomijając już fakt, że ten skrypt jest brzydki).
Brzydki, prosty jak konstrukcja cepa i co najważniejsze, działa.
Co do opcji p, niby gdzie jej zapomniałem? Ten skrypt tworzy tarballa a nie go wypakowywuje, p jest przełącznikiem do wypakowywania (patrz manual).
Posted: Sat May 17, 2008 12:09 pm
by BeteNoire
SlashBeast wrote:BeteNoire wrote:Zapomniałeś o opcji p dla tar (pomijając już fakt, że ten skrypt jest brzydki).
Brzydki, prosty jak konstrukcja cepa i co najważniejsze, działa.
Mój też działa, wielokrotnie odtwarzałem backup nim zrobiony, ale nie przyszło mi do głowy, by kombinować z montowaniem /dev/root.
SlashBeast wrote:Co do opcji p, niby gdzie jej zapomniałem? Ten skrypt tworzy tarballa a nie go wypakowywuje, p jest przełącznikiem do wypakowywania (patrz manual).
Masz rację. Chociaż w sumie -p nigdy w moim skrypcie w niczym nie przeszkadzało.
Posted: Sat May 17, 2008 1:53 pm
by SlashBeast
Code: Select all
jinchuuriki /tmp # ls -l rootfs/dev | wc -l
1470
jinchuuriki /tmp # ls -l /dev | wc -l
776
Jednak gdy montujesz oddzielnie to masz sys i proc pusty a dev oryginalny, taki jak w stage3.
Posted: Mon Sep 15, 2008 7:48 pm
by C1REX
SlashBeast wrote:Zobacz w którym momencie odpala się udev a w którym momencie odpala się init. Tak, stage3 ma w /dev statycznego dev'a.
edit:
Na szybko napisałem, możliwe, że działa
Code: Select all
#!/bin/sh
test -d /root/backup_dir || mkdir /root/backup_dir
mkdir /tmp/rootfs
mount /dev/root /tmp/rootfs
cd /tmp/rootfs
tar cvjf /root/backup_dir/stage4_`date '+%F_%H-%M-%S'`.tar.bz2 ./* --exclude=./var/tmp/* --exclude=./tmp/* --exclude=./usr/src/* --exclude=./usr/portage --exclude=./root/backup_dir
cd /root/backup_dir
umount /tmp/rootfs
rmdir /tmp/rootfs
Do odpalenia pod działającym gentoo.
edit numer-N-ty:
Teraz skrypt działa.
Wrzuciłem ten skrypt do /usr/bin/bckmaker
Dałem chmod 777 /usr/bin/bckmaker
Teraz komenda #bckmaker robi mi buckupa.
Zgadza się?
Jak zrobić to w mniej lamerski sposób?
EDIT:
Code: Select all
C1REX c1rex # bckmaker
mkdir: nie można utworzyć katalogu `/tmp/rootfs': Plik istnieje
mount: /dev/sda1 already mounted or /tmp/rootfs busy
mount: according to mtab, /dev/sda1 is already mounted on /tmp/rootfs
Tak ma być?
Posted: Mon Sep 15, 2008 8:08 pm
by SlashBeast
Wszystko masz napisane, /tmp/rootfs istnieje jak i jest podmontowany.
Imho jak dodajesz własne skrypty dodawaj je do /usr/local/bin albo stwórz sobie w /root/bin je i dodaj do zmiennej PATH /root/bin i tam wsadzaj, na każdej szelowni czy stacji roboczej jaką robie zawsze daje by $HOME/bin było w path, wtedy żaden user mi nie truje, że nie wygodnie mu odpala się skrypty.
Posted: Mon Sep 15, 2008 8:26 pm
by C1REX
Tylko ja korzystam z mego kompa.
Zadaję trochę lamerskie pytania, bo nie mam bladego pojęcia o skryptach. Ten jest moim pierwszym, z którym cokolwiek zrobiłem.
Jestem zwykłym userem i bardzo mi się podoba idea łatwego backupu. Za często coś psuję, by obyć się bez tego.
Nie wiem tylko, po co mam wrzucać ten skrypt do home, jak to jest typowo administracyjne narzędzie.
Anyway - ogromne dzięki za ten skrypt.
BTW: Jak odzyskujecie system, to co robicie ze starym?
-formatujecie partycję?
-zwyczajnie kasujecie pliki?
-rozpakowujecie na istniejący system?
Posted: Mon Sep 15, 2008 8:32 pm
by SlashBeast
Zwykle robie backup systemu który potem wywalam i stawiam z działającego backapa a ten co zrobie zachowuje na 'zaś'.
Posted: Mon Sep 15, 2008 11:59 pm
by C1REX
Wyedytowałem pierwszy post. Zerknijcie proszę, czy nie zrobiłem błędu.
Jeszcze raz wielkie dzięki SlashBeast i Damjanek za pomoc.