Lubię klonować całą partycję lub cały dysk twardy na większy dysk zewnętrzny, ale lubię tworzyć rzadkie pliki. Często używam dd
do klonowania, ale nie obsługuje rzadkich plików. Jako obejście zastosowałem coś takiego:
cp --sparse=always <(dd if=/dev/sda1 bs=8M) /mount/external/backup/sda1.raw
Jest to jednak zbyt trudne dla mojego gustu i nie pozwala mi wznowić procesu, jeśli zostanie przerwane. Zabawne, że istnieje narzędzie NTFS do tego ( ntfsclone
), ale nie ma takiego narzędzia dla rodzimych systemów plików Linux (EXT2-4).
Czy jest na to jakieś lepsze narzędzie, np. dd
Wariant z niewielkim wsparciem? Nie szukam prawnie zastrzeżonego oprogramowania do tworzenia kopii zapasowych dysków, ale po prostu chcę zrobić rzadką kopię do klonowania, którą w razie potrzeby mogę zamontować jako urządzenie pętlowe.
dd
cloning
sparse-files
Martin Scharrer
źródło
źródło
cp
, nigdy nie przyszło mi do głowy, że możesz sparse-skopiować obraz dysku. Zawsze je tylko kompresowałem, gdy potrzebowałem oszczędzać miejsce. Dlaczego to pytanie nie jest odpowiedzią?Odpowiedzi:
Chcesz
dd_rescue
.źródło
dd_rescue
online dowiedziałem się, że istnieje również inne narzędzie o nazwieddrescue
(bez podkreślenia), które zostało opracowane niezależnie od,dd_rescue
ale wydaje się, że robi to w zasadzie to samo. Wspominam o tym tutaj jako o ogólnym FYI.dd_rescue
iddrescue
to nie to samo. Teoretycznie wykonują tę samą pracę, ale ogólnie mam więcej szczęścia ze starszym / oryginalnymdd_rescue
.-s
i pozycję do pierwotnego polecenia. (Tak by to wyglądałodd_rescue -a -b 8M -s 42000k /dev/sda1 /mount/external/backup/sda1.raw
.)Tylko dla kompletności wezwanie do ratowania .
--sparse
Lub-S
flag pozwala docelowy być napisany słabo:Lub z długą opcją:
Lub jeśli wolisz MiB :
Aby umożliwić przerwanie i wznowienie ratowania, możesz również skorzystać z pliku dziennika:
Zauważ, że GNU
ddrescue
idd_rescue
są różnymi programami. Ale GNUddrescue
wydaje się być bardziej rozpowszechnione. Na przykład jest już zapakowany w GRML .źródło
dd if=sda1.raw of=/dev/sdb1
. Aby jednak użyć narzędzia ddrescue do przywracania, wystarczy zmienić źródło / miejsce docelowe użyte do ratowania na nowe źródło / miejsce docelowe, najlepiej z nowym plikiem dziennika. Jeśli to możliwe (często nie), możesz oczywiście użyć narzędzia ddrescue, aby skopiować dane bezpośrednio z uszkodzonego dysku źródłowego na dysk zastępczy.W 2007 r. Oferowana była łatka zapewniająca rzadką obsługę plików w GNU dd, ale wygląda na to, że nie została wprowadzona do coreutils (przynajmniej od wersji 8.4). Wątpię, czy dd zmieniło się zbytnio od tego czasu, łatka może zostać zastosowana do bieżącej wersji bez większego nakładu pracy.
Jestem również pod wielkim wrażeniem kreatywnego wykorzystania
cp
twojego pytania i dzięki temu mogłem użyć go do wznowienia (tutaj wznawianie od ~ 80M do źródła):Edycja: podrap to. Drugim
dd
byłoby oczywiście szukanie niewłaściwej pozycji w pliku wyjściowym, ponieważ nie jest on tej samej długości co plik wejściowy.źródło
cp
- dzięki!Właśnie dodając moje 2 centy. Innym sposobem utworzenia rzadkiego pliku z surowego dysku jest użycie qemu-img przy użyciu czegoś takiego:
Możesz użyć tego również na jednej partycji. Możesz także przekonwertować surowy dysk / partycję na dowolny inny format obsługiwany przez qemu-img (QCOW2, VHD [x], vmdk itp.)
źródło
Inną opcją jest rsync . Na przykład:
Wyjaśnienie:
-S
/--sparse
aby pominąć rzadkie bloki podczas zapisu-P
/,--partial --progress
aby pokazać postęp i zachować częściowo przesłane pliki--copy-devices
aby skopiować zawartość urządzeniaMożesz dodać,
--append
aby wznowić przerwaną kopię (lub--append-verify
potwierdzić sumę kontrolną zarówno dla nowych, jak i starych danych).Edycja : Właśnie zdałem sobie sprawę, że copy-devices.diff jest rozważane i może nie być obecny na wielu systemach (chociaż jest zawarty w Fedorze , Ubuntu , Debianie i innych)
źródło
Uwaga: to nie działa z powodów opisanych w komentarzach, zostawiam to tutaj w celach informacyjnych.
Monitoruj statystyki dd przy użyciu kill -USR1:
Wznów za pomocą przeskocz / szukaj:
Bez $ i_bytes trudniej byłoby wznowić. Prawdopodobnie najłatwiej jest zapisać statystyki dd w pliku na wypadek awarii komputera lub czegoś innego.
źródło
cp
po prostu nadpisze istniejący plik, prawda? Znamskip
i inne opcjedd
. Problem jestcp
częścią.Istnieją xfsdump i xfsrestore dla XFS, który jest rodzimym systemem plików Linuksa od dłuższego czasu.
źródło
Dlaczego nie po prostu:
źródło