W Linuksie, jak mogę utworzyć / przywrócić migawkę obrazu całego mojego dysku?

14

Jestem zbyt rozpieszczony przez narzędzia Windows, które wykonują cyfrowy obraz całego dysku, który można następnie przywrócić w przypadku awarii dysku. (np. jak Time Machine dla Mac OS X).

Czy istnieje podobny sposób na zrobienie tego w Linuksie?

user35997
źródło
1
Przypuszczam, że twoje zepsuło się w systemie Windows w taki sam sposób, w jaki użytkownicy Linuksa są zepsuci przez posiadanie narzędzi systemowych. :)

Odpowiedzi:

12

Narzędzie, które chcesz (które najbardziej przypomina Time Machine) jest nazywane rsnapshot . W przeciwieństwie do zwykłych narzędzi do tworzenia kopii zapasowych, kopiuje tylko rzeczy, które się zmieniły, i pozwala łatwo podróżować do wielu punktów w czasie. Możesz określić, ile miejsca na dysku może mieć, i dostosowuje liczbę migawek utrzymywanych w tym limicie. Bardzo ładne narzędzie.

Norman Ramsey
źródło
6

PartImage uruchamia się z linii poleceń lub jako tekstowy GUI. Ma jedną ważną przewagę nad dd:

Partimage kopiuje tylko dane z używanych części partycji. Dla szybkości i wydajności wolne bloki nie są zapisywane w pliku obrazu. W przeciwieństwie do polecenia „dd”, które również kopiuje puste bloki.

StuffMaster
źródło
6

Możesz po prostu zrobić ” dd if=/dev/sda of=/path/to/target/backup „jeśli wiesz, że masz pokój, w którym próbujesz to umieścić. dd if=/dev/sda | bzip2 > /path/to/target/backup „kompresować w locie. Może to jednak zająć trochę czasu.

Albo możesz to zrobić tar --preserve-permissions -cjf backup.tar.bz2 /what/to/backup „jako użytkownik, który ma wszystkie niezbędne uprawnienia do odczytu.

Uzupełnienie: Niedawno kupiłem nowy laptop z preinstalowanym systemem Vista. Pomyślałem, że chcę gdzieś zachować perspektywę, na wypadek, gdyby chciałem ją wypróbować w pewnym momencie, więc po pierwszym uruchomieniu komputera (z linux livecd) zrobiłem to:

dd if=/dev/sda | ssh 10.0.0.1 "bzip2 > ~/vistadrive.bz2"

Oczywiście było to w szybkiej sieci lokalnej. W przeciwnym razie rozsądniej byłoby skompresować przed transmisją:

dd if=/dev/sda | bzip2 | ssh 10.0.0.1 "cat > ~/vistadrive.bz2"

Mam nadzieję, że uznasz to za przydatne.

Edytować: Ups. Zmieniono bb do dd...

Pianosaurus
źródło
1
Czy nie obejmuje to również sektora rozruchowego? To zawsze mnie zawiodło, gdy korzystałem z partimage do tworzenia kopii zapasowej dysku Windows.
greg, zawierałoby wszystko, w tym tablicę partycji i mbr
Johannes Schaub - litb
4

Używam strategii podwójnej: # 1 to Migawki LVM a numer dwa to rsnapshot , którego używam do tworzenia kopii zapasowych w określonym czasie na dedykowanym zewnętrznym dysku twardym. Zewnętrzny dysk twardy jest umieszczony w taki sposób, że mogę go łatwo wyrwać po wyjściu z drzwi, jeśli wydarzy się coś złego. Nie używam (jeszcze) mechanizmu poza witryną innego niż okresowe nagrywanie migawki na serię zaszyfrowanych dysków DVD i wysyłanie ich do miejsca przyjaciela w innym mieście w celu przechowywania.

Gorąco polecam rsnapshot ze względu na sposób, w jaki robi migawki, używając twardych linków do rzeczy, które się nie zmieniły. Jeśli twój katalog domowy jest ohydny, możesz po prostu pobrać kopię rsnapshot i tarpipe lub rsync z powrotem do nowej partycji domowej po ponownej instalacji lub odzyskaniu z awarii dysku.

Michael Trausch
źródło
3

Kilka. Jest staroświecki dd (1) , który jest swego rodzaju tajemny; jest dump (8) i przywracanie (8) ; istnieje kilka produktów open-source, takich jak Amanda ; a jeśli chcesz, możesz zainstalować ZFS i użyć skryptu cron do robienia okresowych migawek, dając ci coś identycznego z Time Machine (patrz blog Tima Fostera).

Wikipedia ma artykuł z listą wielu opcji .

Charlie Martin
źródło
2

Jeśli chcesz tworzyć kopie zapasowe na poziomie plików, np. Wehikuł czasu, to bardzo polecam rsnapshot tak jak Norman zasugerował.

Jeśli chcesz mieć pełne rozwiązanie do tworzenia kopii zapasowych i przywracania obrazu, takie jak Norton, znalazłem CloneZilla działać całkiem dobrze. Uruchamiam Live CD, a następnie używam innego komputera jako serwera SSH do tworzenia kopii zapasowych / przywracania obrazów do / z.

