Jak przejść z jednego dysku na inny, który ma inny rozmiar?

21

Kilka razy spotkałem się z tym scenariuszem: muszę wymienić dysk, ponieważ potrzebuję więcej miejsca, mam problemy, przenoszę się do nowego pudełka itp.

Jaki jest najlepszy sposób kopiowania danych z jednego rozmiaru partycji na inny (zakładając, że cel ma wystarczająco dużo miejsca)?

Co jeśli jest to inny system plików (taki jak ReiserFS do ext4)?

Jeśli jest to tylko nowy dysk w istniejącym systemie, jak mogę się upewnić, że nie muszę instalować ponownie, aby wszystko działało?

Aktualizacja - wiele opcji jest bardzo wykonalnych, a ja zmieniłem to pytanie na wiki społeczności, ponieważ nie sądzę, że istnieje „właściwa” odpowiedź.

warren
źródło
1
superuser.com/questions/32164/... został zapytany o dyski / partycje z systemem Windows
warren

Odpowiedzi:

10

Sklonuj dysk za pomocą CloneZilla , a następnie użyj gparted, aby zmienić jego rozmiar. Zachowaj swój stary na wypadek, gdyby coś poszło nie tak :-)

Nawiasem mówiąc, ta droga jest darmowa.

Craigmoliver
źródło
2
I jak wolnej części tutaj, chociaż nic nie przebije dobrego oprogramowania roboczy, który robi wszystko (zamiast 3 freewares razem)
Ivo Flipse
1
To tylko dwa darmowe programy i to całkiem bezbolesne. Rozruch ISO nie ma problemu.
craigmoliver
Mogę potwierdzić, że to działa. Udało mi się przenieść drugi dysk z systemem Windows 7 z dysku 160 GB na dysk 1 TB. Sklonowałem go na mój dysk z linuksem za pomocą Clonezilli. Przywrócono go na nowym dysku i zmieniono jego rozmiar za pomocą narzędzia do zarządzania dyskami w systemie Windows 7. To było z NTFS do NTFS.
Thomas Watnedal,
mówisz „klonuj dysk”, chociaż poprosił o klonowanie partycji. Powiedział także inny system plików.
barlop
5

Rozwiązaniem, z którego korzystałem w przeszłości jest tar. Jeśli partycje mają dokładnie taki sam rozmiar i typ, możesz użyć dd.

Oto moja odpowiedź na pytanie:

  1. uruchom przy użyciu dystrybucji CD na żywo, takiej jak Slax
  2. sprawdź, które partycje znajdują się na nowym dysku
  3. upewnij się, że zarówno stary, jak i nowy napęd są zamontowane, na przykład /tmp/driveoldi / tmp / Drivew '
  4. uruchom z terminala następujące tarpolecenie:

    (tar cp --xattrs /tmp/driveold/path) | (tar x /tmp/drivenew/path)

  5. powtórz dla każdej partycji, którą chcesz skopiować

Działa to dla każdej partycji, na której kiedykolwiek próbowałem (z wyjątkiem /boot, dla których upewniam się, że partycje są identyczne i używają dd).

królikarnia
źródło
2
Podoba mi się to rozwiązanie, ponieważ jest tak proste, ale myślę, że potrzebujesz dodatkowych opcji, takich jak p (zachowaj uprawnienia), aby uzyskać wszystkie metadane.
Jay Conrod,
1
masz rację na p - dodałem to :)
warren
2
Mówiąc o metadanych, --xattrsnależy również użyć opcji (przechowuj listy ACL i informacje o SELinux).
Cristian Ciupitu,
2 smoły połączone rurą można zastąpić cpio --pass-through.
Cristian Ciupitu,
1
Która wersja tarma --xattrsopcję? Nie moje. Sugeruję użycie zamiast rsynclub zwykłego cp: serverfault.com/questions/306538/…
Teddy
2

To jeden z powodów, dla których lubię LVM. Wystarczy dodać nowy dysk do grupy pvmovewoluminów, woluminy logiczne ze starego na nowy dysk, usunąć stary dysk z grupy woluminów, a następnie z systemu. Jeśli zastępujesz dysk rozruchowy, musisz także zaktualizować moduł ładujący.

pgs
źródło
Że jest to świetny pomysł - z wyjątkiem, jeśli nie używasz LVM, jest to trochę uciążliwe :) Dzięki za sugestię, choć!
warren
Coś do rozważenia przy następnej instalacji :-)
pgs
2

+1 do warren i do użycia smoły.

Jednak zwykle próbuję przywrócić z kopii zapasowych. A przejście z jednego dysku na nowy wydaje się dobrą okazją do sprawdzenia, czy Twój plan tworzenia kopii zapasowych działa.

Jeśli symulujesz awarię dysku (odłącz zasilanie ze starego dysku), rozpocznij odzyskiwanie na nowy dysk. A kiedy skończysz, uruchamiasz stary dysk i różnicujesz je, aby sprawdzić, czy masz wszystkie pliki.

Jeśli są identyczne, oboje przenieśliście wszystkie swoje dane i wiecie, że wasz plan tworzenia kopii zapasowych jest ważny i działa.

Johan
źródło
dobry pomysł - chociaż dla tych z nas (<tryb gwizdka = "niewinny" />), którzy nie mają rozwiązania „zapasowego”, może to być dobry moment na wymyślenie takiego rozwiązania :)
warren
1
:)
Johan
2

Inną opcją byłoby uruchomienie z LiveCD i zamontowanie starego napędu jako tylko do odczytu. Ma to na celu zapobieżenie zmianie tego ustawienia na żywo podczas kopiowania. Następnie rsync -avz /mnt/olddisk/ /mnt/newdisk(końcowy ukośnik po olddisku jest konieczny). Jak wspomnieli inni, jeśli jest to dysk rozruchowy, który jest rozszerzany, konieczne będzie jego ponowne uruchomienie, grub-install <new device>zanim będzie można go uruchomić.

Shoan
źródło
jest jeden, o którym nie pomyślałbym :)
warren
1

Większość narzędzi do klonowania dysku może to zrobić. Lubię używać g4u z podglądu na żywo. Ghost jest fajny, ale wolałbym użyć darmowego.

dreszcze42
źródło
1

Znalazłem też Disk Copy , który nie pojawia się na liście w Wikipedii, ale nigdy go nie użyłem.

królikarnia
źródło
1
Kopiowanie dysku jest dobre.
craigmoliver
Niestety, jest to tylko system Windows, a to pytanie zostało oznaczone linuksem.
programista