Zitat von awfguenther;6293
Guten Morgen,
nach einem Kernel-Update nervt GRUB plötzlich mit Error 18. Die (noch nicht überprüfte, da keine Rettungs CD auf der Dienstreise dabei ist) Vermutung geht dahin, daß durch das Update der Kernel soweit hinten auf der Platte (320 GB) gelandet ist, daß das BIOS da nicht mehr rankommt. Um sowas in Zukunft zu vermeiden, will ich mir eine Boot Partition in den vorderen Bereich der Platte packen. Vorausgesetzt, was ich auch noch nicht überprüfen kann, daß die vorhandenen Partitionen in Sachen Verkleineren es hergeben: geht sowas ohne Neuinstallation? Und was ist dabei zu beachten?
Viele Grüße, heute mal aus Hannover
Andreas
Alles anzeigen
Hallo,
Dein Problem dabei ist, dass Du in dem Fall, dass Du recht hättest, eine Partition am Anfang der Platte brauchst. Also musst Du die Partition nicht nur anlegen, sie muss auch vor die bereits Benutzte, Diese muss also verschoben werden. Das können nur aufwendige Partitionierer wie (ich kenne da nur Windows-Programme) Partition Magic. Derartige Programme kosten aber Geld. So gesehen dürfte die Neu-Installation wirklich der bessere Weg sein. Oder 'ne kleine, zusätzliche Platte, die dann die Boot-Partition aufnimmt. Diese Platte müsste dann allerdings vor der Bisherigen kommen, also als primary master eingebaut werden; außer, Dein Mainboard kann BBS, also die Auswahl der Bootplatte mit einem Menü (dann können auch die zweite, dritte oder wer-weis-wie-vielte Platte gebootet werden). Damit ändern sich dann allerdings sämtliche Partitionsbezeichnungen, also 'ne Menge Arbeit beim Ändern der fstab und so.
Wenn Du die Partition hast, musst Du folgendes tun:
mount -t ext2 /dev/sda1 /mnt
(cd /boot ; tar cf - .) | (cd /mnt ; tar xvf -)
umount /mnt
cd /boot
rm -fR *
mount -t ext2 /dev/sda1 /boot
Ich habe dabei unterstellt, dass die neue Partition als sda1 eingebaut ist und /mnt frei ist. Selbstverständlich muss die neue Boot-Partition in die fstab eingetragen werden.
Diese Konstruktion mit tar hat den Vorteil, dass alles Eins-zu-eins übertragen wird. Auch Links zum Beispiel. cp tendiert dazu, Links zu kopieren, indem er die verlinkte Datei kopiert (oder ähnlicher Blödsinn). Mit dieser Konstruktion kann man jeden Teil des Verzeichnisbaums kopieren und auf eine zusätzliche Partition verlagern (also den Platz erweitern zum Beispiel).
Wenn man den Inhalt eines Verzeichnisbaums kopieren will, der mount-points enthält, ist es sinnvoll, nicht über diese hinweg zu kopieren, da man ja in aller Regel noch zusätzliche mount-points für weitere Partitionen braucht, nicht Alte wegmachen will. Die Option --one-file-system beim ersten tar leistet genau das. Aber Achtung, dabei müssen die beiden Anderen zerlegt und ebenfalls mit dem Minus-Zeichen verziert werden (also so:
tar -c --one-file-system -f - .
das muss man so machen, weil -c für die Anlegung eines Archivs steht -bevor man ein Archiv benutzt, muss man es nunmal anlegen- und -f die Option für das benutzte Ziel ist, also direkt vor dem letzten, einsamen Minuszeichen steht. Das Minus-Zeichen braucht man, weil dieses one-file-system ein Parameter aus einem anderen Parametersystem ist -viele Befehle kennen sowohl die System-V, als auch die BSD oder die GNU-Optionen).
Sicher könnte man die Schreibweise auch komplett umstellen, da rate ich aber von Experimenten ab, weil die Wirkung zu erheblichen Problemen führen könnte. Man kann sich auf so 'ne Art sein halbes System zerpflücken, wie ein Fehler von mir (siehe anderer Thread) beweist, wenn auch mit einem Fehler etwas anderer Art.
Wenn Du die Angaben hier beachtest und sich keine Tippfehler einschleichen, wird dass so funktionieren -habe es selbst schon so durchgezogen.
Tschüß
Manfred