Zależy to od tego, do czego dokładnie służy partycja i jaki jest cel kopii. Powiem jednak, że ogólnie dd
jest nieodpowiednim narzędziem do tworzenia kopii zapasowych systemów plików . Nie do tego też był przeznaczony.
Marnuje dużo czasu na kopiowanie pustych sekcji partycji.
Może to prowadzić do niespójności, jeśli system plików jest obecnie zamontowany, częściowo dlatego, że jest to jednostka poziomu systemu operacyjnego i może nie być zsynchronizowany z podstawowym urządzeniem blokowym. Dzwonienie sync
początkowo nie pomoże w tym, ponieważ proces ten nie jest natychmiastowy.
Użyj cp -a
lub rsync
zamiast. Następnie musisz oczywiście utworzyć docelową partycję, więc nie jest to tak proste, ale jest o wiele bezpieczniejsze i bardziej elastyczne. Jeśli chcesz utworzyć obraz systemu plików , patrz poniżej.
Jeśli zamierzasz skopiować główny system plików, absolutnie nie używaj dd
. Musisz użyć czegoś takiego rsync -ax
(lub cp -ax
w poszczególnych katalogach najwyższego poziomu), ponieważ istnieje wiele rzeczy, które NIE mogą znajdować się w kopii . W systemie Linux obejmuje to:
/dev
/lost+found
/mnt
/proc
/run
/sys
/tmp
Niektóre z nich są w rzeczywistości interfejsami jądra, a nie prawdziwymi katalogami na dysku. Jeśli je skopiujesz, skopiujesz kilka informacji, które nie będą miały zastosowania w kopii; jeśli spróbujesz uruchomić system z nim, będzie to tylko marnowanie miejsca, ponieważ prawdziwy interfejs zostanie zamontowany na górze. Inne zawierają tymczasowe informacje używane podczas uruchamiania procesów, które stanowią większy problem, ponieważ system nie będzie w stanie uporządkować śmieci, jeśli je skopiujesz.
Jeśli chcesz utworzyć plik obrazu głównego systemu plików (lub dowolnego systemu plików), utwórz pusty plik obrazu - jest to odpowiednie zastosowanie dla dd
:
dd if=/dev/zero of=whatever.img bs=1024 count=1000000
To obraz o wielkości 1024 MB (1000000 * 1024). Dostosuj, count
jeśli chcesz inny rozmiar. Utwórz np. ext
System plików w pliku :
mke2fs whatever.img
Ostrzeże Cię, że to nie jest prawdziwe urządzenie blokowe. Kontynuować. Teraz zamontuj plik obrazu:
mount whatever.img /mnt/img
/mnt/img
musi istnieć, ale może wszystko. Możesz teraz rsync
(lub cp -a
) do /mnt/img
. Zawartość pozostanie w środku whatever.img
po jej odmontowaniu.
Jednak...
Żeby było jasne, używaj opisanej metody obrazu systemu plików, tylko jeśli potrzebujesz pliku obrazu z jakiegokolwiek powodu. Jeśli Twoim celem jest skopiowanie partycji na inny dysk twardy, nie potrzebujesz obrazu : utwórz nową partycję z pustym systemem plików na tym dysku, zamontuj ją i skopiuj na nią. Zamiast tego możesz po prostu umieścić zawartość systemu plików w pustym katalogu i zarchiwizować go:
tar -czf myarchive.tar.gz [the directory path]
Następnie możesz wdrożyć to na istniejącej (pustej lub innej) partycji, umieszczając ją na najwyższym poziomie i używając:
tar -xzf myarchive.tar.gz
Uważaj, aby zastąpić istniejące pliki, jeśli ich ścieżki pasują do czegoś w archiwum. W przeciwnym razie istniejąca hierarchia katalogów pozostanie taka sama.