(Udało mi się nawet uzyskać wersję na żywo działającą poprzez bootowanie PXE na starym laptopie typu tablet, który miałem bez napędu CD i bez uruchamiania USB, ale było to bardzo trudne.)

I możesz go używać również do maszyn Windows.

Evan
źródło
1

Zawsze martwiłem się o używanie dd kiedy dyski były różnej wielkości. Albo miał inną liczbę głów / sektorów / ścieżek / itd.

dd jest bardzo przydatny podczas tworzenia migawek i odświeżania tego samego dysku. Zwłaszcza dyski USB lub partycje Windows. Ale kiedy przechodzę z dysku 500Meg na dysk 1500Meg, to się martwię.

Poza tym, gdy mój dysk ulegnie awarii, lubię być w stanie wykorzystać go jako pretekst do uaktualnienia do nowszego systemu operacyjnego.


Wszystko to powiedziało, dobrze stary smoła robi dobrą robotę! GNU-tar zawiera diff-tar-against-files , tylko-aktualizacja-pliki-które-zmieniły się , i only-archive-files-newer-than-date opcje.

(Powinienem wspomnieć: kilka lat temu natknąłem się na błąd, który wymagał pobrania i zainstalowania nowszej wersji GNU-tar . (Coś wspólnego z bardzo długimi nazwami ścieżek i wieloma woluminami.) Nic wielkiego. Pamiętaj tylko, że to zawsze jest opcja.)

Powinieneś prawdopodobnie wykluczyć / proc , / sys , i może / var / log / lastlog lub / mnt . (Zwykle wykonuję kopię zapasową na dysku zewnętrznym zamontowanym pod / mnt . Tworzenie kopii zapasowej kopii zapasowej - nie tak dobrze!)

Włącznie z / dev może się opłacać. gnu-smoła będzie obsługiwać urządzenia prawidłowo ( mknod ). Chociaż prawdopodobnie nie użyjesz kopii zapasowej / dev podczas przywracania. (Czasami miło jest zobaczyć, jakie uprawnienia lub linki zostały wcześniej skonfigurowane).

Możesz także zrzucić fdisk & amp; rpm informacje przed cofanie się. Na przykład.

/sbin/sfdisk -l /dev/sda > /....../info_sda
rpm -qa | sort > /...../info_rpms
rpm -qa --qf "%{ARCH} \t %{NAME}-%{VERSION}-%{RELEASE}\n" | sort -k2,2 > /........./info_rpms_arch

Jak również montaż dowolnego „opcjonalnego” montowany przez użytkownika systemy plików.


źródło
1

Oto pełne kroki dla innej metody, działające w celu przejścia z jednego dysku na inny, a nawet klonowania maszyny, jeśli sprzęt jest podobny.

Najpierw utwórz obraz dobrego działającego systemu. Zrób to jako root.

# cd / 
# tar cpzf hostname.tgz / --exclude=hostname.tgz --exclude=proc --exclude=lost+found --exclude=mnt --exclude=sys --exclude=home --exclude=usr/src

Utwórz kopię zapasową obrazów jądra

# mount /boot
# cd /boot
# tar cpzf boot.tgz *

Uruchom komputer, na którym chcesz zainstalować obraz, używając cd / gentoo cd na żywo. Zamontuj dysk twardy i odpowiednio go podziel:

# fdisk /dev/hda
/dev/hda1  /boot
/dev/hda2  swap
/dev/hda3  /tmp
/dev/hda4  /

Dodaj systemy plików

# mke2fs /dev/hda1
# mkswap /dev/hda2
# mke2fs -j /dev/hda3
# mke2fs -j /dev/hda4

Zamontuj dyski:

# mount /dev/hda4 /mnt/new_root
# mkdir /mnt/new_root/tmp
# mkdir /mnt/new_root/boot
# mkdir /mnt/new_root/proc
# mkdir /mnt/new_root/sys
# mount /dev/hda3 /mnt/new_root/tmp
# mount /dev/hda1 /mnt/new_root/boot
# swapon /dev/hda2
# mount -t proc proc /mnt/new_root/proc

Skopiuj plik hostname.tgz na ten komputer.

Rozpakuj go do katalogu głównego nowej maszyny / mnt / new_root

# tar -xzf hostname.tgz

Chroot do nowego środowiska.

# chroot /mnt/new_root /bin/bash
# env-update && source /etc/profile

Sprawdź /boot/grub/grub.conf i / etc / fstab

Instaluj grub na dysku twardym:

# grep -v rootfs /proc/mounts > /etc/mtab
# grub-install /dev/hda

Wyjdź i wymontuj dyski, uruchom ponownie komputer.

deepwell
źródło
0

Możesz mieć migawki w systemie Linux przy użyciu LVM, menedżera woluminów logicznych.


źródło
1
Jeśli korzystasz z LVM, niekoniecznie jest to przypadek. Jeśli tak, to tak, to byłaby dobra opcja howtoforge.com/linux_lvm_snapshots
Gavin H