# Wechsel auf eine neue, größere Festplatte

## slick

Wenn man sich eine neue Festplatte zulegt ist diese meist größer als die alte. Wenn dem nicht so ist und die neue Platte ist identisch, dann kann man zwar diese Anleitung auch benutzen, eine Alternative wäre auch eine bytegenaue Kopie z.B. siehe z.B. bytegenaue Backup. Dann braucht man nur die Platte klonen und dafür sorgen das sie wieder das gleiche Device (/dev/hda) wie die Alte ist und das wars...

OK, wir haben jetzt also eine kleine alte Platte mit unserem Gentoo und eine neue Große auf die unser Gentoo drauf soll.

Die Beschriebung bezieht sich auf folgende "Vorraussetzungen":

 Es wird nur die Festplatte getauscht, sonst keine Hardware (CPU, Board etc.)

 Die alte und die neuen Platte sind angeschlossen und werden "erkannt". (Wer sicher gehen will legt auf der neuen, angeschlossenen Platte mal ein Dateisystem an und mountet es)

 Wir besitzen ein CD-ROM Laufwerk von dem gebootet werden kann.

 Die alte Platte sei /dev/hda und die neue /dev/hdb (nach dem Ausbau der Alten soll sie aber zu /dev/hda werden)

 (Stichwort Backup... sowas ist immer gut... Link 1,  Link 2)

Wir nehmen ebenso den "komplizierten" Fall an, dass auf der alten Platte mehr als die Standard Partitionen existieren. Es gilt folgende Aufteilung der (alten) Platte

 hda1 -> /boot

 hda2 -> swap

 hda3 -> /

 hda4 -> erweiterte Partition

 hda5 -> /usr

 hda6 -> /var

Also wir booten unser System von CD (Autors Liebling ist hierbei Knoppix). Wir brauchen kein X sondern können z.B. bei Knoppix durch die Eingabe "knoppix 2" im Bootprompt nur in die Textkonsole booten.

Wir mounten zuerst die alte Platte mit all ihren Partitionen:

```
# mkdir /alt

# mount /dev/hda3 /alt

# mount /dev/hda1 /alt/boot

# mount /dev/hda5 /alt/usr

# mount /dev/hda6 /alt/var
```

Wir partitionieren die neue Platte entsprechend unseren Vorstellungen, an die Struktur an alten brauchen wir uns dabei nicht zu halten und formatieren sie anschliessend mit den entsprechenden Dateisystem(en) Hilfe zur Partitionierung und Formatierung gibts im Handbuch. Ein Wechsel zu anderen Dateisystemen wie auf der alten Platte sei mit Vorsicht zu genießen, evt. fehlt dann die Kernel Unterstützung oder bestimmte Pakete.

Ok, die neue Platte ist nach folgendem Schema geplant (noch ist sie /dev/hdb):

 hdb1 -> swap

 hdb2 -> /

 hdb3 -> /opt

 hdb4 -> /tmp

Wir mounten die neue Platte entsprechend unseren Vorstellungen, Mountpoints müssen wir erst anlegen, die ist ja noch leer...

```

# mkdir /neu

# mount /dev/hdb2 /neu

# mkdir /neu/opt

# mount /dev/hdb3 /neu/opt

# mkdir /neu/tmp

# mount /dev/hdb4 /neu/tmp
```

Soweit so gut.... jetzt können wir kopieren. 

```
# cp -av /alt/* /neu
```

