Lubię „Disks” ( gnome-disk-utility
) i jego zdolność do tworzenia kopii zapasowych partycji systemowych.
Ale w pewnym momencie przeczytałem w Internecie o programie, który stworzyłby takie obrazy, które nie są tak duże jak cała partycja, ale tylko tak duże jak pliki na niej zawarte. Teraz nie mogę go znaleźć ponownie.
Czy istnieje takie narzędzie?
Odpowiedzi:
Poniższa odpowiedź używa TUI , a nie GUI :
W zależności od przypadku użycia (używam go do tworzenia kopii zapasowych systemu) możesz użyć CloneZilla Live . Może tworzyć:
Główne zalety to:
Oprócz tych wszystkich gadżetów może także kopiować MBR.
Jeśli kopia zapasowa systemu nie jest tym, czego szukasz, możesz nadal korzystać z technologii, na której opiera się CloneZilla
partclone
.źródło
Osiąganie mniejszych obrazów dysku odbywa się zwykle poprzez nie kopiowanie zerowych bloków z początkowego systemu plików na obrazie. Koncepcja jest nazywany rzadki przestrzeń w plikach lub puching otworów w plikach, a system plików host ma go wspierać. nieco wiersz poleceń, ale spróbuj tego:
A potem po instalacji możesz użyć:
Spowoduje to utworzenie rzadkiego (zera w pliku nie są zapisywane) obrazu dysku. gdzie -f = format, -O format wyjściowy. sdX na dysku (można również używać partycji). Program ma zaawansowane funkcje, takie jak migawki i różne formaty wyjściowe (vdi, vmdk itp.). Twoje miejsce gdzie zapisać obraz musi obsługiwać plików rzadkich , albo rozmiar będzie tak duża, ponieważ zera w tej partycji zostaną zapisane na dysku. Aby w pełni go wykorzystać, uruchom program taki jak
sfill
lubzerofree
znaleziony w apt na partycji, ponieważ wolne miejsce nie zawsze oznacza zero miejsca, a chcesz zmaksymalizować ilość miejsca zerowego w systemie plików.Dodatkowe punkty ninja. Ponieważ linux myśli o dyskach jako o „plikach”, możesz również użyć zwykłego cp, pod warunkiem, że twoja partycja wyjściowa, na której zaparkowałeś plik, zna rzadkie pliki.
Który utworzy surową kopię za pomocą cp ..
Przykłady systemów plików, które obsługują rzadkie: ext4, btrfs, xfs, ntfs (ntfs-3g może jednak nie zezwalać na rzadkie zapisy).
Przykłady systemów plików, które nie: fat32.
źródło
sudo cp /home/<user>/Ubuntu.img /dev/sdX
, lub jeśli masz ochotę dd,sudo dd if=/home/<user>/Ubuntu.img of=/dev/sdX
. To samo dotyczy konwersji qemu-img. Jeśli powiesz, chcesz posadzić maszynę wirtualną na prawdziwym sprzęcie. Kiedy odpisze , zapisze zera na dysku, dzięki czemu nie będzie to rzadkością , ponieważ musi odpowiednio adresować geometrię partycji.Ponieważ wydaje się, że nie ma żadnego programu, który sam w sobie spełniałby dwa warunki:
1) Posiadaj GUI przypominające dyski;
2) Utwórz obraz dysku tak duży, jak zajęte miejsce,
Myślałem o dość prostym obejściu, ale jednym z dwóch programów GUI, bardzo powszechnym w Ubuntu:
Jeden byłby tymi samymi „dyskami” (gnome-disk-utility) , używanymi do tworzenia obrazu kopii zapasowej danej partycji, a drugi byłby partycjonowany, aby maksymalnie zmniejszyć partycję przed utworzeniem obrazu kopii zapasowej, oraz aby potem zmienić rozmiar z powrotem na oryginalny .
Nie widzę żadnych niedogodności w takiej operacji: zmniejszenie partycji do minimum zajmie tylko kilka minut (około minuty na 10 GB) i utworzy puste miejsce po prawej stronie. Po utworzeniu kopii zapasowej dysku za pomocą „Dysków” za pomocą Gparted można zmienić rozmiar partycji z powrotem w prawo do pustego miejsca aż do stanu początkowego, a to zajmie tylko kilka sekund.
Testowany na partycji z instalacją Ubuntu:
zmniejsz partycję za pomocą Gparted tak bardzo, jak to możliwe
obraz zapasowy tej partycji z dyskami
przywrócić obraz z dyskami na partycję większą niż obraz; partycja ta powinna być najpierw odinstalowana: Jak poprawnie przywrócić partycję systemową (obraz ISO) za pomocą „Dysków” .
źródło
Edycja : Nie zadziała to dobrze, jeśli pliki usunięte z systemu plików są nadal obecne na partycji, więc najpierw trzeba wyczyścić wolne miejsce na partycji docelowej:
dd if=/dev/zero of=<path_to_partition_volume>/file.dd && rm <path_to_partition_volume>/file.dd
Następnie:
Możesz czytać cały blok partycji po bloku
dd
i wysyłać wszystko do narzędzia kompresji, takiego jakgzip
. Najprawdopodobniej każde narzędzie do kompresji, nawet używając najszybszych / najniższych ustawień kompresji, skompresuje całą wolną przestrzeń podczas procesu.Z
gzip
:sudo dd if=/dev/sdX | GZIP=-1 gzip >/path/to/backup.gz
(
GZIP=-1
Tymczasowo ustawia zmienną środowiskowąGZIP
, aby-1
osiągnąć największą / najmniejszą kompresją)Aby przywrócić kopię zapasową:
gzip -d /path/to/backup.gz >/dev/sdX
źródło
Co powiesz na korzystanie
ddrescue
z-S
opcji?Spowoduje to sklonowanie każdego bloku, ale zero bloków znalezionych w urządzeniu blokowym
/dev/sdXY
do/<path_to_backup>/backup.img
źródło
Nie można go użyć do wykonania kopii na mniejszy dysk. Gdy mam dysk 64 Gb, który jest wypełniony danymi tylko w 10%. Chciałbym móc skopiować to do pliku obrazu 6 Gb, który z kolei mogę skopiować na dysk 16 Gb, a następnie rozszerzyć go do 16 Gb
Jedyne, co wiem teraz, to użycie GParted do zmniejszenia oryginału, niż skopiowanie go, a następnie zmiana rozmiaru obu. Bardzo ryzykowna operacja, ponieważ musisz zmniejszyć i zmienić rozmiar oryginału.
źródło
Możesz użyć
rsync
do wykonania kopii zapasowej tylko plików z partycji na inną partycję. Lubtar
utworzyć skompresowane archiwum zawierające wszystkie pliki.Oba prawdopodobnie mają (wiele) GUI, ale nigdy nie korzystałem z nich osobiście.
źródło
Clonezilla może być całkiem przyjazna. Live CD nie wymaga użycia wiersza poleceń - z przyjemnością nazwałbym go GUI, chociaż nie używa myszy - i myślę, że domyślne ustawienia są w wielu przypadkach OK. Problem polega na tym, że nie zostałeś wyraźnie przywołany: nie wydaje się, aby został zaprojektowany jako coś, co można zainstalować na dowolnym systemie Linux. Jest specjalnie zaprojektowany dla Debiana / Ubuntu, a Live CD jest najprostszym sposobem na uruchomienie.
Clonezilla / partclone używają klonowania uwzględniającego system plików i używają własnego formatu skompresowanego obrazu.
Istnieje jeszcze inna możliwość, bez GUI, generowania prostych (montowalnych) plików rzadkich, która nie polega na wykrywaniu zerowych sektorów.
Jeśli / tmp jest ramdyskiem, ostrzeże, że potencjalnie potrzebuje więcej miejsca na pliki tymczasowe. Może być konieczne dodanie opcji
--tmp /var/tmp
.źródło
virt-sparsify --version
? Opcja jest udokumentowana na mine (man virt-sparsify
) ... Nie mogę przysiąc, że jej użyłem, ale przynajmniej mój obecny/tmp
to tmpfs. Jeśli możesz użyć--in-place
, wygląda na to, że pozwoli to uniknąć tymczasowego przechowywania. Wreszcie możesz spróbowaćTMPDIR=/var/tmp virt-sparsify ...
. Dokumenty dla mojej wersji mówią, że właśnie tak musisz ustawić katalog tmp dla wersji wcześniejszych niż 1.28.