|
|
Dieser Artikel ist verfübar in: English Castellano ChineseBig5 ChineseGB Deutsch Francais Nederlands Turkce |
von Olivier Chapuis <chapuis.olivier(at)wanadoo.fr> Über den Autor: Im wirklichen Leben beschäftigt sich der Autor mit Mathematik, besonders mit Logik und Algebra. Er hat kürzlich Linux für sich entdeckt und das war für ihn eine wahre Offenbarung. Er liebt Muriel und sein augenblickliches Hobby ist Tauchen. Außerdem mag er die Bretagne, die See, Bootfahren, Skilaufen und gutes Essen. Übersetzt ins Deutsche von: Katja Korn <katja(at)linuxfocus.org> Inhalt: |
Zusammenfassung:
In diesem Artikel erkläre ich, wie man Windows von einem Rechner entfernt, auf dem sowohl Linux als auch Windows laufen und außerdem, wie man den dann neu verfügbaren Platz für Linux nutzen kann. Dieser Artikel richtet sich an noch unerfahrene Benutzer (Ich bin selber einer von ihnen).
Mir fiel eines Tages, als ich Linux ungefähr zwei Monate auf meinem Rechner installiert hatte, ein, daß ich Windows von meinem Rechner entfernt haben wollte. Der Grund dafür war einfach, daß ich es nicht mehr benutzte!Ich nehme an, daß eine Reihe von neuen Linuxbenutzern in derselben Situation sind wie ich und schrieb deshalb diesen Artikel, um ihnen zu helfen (die Gurus können ihn auch lesen und Verbesserungsvorschläge machen). Wenn man in dieser Situation ist, gibt es zwei mögliche Strategien.
Die erste ist, Linux neu zu installieren. Der Vorteil dieser Strategie ist, daß man mit etwas Linuxerfahrung bessere Einstellungen bei der Installation wählt, insbesondere dort, wo es um die Partitionsgröße geht. Der größte Nachteil ist, daß man alles verliert. Dies kann man teilweise dadurch verhindern, daß man von allem, was nicht auf der Installations-CD-ROM mit drauf ist, ein Back-up anfertigt. Aber dieses Back-up aufzuspielen wird dich einiges an Zeit und Schweiß kosten.
Die zweite Strategie ist, Windows zu entfernen (was einfach ist) und dann den verfügbaren Platz für Linux zu benutzen. Hierfür ist eine <<Repartitionierung>> notwendig, eine Operation, die ein bißchen trickreich und wenig dokumentiert ist. Der Vorteil dieser Methode ist, wenn du erfolgreich bist, daß dein System <<wie vorher>> ist, aber nun über mehr Speicherplatz verfügt. Der zweite Vorteil ist, daß du, wenn es schief gegangen ist, immer noch die erste Methode anwenden kannst. In diesem Artikel erkläre ich, wie ich es gemacht habe. Natürlich hängt die für dich beste Methode immer von deiner Konfiguration ab. Besonders, wenn du eine große zusätzliche Platte besitzt, könntest du deine Daten zuerst auf diese Platte kopieren und dann neu installieren. Ich hatte nicht diese Möglichkeit und mache deshalb normalerweise Backups auf 1.44 MB Floppies. Auf jeden Fall hoffe ich, daß die unten beschriebene Strategie neuen Benutzern helfen wird.
Ich möchte Olivier Tharan für seine ausführliche Antwort auf meine gepostete Nachricht in fr.col.moderated danken, die Version 1 dieses Artikels war, sowie Finn Bo Jorgensen und Chmouel Boudjnah für ihre Anregungen.
- Vorbereitung: Back-up, untersuche deine Dateien und mach dir von den wichtigen Notizen, bevor du weitermachst. Lies diesen Artikel, um zu verstehen, was du tust (Abschnitt 3 unten).
- Entferne Windows (Abschnitt 4 unten).
- Repartitionierung, der trickreiche Teil (Abschnitt 5 unten).
Mach vor allem von allen wichtigen Dateien ein Back-up. Besonders von den Konfigurationsdateien und deiner Arbeit. Mehr werde ich dazu jetzt nicht mehr sagen.
Ein vorbereitender Schritt ist es, zu verstehen, was du tun wirst. Es folgen einige Erklärungen der Befehle und Dateien, aber das ganze ist unvollständig. Lies deshalb die Man Pages! In diesem Fall, fdisk, mk2ext, cp (ein nicht so dummer Befehl), lilo, lilo.conf und fstab (es gibt auch Man Pages für bestimmte Konfigurationsdateien). Eine sehr ausführliche Dokumentation über lilo findet sich im Verzeichnis /usr/doc/lilo-0.20/doc/ (wenn dein System richtig installiert ist). Vor allem gibt es da ein 46-seitiges <<Benutzerhandbuch>>! Für fdisk lies die Datei /usr/doc/util-linux-2.7/README.fdisk, die ebenfalls sehr vollständig ist. Beim Schreiben dieses Artikels habe ich außerdem ein sehr nützliches Mini How-To kennengelernt, das sehr wichtig ist: Hard Disk Upgrade Mini How-To.
Als erstes ist hier meine Partitionstabelle:
[olivier@snoopy olivier]# /sbin/fdisk -l (als su) Disk /dev/hda: 128 heads, 63 sectors, 788 cylinders Units = cylinders of 8064 * 512 bytes Device Boot Begin Start End Blocks Id System /dev/hda1 * 1 1 397 1600672+ c Unknown /dev/hda2 398 398 601 822528 83 Linux native /dev/hda3 602 602 627 104832 82 Linux swap /dev/hda4 628 628 788 649152 83 Linux native |
Wir sehen, daß Windows auf hda1 ist. Es ist nicht ungewöhnlich für fdisk, <<Unknown>> bei FAT32 Partitionen anzuzeigen. Mein Kernel (momentan 2.0.34) weiß, wie man diesen Typ von Dateisystem anspricht, aber dies gilt nicht für fdisk. Um dies zu zeigen, ist hier die Ausgabe von df (mit der gemounteten dos Partition
[olivier@snoopy olivier]# df Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda2 796065 506992 247947 67% / /dev/hda4 628351 226366 369528 38% /home /dev/hda1 1594456 850420 744036 53% /mnt/dos |
Du mußt zwei Konfigurationsdateien editieren, /etc/fstab und /etc/lilo.conf. Sie sehen ungefähr so aus:
[olivier@snoopy olivier] less /etc/fstab /dev/hda2 / ext2 defaults 1 1 /dev/hda4 /home ext2 defaults 1 2 /dev/hda3 swap swap defaults 0 0 /dev/fd0 /mnt/floppy ext2 user,noauto 0 0 /dev/cdrom /mnt/cdrom iso9660 user,noauto,ro 0 0 none proc proc defaults 0 0 /dev/hda1 /mnt/dos msdos user,noauto 0 0 |
[olivier@snoopy olivier] less /etc/lilo.conf boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=500 image=/boot/vmlinuz-2.0.34-1 label=linux root=/dev/hda2 read-only other=/dev/hda1 label=dos table=/dev/hda |
Von jetzt an mußt du alles als root machen. Aus psychologischen Gründen rate ich dir, dich als root einzuloggen (und nicht über su von deinem Account aus). Wenn du vi zum Editieren benutzt, mußt du eventuell w! zum Speichern benutzen. In jedem Fall rate ich dir, zu überprüfen, daß deine Änderungen wirklich gespeichert sind (verlaß deinen Editor und schau dir die Dateien mit less an).
Du wirst jetzt als nächstes die Befehle fdisk und mke2fs benutzen. Diese Befehle benutzt man für Festplattenpartitionen sowie alle anderen Speichersysteme. Es ist besser, diese Befehle nur auf nicht gemounteten Partitionen anzuwenden. Das ganze geschieht in drei Schritten.
- Wenn deine Partition gemountet ist, unmounte sie: umount /mnt/dos.
- Starte fdisk. Ändere die Identität von hda1: wir erklären Linux, daß diese Partition jetzt eine Linux eigene Partition sein soll. Mach dies mit dem folgenden Befehl t (t, 1, 83). Schau dir das Ergebnis mit p an, das einzige, was sich ändert, ist Unknown, das nun linux eigen ist und das c, das nun 83 wird. Speicher und beende: w. Betrachte noch mal : fdisk -l. Beim Beenden von fdisk erhielt ich die folgende Fehlermeldung:
The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. Re-read table failed with error 16: Device or resource busy. Reboot your system to ensure the partition table is updated. |
Soweit ich weiß, ist diese Nachricht normal und harmlos: Ich habe den Rechner jedenfalls nicht neu gestartet.
- Formatiere: mke2fs /dev/hda1. Es erscheinen dann viele Nummern, das System arbeitet ein bißchen und puh! Windows 98 existiert nicht mehr! Der Kluge wird noch die -c option hinzufügen, die einen schnellen Check nach defekten Blöcken durchführt.
Jetzt hast Du es geschafft. Windows existiert nicht länger. Ich war nicht besonders erregt darüber (ich habe persönlich nichts gegen win98, anders als bei Microsoft...). Aber ich war glücklich für Linux ...
Gut, jetzt habe ich eine leere 1.5 Gb Partition, eine 600 Mb für /home und eine 800 Mb für / (und eine swap Partition mit 100 Mb). Es sind 100 Mb in /home/myaccount, die in /usr/local/ sein sollten (Ich lasse sie auf /dev/hda2) und es sind 10 Mb in /usr/local. Ich verschiebe / nach hda1 und /usr/local nach hda2. Dies ergibt:
Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda1 1600672 465000 1130672 29% / /dev/hda2 796065 110000 696065 13% /usr/local /dev/hda4 628351 40739 587612 6% /home |
Genügend Speicherplatz für ein Dutzend Jahre....
Nun, wie macht man das?. Um auf hda1 zugreifen zu können, mußt du es irgendwo mounten. Meistens benutzt man /mnt.
- Lege ein neues Verzeichnis in /mnt an, z.B. /mnt/tmp, um einen geeigneten Mountpunkt für hda1 zu schaffen (mount legt keine Verzeichnisse an): mkdir /mnt/tmp.
- Mounte hda1 in /mnt/tmp : mount -t ext2 /dev/hda1 /mnt/tmp (natürlich gibt -t ext2 den Dateisystemtyp an).
- Kopiere / unter Beibehaltung seiner Struktur nach /mnt/tmp/: cp -ax / /mnt/tmp/. Für die -a option sagt die Man Page: <<Erhalte so viel wie möglich von der Struktur und den Eigenschaften der Originaldatei in der Kopie. Dasselbe für -dpR>>. Lies die cp Man page für die Bedeutung von d, p und R, die das a besser erklären. Die -x option möchte die Unterverzeichnisse übergehen, die in anderen Dateisystemen sind, als dem, von dem die Kopie ausging. In meinem Fall vermeidet dies das Kopieren von /home nach /dev/hda1. Der Kopiervorgang dauert eine Weile (ungefähr 15 min mit meiner IDE Platte und meiner AMD K6 mit 266 MHz), nun also der übliche Satz: Geh solange einen Kaffee trinken oder nimm einen doppelten Whisky.
- Es fehlen immer noch einige Dinge von hda1. Wegen der -x option fehlen uns die beiden Verzeichnisse (leer) /home und /proc. Deshalb mkdir /mnt/tmp/home und mkdir /mnt/tmp/proc. Diese Verzeichnisse sind die Mountpunkte, die da sein müssen, damit /home (das auf hda3 liegt) und /proc auf root gemountet werden können.
Jetzt werden die Dinge ein bißchen komplizierter. Wir haben / (=/-/home) auf hda2, aber auch in /mnt/tmp/. Wir machen uns für einen Neustart bereit. Wir müssen fstab und lilo.conf. editieren. Linux muß erklärt werden, daß wir einen Neustart mit /, das in /mnt/tmp/ liegt, machen. Dadurch ist fstab, die Datei, die wir ändern müssen, in Wirklichkeit in /mnt/tmp/etc/fstab. Für lilo.conf ist das anders. Wir müssen /etc/lilo.conf editieren, lilo laufen lassen und auch die neue Datei /etc/lilo.conf nach /mnt/tmp/etc/lilo.conf kopieren (um ein konsistentes System zu haben). Oder wir könnten nur /mnt/tmp/etc/lilo.conf editieren und dann lilo mit der -C option laufen lassen, wobei wir lilo erzählen, daß es eine andere Konfigurationsdatei benutzen muß. Ich wählte die zweite Methode.
- /mnt/tmp/etc/fstab
Diese Datei zeigt, wie und wo alles, was in startup mountbar ist, zu mounten ist. Wenn wir erneut starten, wollen wir root / als hda1 haben, weshalb wir die erste Zeile von /etc/fstab wie unten brauchen. Natürlich können wir nicht zwei roots mounten. Da wir auf /dev/hda2 arbeiten müssen, mounte ich es in /mnt/tmp. Der Rest bleibt unverändert.
/dev/hda1 / ext2 defaults 1 1 /dev/hda2 /mnt/tmp ext2 defaults 1 2 /dev/hda4 /home ext2 defaults 1 3 /dev/hda3 swap swap defaults 0 0 /dev/fd0 /mnt/floppy ext2 user,noauto 0 0 /dev/cdrom /mnt/cdrom iso9660 user,noauto,ro 0 0 none /proc proc defaults 0 0 |
- /mnt/tmp/etc/lilo.conf.
lilo.conf ist die Konfigurationsdatei für lilo, das kleine Programm auf dem MBR. Ich erkläre das nicht im Detail. Den Leuten, die lilo nicht benutzen, rate ich stark, dies zu ändern (lodelin ist eine Absurdität in unserem Fall und warum sollte man heutzutage noch von einer Diskette booten?). Hier erklären wir lilo nur, daß der Kernel sich jetzt auf hda1 befindet (er war vorher auf hda2) und natürlich entfernen wir alles bezüglich Windows.
boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=500 image=/boot/vmlinuz-2.0.34-1 label=linux root=/dev/hda1 read-only |
- Laß lilo laufen: /sbin/lilo -v -C /mnt/tmp/etc/lilo.conf. Das v sorgt dafür, daß lilo uns ein bißchen mehr Informationen darüber gibt, was gerade vor sich geht. Hier darf es keine Fehlermeldungen geben. Wir dürfen keinen Fehler machen, wenn wir den Rechner neu starten wollen. Wir sollten eine ähnliche Ausgabe wie diese bekommen:
LILO version 20, Copyright 1992-1997 Werner Almesberger Reading boot sector from /dev/hda Merging with /boot/boot.b Boot image: /boot/vmlinuz-2.0.34 Added linux * /boot/boot.0300 exists - no backup copy made. Writing boot sector. |
- Starte den Rechner neu. Ein paar kleine Tests (df, fdisk -l, damit wir sehen, ob das Dateisystem so ist, wie wir es spezifiziert haben).
- Entferne alles von /mnt/tmp/, was wir hierdurch erreichen: rm -rf * in das Verzeichnis /mnt/tmp. Als nächstes kopieren wir das Verzeichnis /usr/local, das: cp -a * /mnt/tmp bleibt, nach cd /usr/local. Checke, ob alles in Ordnung ist, dann lösche /usr/local: rm -fr * in dem Verzeichnis /usr/local (beachte, daß wir <<name>> nicht entfernen dürfen, das wir bald als Mountpunkt für local angeben werden!).
- Editiere wieder /etc/fstab und und ändere nur die zweite Zeile:
/dev/hda2 /usr/local ext2 defaults 1 2 |
- Starte den Rechner neu. Mach einige Tests.
Und die Operation ist beendet. Ich versichere dir, daß ich zufrieden war, besonders nachdem ich viele Programme getestet hatte und alle liefen!
Um ehrlich zu sein, ich hatte ein kleines Problem. Das obige ist nicht genau so, wie ich es gemacht habe, sondern eine Idealisierung. Der Rat, den ich dir geben kann ist, ein bißchen von dem, was du tust, zu verstehen, weil dir das erlaubt zu verstehen, warum etwas nicht läuft und Olivier Tharan riet mir den Rechner im single user mode wiederhochzufahren (Ich machte es nicht, da die einzige Dokumentation, die ich über den single user mode habe, <<schau dir die Dateien im single user boot mode an>> lautete und ich ein bißchen faul war). Vor dem ersten Neustart ist es vielleicht klüger eine gute Bootdiskette anzulegen (die vielleicht an die spezifische Situation angepaßt werden muß, und ich gebe zu, daß ich nicht genau weiß, wie das geht...)
Hier ist das Problem, das ich hatte. Vor dem ersten Neustart machte ich fast alles so wie oben beschrieben. Aber nach dem Neustart, auf der Ebene des Mountens des Dateisystems, lief ein Bündel von Fehlermeldungen mit hoher Geschwingigkeit über meinen Bildschirm. Ich schaffte es, /proc ... error ... error ... /home ... error zu lesen (ohne eine Spur davon in /var/log/messages zu finden). Dann (puh) erschien das login prompt. Ich loggte mich als root ein und sofort erschien
[root@snoopy root]$ df Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda1 1548535 506977 961525 35% / /dev/hda2 796065 506992 247947 67% /mnt/tmp |
Home war nicht gemountet. I editierte fstab, aber alles schien normal zu sein. Dann hatte ich die brilliante Idee (der doppelte Whisky?) /home zu mounten und wurde mit der Meldung <<mount: mount point /home does not exist>>. begrüßt. Da habe ich verstanden, daß ich nicht verstanden hatte, was ein Mountpunkt ist und daß ich vergessen hatte, die Option x auf cp zu stellen (Ich gebe zu, ich schäme mich ein bißchen). I definierte die Mountpunkte /home und /proc und mountete /home und /proc, um zu sehen, ob alles in Ordnung ist. Dann war die Operation wie oben beschrieben, beendet.
|
Der LinuxFocus Redaktion schreiben
© Olivier Chapuis, FDL LinuxFocus.org Einen Fehler melden oder einen Kommentar an LinuxFocus schicken |
Autoren und Übersetzer:
|
2002-02-24, generated by lfparser version 2.26