Hinweis: Beim Kopieren mit cp -av werden keine ".*"-Dateien kopiert welche direkt im zu kopierenden Verzeichnis liegen.  Beispielsweise gibt es die Datei /verzeichnis/.bash_history Kopiere ich nun mit cp -av /verzeichnis/* /ziel wird die Datei .bash_history nicht mitkopiert da sie durch den Platzhalter * nicht erfaßt wird. Man kann dann diese Datei(en) nachträglich durch ein cp -v /verzeichnis/.* /ziel kopieren. ".*" -Dateien in Unterverzeichnissen von /verzeichnis sind hiervon nicht betroffen.

Jetzt ist erstmal eine Kaffee- oder Raucherpause... die brauchen wir auch... gleich kommen wichtige Schritte... (der Autor bevorzugt die Raucherpause um seine Lebenserwartung zu senken und somit das Rentensystem später zu entlasten)

Jetzt sind alle Daten kopiert. Jetzt ist aber unsere alte Platte noch /dev/hdb. Da sie aber /dev/hda (die erste Platte) werden soll können wir sie schlecht bootbar machen während sie noch /dev/hdb ist. Also ist als nächstes der Umbau der Festplatten dran. Wir umounten alle Partitionen in der umgekehrten Reihenfolge wie wir sie gemountet haben und fahren den Rechner runter.

```
# umount /neu/tmp

# umount /neu/opt

# umount /neu

# umount /alt/var

# umount /alt/usr

# umount /alt/boot

# umount /alt

# halt
```

Wir bauen jetzt die alte Festplatte aus und setzen stattdessen die neue Festplatte ein. (nicht vergessen evt. die Jumper umzustecken)

Wir booten den Rechner wieder von CD in den Textmodus.

Als nächstes müssen wir unsere fstab anpassen sowie das System wieder bootbar machen. Also legen wir wieder unsere Verzeichnisse an, mounten die Partitionen und chrooten unser Gentoo-System. Jetzt ist die Platte /dev/hda!

```
# mkdir /neu

# mount /dev/hda2 /neu

# mkdir /neu/opt

# mount /dev/hda3 /neu/opt

# mkdir /neu/tmp

# mount /dev/hda4 /neu/tmp

# chroot /neu

# env-update

# source /etc/profile
```

Jetzt bearbeiten wir unsere /etc/fstab und ändern die Partitionen und deren Mountpoints.

Ok, geschafft, jetzt noch einmal unseren Bootmanager  im Boosektor installieren , nicht zu vergessen sei hierbei das wir in dessen Konfiguration auch die Root-Partition ändern müssen (TNX to c07) und fertig ists... oder fehlt was? Richtig, wir haben die Swappartition noch gar nicht als solche formatiert... das sollte Dir spätestens beim ändern selbiger in der fstab aufgefallen sein. Also noch ein

```
# mkswap /dev/hda1
```

Zum Schluß chroot verlassen (STRG+D), wieder alle Partitionen umounten und starten ohne CD...

 :Exclamation:  Das Partitionsschema ist frei erfunden und diente nur zu Illustration. Tips zur Partionierung gibts u.a. hier:

https://forums.gentoo.org/viewtopic-t-277127.html

https://forums.gentoo.org/viewtopic-t-17670.html

https://forums.gentoo.org/viewtopic-t-139300.html

https://forums.gentoo.org/viewtopic-t-288084.html

Die alte Festplatte machen wir natürlich erst platt wenn unsere neue läuft...Last edited by slick on Fri Mar 18, 2005 8:00 am; edited 14 times in total

----------

## primat

Ich würde beim cp noch ein -x dazunehmen. Siehe man cp:

 *Quote:*   

>  -x, --one-file-system
> 
>               Skip  subdirectories  that are on different filesystems from the
> 
>               one that the copy started on.

 

Gruss

----------

## slick

Auf keinen Fall würde ich das benutzen. Das würde ja bedeuten es kopiert mir evt. nur meine gemountete Root-Partition nicht aber die anderen Partitionen (im Beispiel oben /usr und /var) wenn die ein anderes Dateisystem sein sollten.

Edit: Hmm... es mag sein das es sinnvoll sein kann, aber ich würde es trotzdem nicht in dem TIP verwenden weil es grad bei der Zeilgruppe des TIPs zu Schwierigkeiten damit kommen könnte.

----------

## c07

Wobei man die neue Platte auch gleich als /dev/hda einbauen kann. Die alte wird ja nicht mehr gebootet.

Beim Bootloader muss man auch die Konfiguration anpassen (neue Rootpartition und /boot muss ohne eigene Bootpartition normalerweise in den Kernelpfad).

Außerdem würd ich nicht empfehlen, Swap und /tmp auf entgegengesetzten Seiten der Platte unterzubringen. Die gehören beide entweder an den Anfang (weil die meisten Platten da am schnellsten sind) oder in die Mitte (weil da die Wege von der vorigen Position durchschnittlich am kürzesten sind). Wobei man den Swap auch an eine ungünstige Position legen kann, wenn man davon ausgeht, dass er eh fast nicht gebraucht wird.

----------

## slick

 *Quote:*   

> Wobei man die neue Platte auch gleich als /dev/hda einbauen kann. Die alte wird ja nicht mehr gebootet.

 

Manchmal sieht man den Wald vor lauter Bäumen nicht  :Wink:  Danke... Andererseits kann man so sicher auch sein das die Platte funktioniert ohne schon größeres Umstöpseln am PC. Ich lass das mal so...

 *Quote:*   

> Beim Bootloader muss man auch die Konfiguration anpassen (neue Rootpartition und /boot muss ohne eigene Bootpartition normalerweise in den Kernelpfad). 

 

Ich wußte ich habe was vergessen... naja, um die Uhrzeit  :Wink:  Wird ergänzt...

 *Quote:*   

> Außerdem würd ich nicht empfehlen, Swap und /tmp auf entgegengesetzten Seiten der Platte unterzubringen...

 

Den Beitrag habe ich förmlich erahnt. Ich hatte am Anfang noch den Hinweis drin das die Partitionierung vollkommerner Blödsinn ist drin und nur als Beispiel dient... hatte es dann aber doch gestrichen...  :Wink:  Wird ergänzt..

----------

## ueymir

... und was macht man, wenn man bei einem cp -a /* /mnt/sicherung (ohne /home und /usr) auf einmal weniger Daten im Zielverzeichnis hat als eigentlich auf der Partition vorhanden sind?

Ich mußte meine Partitionierung ändern und dabei einige Linux Partitionen (reiser) verschieben. Dazu habe ich die LiveCD genutzt, damit die zu sichernden Bereiche auch ja nicht gemountet werden. Es entstand also freier Speicher, den ich neu partitionierte und dort mein / Bereich hin kopierte. Danach führte ich ein df aus und sah, dass die neue Partition um 119.528 kB kleiner war. Schnell die fstab geändert und die alte Partition vom mounten ausgenommen, d.h. hier läge noch meine Sicherung. Neustart und kein Problem. Jetzt frage ich mich aber, warum ich weniger Daten auf der Platte habe, als vorher. Er hat mir /proc und /dev mitkopiert (war das gut so? warum sollte ich es nicht machen? wer kann mich über diese Verzeichnisse aufklären? Linux anfänger, 'tschuldigung)

Ich habe davon gehört, dass cp -a * die versteckten Dateien des ersten Verzeichnisses nicht mitkopiert, nur sind dort auch keine vorhanden. Ich werde die Tage auch meine /usr und /home partition verschieben, nur werde ich dann keine Sicherung mehr haben, falls etwas schief geht - meine Festplatte ist zu klein dafür.

fstab

/dev/hda1		/boot		ext3		noauto,noatime		1 2

/dev/hda5		/		reiserfs	noatime,notail		0 1

/dev/hda3		none		swap		sw			0 0

/dev/hda7		/usr		reiserfs	noatime,notail		0 0

/dev/hda8		/home		reiserfs	noatime,notail		0 0

/dev/cdrom		/cdrom		auto		noauto,ro,user		0 0

/dev/hda2		/windows	auto		noauto,user		0 0

/dev/hde1		/pcmcia		auto		auto,user		0 0

/dev/sda1		/usb		auto		auto,user		0 0

# NOTE: The next line is critical for boot!

none			/proc		proc		defaults		0 0

none			/dev/shm	tmpfs		defaults		0 0

Danke für jeden Hinweis!

----------

## c07

df sagt dir nicht, wie viel Daten tatsächlich vorhanden sind, sondern nur, wie viel Platz dafür im Dateisystem gebraucht wird. Wenn du beispielsweise /mnt/sicherung ohne notail gemountet hast, ist es logisch, dass da weniger Platz verbraucht wird. Kleinere Abweichungen (ist der Punkt in "119.528 kB" ein Dezimaltrenner oder eine Tausendergliederung?) können sich auch schon dadurch ergeben, dass wegen Fragmentierung auf der alten Partition mehr Verwaltungsdaten gebraucht werden oder zu große Hashes nicht gleich verkleinert worden sind.

 *ueymir wrote:*   

> Er hat mir /proc und /dev mitkopiert (war das gut so? warum sollte ich es nicht machen? wer kann mich über diese Verzeichnisse aufklären? Linux anfänger, 'tschuldigung)

 

Nachdem du nicht vom laufenden System kopiert hast, war das richtig. /proc sollte dann bis auf ein .keep eh leer sein und in /dev werden beim Booten zumindest /dev/console und /dev/null benötigt, bevor dort devfs gemountet wird (weiß nicht, wie es mit udev genau ist).

 *ueymir wrote:*   

> Ich habe davon gehört, dass cp -a * die versteckten Dateien des ersten Verzeichnisses nicht mitkopiert, nur sind dort auch keine vorhanden.

 

Genau genommen ist deine Shell dafür zuständig, das "*" aufzulösen, und die ignoriert dabei normalerweise in der Tat Dateien, die mit einem Punkt anfangen. Lässt sich aber in der Bash mit "shopt -s dotglob" ändern.

----------

## ueymir

Das sollte eine Tausendergliederung sein, also gut über 100 MB. Stimmt aber schon, dass ich die Partition für die Sicherung nicht mit notail gemountet habe. Dass es durch Fragmentierung auch zu leichten Unterschieden kommen kann, dachte ich auch, nur der für mich recht große Unterschied hat mich etwas verwirrt.

Danke für die Antwort! Morgen werde ich die letzten beiden Partitionen verschieben, werde aber sicherheitshalber wohl doch meine Daten sichern  :Wink:  man weiß ja nie...

----------

## tazinblack

Erst mal vielen Dank für diesen Beitrag ! Hab ich mich auch dran orientiert und hat gut geklappt  :Smile: 

 *slick wrote:*   

> Ein Wechsel zu anderen Dateisystemen wie auf der alten Platte sei mit Vorsicht zu genießen, evt. fehlt dann die Kernel Unterstützung oder bestimmte Pakete.
> 
> 

 

Zu diesem Thema kann ich nur sagen, wenn man die Unterstützung vorher im Kernel überprüft, dann klappts auch mit dem FS-Wechsel.

Habe von reiserfs nach ext3 gewechselt, zumal das gerade so aussieht, als hätte ext3 mehr Zukunft und da muss man ja mal Erfahrungen sammeln !

By the way : Sitzt Herr Reiser noch im Knast, oder war das nur ne Ente auf Heise ?

----------

## chilla

Ist es nicht sinnvoller, mit rsync zu arbeiten, statt mit cp? Stell dir vor, du brichst den kopiervorgang ab... :\ Rsync macht dann wenigstens da weiter, wo es aufgehört hat, bzw. wenn du dann noch 2 tage auf dem alten system weiterarbeitest, weil du gerade zu faul bist, die platte auszubrauen, knallst du einfach nochmal dein rsync kommando rein und innerhalb von 5 minuten ist auf der neuen festplatte alles wieder auf dem aktuellen stand. 

Gruß, Roman

----------

## tazinblack

 *chilla wrote:*   

> Ist es nicht sinnvoller, mit rsync zu arbeiten, statt mit cp? 

 

Also ich bevorzuge auch rsync welches vorzüglich funktiniert !

----------

## Mgiese

hi,

also einfacher als

mount /dev/hda3 /new

mount /dev/hdc3 /old

das gleiche noch mit der boot partition !!

cp -av /old/* /new

gehts wirklich nicht  :Smile: 

man muss natuerlich vorher die partitionen erstellen(boot,swap,root) und hinterher grub auf der neuen hd installieren (siehe x86 quick install guide)

----------

