Meine 120 GB-Platte im Laptop (¹, Squeeze, i386, SATA, Kernel
2.6.26-2-686 [ja, nicht aktuell, muss aber]) ist mir zu klein geworden,
daher möchte ich auf eine 320er umziehen. Die liegt hier auch schon
neben mir. Da ich den Rechner höchstens für's Kopieren der Daten
entbehren kann, möchte ich am Ende nicht mit einem kaputten System
zusitzen.
Der Plan ist folgender:
1. / auf externe Platte kopieren
Das habe ich schon mit `rsync -aH ...` gemacht, die Verzeichnisse
/proc, /sys, /dev und /mnt² habe ich ausgelassen. Sehe ich es
richtig, dass /proc, /sys und /dev nur existieren müssen und von Linux
beim Starten vollständig gefüllt werden?
2. kleine Platte raus, große rein
Die neue wird dann entsprechend /etc/fstab partitioniert (der
zusätzliche Platz kommt dabei /home zu gute) und die Dateien werden
wieder mittels rsync rüberkopiert³.
Noch werden die Partitionen über ihre UUID angesprochen, das ändere ich
aber in der Kopie auf der externen Platte noch auf die klassische
/dev/sXY-Schreibweise. Damit sollte dann doch, wenn Linux startet,
alles klappen, oder?
3. Bootsektoren anlegen
Ich verwende grub2 und habe wenig Erfahrung damit. Es gibt genügend
Infos im Netz zu grub (nun legacy) und wie man's auf einer Platte von
Hand in den MBR und den Bootsektor installiert. Bei grub2 sieht's aber
mau aus, ich habe jedenfalls nichts gefunden, was mir bei meinem
geringen Verständnis dafür großartig helfen würde.
Mein bisheriger Stand ist folgender. grubs device-map müsste ja noch
stimmen, da steht nun "(hd0) /dev/sda" drin und das wird sich ja auch
nicht ändern. Nun kann ich grub2 in den MBR installieren, indem ich ein
`grub-install /dev/sda` mache, richtig? Wie bekomme ich grub2 denn in
den Bootsektor auf /dev/sda1? Irgendwelche speziellen Parameter?
Muss ich an grubs Konfiguration in /boot/grub etwas ändern? Eigentlich
nicht, oder?
4. Nach dem Start von der neuen Platte
Bei Bedarf wieder UUIDs in die /etc/fstab eintragen.
Soweit der Plan. Kann jemand die Unklarheiten beseitigen?
Vielen Dank und schöne Grüße!
Tobias
¹ $ mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sda4 on /home type ext3 (rw)
/dev/sda2 on /var type ext3 (rw)
² Im ersten Anlauf habe ich das natürlich vergessen und mich nach 3
Stunden gewundert, warum die Platten noch immer rödeln... :-)
³ Wenn ich nun einen aktuelleren Kernel verwenden würde, könnte ich
dann einfach von ext3 auf ext4 umsteigen, indem ich beim Erstellen
der Dateisysteme mkfs.ext4 benutze und in der fstab "ext4" durch "ext4"
ersetze?
Hi Tobias,
> Meine 120 GB-Platte im Laptop (¹, Squeeze, i386, SATA, Kernel
> 2.6.26-2-686 [ja, nicht aktuell, muss aber]) ist mir zu klein geworden,
> daher möchte ich auf eine 320er umziehen. Die liegt hier auch schon
> neben mir. Da ich den Rechner höchstens für's Kopieren der Daten
> entbehren kann, möchte ich am Ende nicht mit einem kaputten System
> zusitzen.
>
> Der Plan ist folgender:
>
> 1. / auf externe Platte kopieren
>
> Das habe ich schon mit `rsync -aH ...` gemacht, die Verzeichnisse
> /proc, /sys, /dev und /mnt² habe ich ausgelassen. Sehe ich es
> richtig, dass /proc, /sys und /dev nur existieren müssen und von Linux
> beim Starten vollständig gefüllt werden?
Ich verwende
rsync -ax --acls --xattrs --sparse --hard-links --del --delete-excluded --
exclude-from "debian-exclude" --exclude "/home/ms" / $DEST/debian
shambhala:~/backup> cat debian-exclude
/dev/.udev
/proc/**
/sys/**
/tmp/**
/var/cache/apt/archives/*.deb
/var/tmp/**
für ein Backup. /home dann extra, da rsync mit -x Dateisystem-Grenzen
nicht überschreitet. Insbesondere --sparse und --hard-links (hast Du oben
ja auch) halte ich für sinnvoll.
> 2. kleine Platte raus, große rein
>
> Die neue wird dann entsprechend /etc/fstab partitioniert (der
> zusätzliche Platz kommt dabei /home zu gute) und die Dateien werden
> wieder mittels rsync rüberkopiert³.
>
> Noch werden die Partitionen über ihre UUID angesprochen, das ändere ich
> aber in der Kopie auf der externen Platte noch auf die klassische
> /dev/sXY-Schreibweise. Damit sollte dann doch, wenn Linux startet,
> alles klappen, oder?
Ich empfehle Labels. Beispielsweise: mkfs.ext4 -L debian /dev/sda2 und
dann Mounten mit LABEL=debian. Dann kannst Du umpartitionieren ohne die
/etc/fstab anzupassen.
Ich empfehle ein separates /boot, um später leichter auf BTRFS oder
Ähnliches migrieren zu können. Dann brauchst nicht zu warten, bis es in
GRUB spruchreif wird.
> 3. Bootsektoren anlegen
>
> Ich verwende grub2 und habe wenig Erfahrung damit. Es gibt genügend
> Infos im Netz zu grub (nun legacy) und wie man's auf einer Platte von
> Hand in den MBR und den Bootsektor installiert. Bei grub2 sieht's aber
> mau aus, ich habe jedenfalls nichts gefunden, was mir bei meinem
> geringen Verständnis dafür großartig helfen würde.
>
> Mein bisheriger Stand ist folgender. grubs device-map müsste ja noch
> stimmen, da steht nun "(hd0) /dev/sda" drin und das wird sich ja auch
> nicht ändern. Nun kann ich grub2 in den MBR installieren, indem ich ein
> `grub-install /dev/sda` mache, richtig? Wie bekomme ich grub2 denn in
> den Bootsektor auf /dev/sda1? Irgendwelche speziellen Parameter?
>
> Muss ich an grubs Konfiguration in /boot/grub etwas ändern? Eigentlich
> nicht, oder?
Wenn der GRUB vorher im MBR war, reicht grub-install /dev/sda oder
"(hd0)". Im Partitions-Bootblock von /dev/sda1 brauchst Du nur dann einen
Bootloader, wenn Du im MBR was Anderes als GRUB hast. Partitionsblöcke
gehen mit XFS übrigens gar nicht, denn XFS schreibt da seinen Superblock
hin (von IRIX übernommen).
Ciao,
--
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA B82F 991B EAAC A599 84C7
Vieleicht nur als Anregung: Als bei mir ein Austausch der Festplatten
gegen größere anstand habe ich von einer Live CD gebootet und einfach
den kompletten Inhalt der alten Platten mit dd auf die neuen kopiert.
Das erforderete keinerlei Nacharbeiten - von den neuen Platten konnte
ich direkt booten. Allerdings musste ich mich auch nicht mit dem
Vergrößern von Partitionen beschäftigen weil ich von Anfang an geplant
hatte den zusätzlichen Platz mit einer neuen Partition zu belegen.
Grüße
Brauner
--
Haeufig gestellte Fragen und Antworten (FAQ):
http://www.de.debian.org/debian-user-german-FAQ/
Zum AUSTRAGEN schicken Sie eine Mail an debian-user-g...@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an listm...@lists.debian.org (engl)
hmmm, --del und --delete-excluded würde ich rauslassen. Das ist nur für
meine Backup-Zwecke sinnvoll, macht den rsync-Aufruf aber gefährlicher,
wenn man Quelle und Ziel vergleicht.
Die Idee von Brauner - bitte echte Vor- und Zunamen verwenden - mit einer
Live-CD ohne Umweg über ein Backup zu gehen, etwa in dem Du die alte
Platte in ein USB/eSATA-Gehäuse verpackst und zusätzlich anschließt - hat
auch seinen Reiz, da Du damit Zeit sparst. Ich arbeite bei sowas aber
gerne mit doppelten Boden, also mit einem Backup. So dass es drei Kopien
gibt, von denen eine nicht am Rechner angeschlossen sein sollte. So hat
ein cfdisk/fdisk, dd, rsync --del oder Ähnliches auf die falsche Platte
nicht gleich fatale Auswirkungen.
Und das geht auch von einer Live-CD aus immer? Falls ja, sucht er sich
die Informationen selbst zusammen? Falls nein, was müsste ich tun?
Du solltest das kopierte System verwenden, um genau die Version von GRUB
zu installieren, die das zu bootende System auch verwendet. Ich weiß gar
nicht, ob aktuelle Live-CDs wie GRML den GRUB 2 drauf haben.
Folgendes sollte funktionieren - nach dem das System vollständig auf die
neue Platte kopiert ist:
mkdir /mnt/install
mount /dev/sda2 /mnt/install
mount /dev/sda1 /mnt/install/boot
Oder wie auch immer.
mount -o bind /dev /mnt/install/dev
mount -o bind /dev/pts /mnt/install/dev/pts
mount -o bind /proc /mnt/install/proc
mount -o bind /sys /mnt/install/sys
chroot /mnt/install
/boot/grub/device.map überprüfen
evtl. nochmal update-grub
grub-install "(hd0)"
Ohne irgendwelche Garantien, also bitte selbst mitdenken ;).
Danke, aber das ist keine Option für mich, ich will ja mein /home
vergrößern. Außerdem will ich nicht die leeren Sektoren und die
Fragmentation übernehmen, daher dateibasiertes Kopieren. Ist natürlich
mehr Arbeit dann.
Na immer :-) Ich werde das am Wochenende mal so versuchen und
meine Erkenntnisse hier posten.
Was Du natürlich auch per Live-CD machen kannst. Also direkt von alter auf
neue Platte, wenn Du die via USB oder eSATA etc. dran anschließt. Wie
geschrieben arbeite ich allerdings lieber mit drei Kopien, von denen eine
gerade nicht mit dem Rechner verbunden ist.
Also, das Upgrade ging vollkommen glatt. Ich habe
* / mit rsync ohne /dev, /mnt, /proc, /sys auf eine externe Platte
kopiert
* die neue Platte eingebaut
* den Rechner mit LiveCD gestartet und die alte Partitionierung
übernommen, wobei der zusätzliche Platz /home zugutegekommen ist
* die ursprünglichen Dateisysteme mit mkfs.ext3 (in meinem Fall
/dev/{sda1,sda2,sda4}) angelegt
* die Dateien wieder rüberkopiert, /etc/fstab angepasst (UUID
-> /dev/sdaX), Verzeichnisse /mnt, /var, /sys, /proc, /dev und /home
wieder angelegt
* nach https://wiki.ubuntu.com/Grub2#Recover%20Grub%202%20via%20LiveCD
(im Prinzip das was Martin schrieb) GRUB 2 in den MBR installiert
* die LiveCD rausgenommen und den Rechner neugestartet
Löppt!
Na, feini. ;)