
Ich rüste die interne SATA-Festplatte meines Laptops von einer 40-GB-Festplatte auf eine 160-GB-Festplatte auf. Ich habe einen Linux/Ubuntu-Desktop mit einer SATA-Karte. Eigentlich würde ich dasselbe gerne für ein paar CentOS- und FreeBSD-Boxen bei der Arbeit tun, und es scheint, dass dies die gleiche Lösung wäre.
Ich habe gehört, dass ich verwenden kannDDum die 40G-Partition auf das 160G-Laufwerk zu spiegeln, oder dass ich die 40G-Partition als Image auf meinem lokalen System speichern und dieses 40G-Image dann auf das 160G-Laufwerk kopieren kann.
Kann mir jemand erklären, wie ich das machen kann? Benötige ich noch andere Dienstprogramme, wie zum Beispielgparted
Antwort1
Normalerweise würde ich eine Lösung wie „Schließen Sie die zweite Festplatte über ein externes Gehäuse an, booten Sie von einer Linux-CD und verwenden Sie dann einen Befehl wie“ vorschlagen. dd if=/dev/sda of=/dev/sdb bs=1G
Da Sie jedoch dieselbe Technik für die Arbeit verwenden möchten, habe ich eine möglicherweise bessere Lösung.
Alle meine Server und Laptops werden bei der Arbeit mitClonezilla. Es gibt zwei Verwendungsmöglichkeiten: Bei einer wird ein dedizierter Server verwendet, was für Sie wahrscheinlich übertrieben ist, und bei einer anderen wird eine Boot-CD und eine externe Festplatte verwendet.
Die Idee ist, dass Sie mit der Clonezilla-CD booten und ein ziemlich großes (größer als das Quelllaufwerk) externes USB-Laufwerk haben. Clonezilla führt Sie durch die Erstellung eines Images des vorhandenen Laufwerks. Danach schalten Sie die Maschine aus, ersetzen das Laufwerk, booten erneut in Clonezilla und es führt Sie durch die Wiederherstellung der Daten.
Dies gibt Ihnen die Möglichkeit, A) das Image auf einem größeren Laufwerk zu speichern und B) eine Sicherungskopie der Daten aufzubewahren.
Antwort2
Ihre erste Aufgabe wäre, beide Festplatten an ein vorhandenes Linux-System anzuschließen oder die neue Festplatte an das ursprüngliche System anzuschließen.
du musst seinsehrVorsicht, es kann sehr leicht passieren, dass die leere Diskette auf die funktionierende Diskette kopiert wird!
Um am Ende alle Bootsektoren und alles zu erhalten, würden Sie etwa Folgendes tun:
dd if=/dev/hdx of=/dev/hdy
Wo hdx
ist Ihre 40-GB-Festplatte und wo hdy
ist Ihre 160-GB-Festplatte? Sie werden feststellen, dass es keine Partitionsnummern wie gibt /dev/hdx1
. Dadurch wird die gesamte Festplatte, Partitionsinformationen und alles kopiert.
Ihre neue Festplatte ist genau wie die alte, mit 40 GB belegt. Sie sollte sofort booten, wenn Sie sie wieder in Ihren Laptop einsetzen. Hoffentlich haben Sie LVM verwendet? Oder hoffentlich haben Sie nicht alle Partitionen verwendet? Um diesen Punkt zu erreichen, sind viel mehr Informationen erforderlich.
Eine andere Lösung besteht darin, jede einzelne Partition zu sichern. Dies erfordert ein viel besseres Situationsbewusstsein, da Sie die Startinformationen neu erstellen müssen.
All dies eignet sich am besten zum Klonen von Computern, nicht zum Aktualisieren von Festplatten. Es ist viel besser, eine neue Installation mithilfe Ihrer Backups wiederherzustellen.
Antwort3
Während dudürfenVerwenden Sie dd, um eine solche Festplatte zu kopieren. Dies hat eine Reihe von Nachteilen:
- Das Ziel muss genau gleich groß oder größer als die Quelle sein
- Nach dem Kopieren müssen Sie die Größe der Partitionen ändern, um den zusätzlichen Speicherplatz nutzen zu können
- Sie verschwenden Zeit beim Kopieren von freiem Speicherplatz
- Die auf der alten Festplatte vorhandene Fragmentierung bleibt erhalten.
Die Verwendung eines Imaging-Programms wie Ghost4Linux, partclone oder clonezilla behebt zumindest die Punkte 2 und 3. Sie können die neue Festplatte auch einfach formatieren, mounten und alle Dateien cp -ax
(als root) kopieren und dann den Bootloader auf der neuen Festplatte neu installieren. Diese Methode hat keinen der oben genannten Nachteile.
Antwort4
Sie haben gefragt, wie man das mit dd macht, aber ich hatte mehr Erfolg, als ich die Ausgabe vonentsorgenhineinwiederherstellenAngesichts der Quellead1s1aund das Zielad2s1a:
$ mount /dev/ad2s1a /target
$ cd /target
$ dump -0Lauf - /dev/ad1s1a | restore -rf -
Ich habe es unter FreeBSD versucht, tatsächlich fand ich es auf derFreeBSD Forum