Debian remote install

Aus NoamikWiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

[Bearbeiten] Nicht benutzen, ist noch in der Entstehung

Dieser Text wird erst in ein paar Wochen fertig sein und freigestellt werden. Bitte geduldigt euch so lange. Ich hab' leider ne Menge anderer Arbeit im Moment...





[Bearbeiten] Vorbemerkung

Ich bin weit davon entfernt mich gut oder gar sehr gut mit Linux auszukennen. Gerade deshalb bemerke ich aber häufig beim Nachvollziehen von Onlinemans die Schwächen selbiger für Anfänger. Diese Beschreibung soll all jenen helfen, die diesen Weg nach mir gehen wollen. Ich bitte zu beachten, dass dies weder den optimalen Weg darstellen wird, noch sonderlich effizient sein muss. Wenn ihr diesen Text lest, habe ich es aber mit dieser Methode geschafft. Hintergrund dieser Anleitung ist folgender Artikel. Migriert wird ein Server bei Server4you (Athlon 2400+, 512MB Ram, 74GB Festplatte, SuSE9.0, Grubbootloader). Ich erwähne dies nur, weil sich daraus eventuelle Unterschiede für euren Umzug ergeben können. Statt Grub kann auch ein anderer Bootmanager installiert sein (häufig Lilo). Auf Unterschiede kann ich dann natürlich nicht aus eigener Erfahrung eingehen. Der Migrationsgrund ist die Politik von SuSE. Die libc gibt es für unseren Server nicht in der gewünschten Version. Verschiedene Versuche diese einzeln für den CS-Sourceserver zu laden waren erfolglos. Debian verwende ich verschiedentlich seit einiger Zeit und bin zu der Überzeugung gekommen, dass es auf dauer auch für unseren Gameserver die bessere Alternative darstellt.



[Bearbeiten] Vorraussetzungen

  • Rootzugriff auf den Server
  • Folgende Programme:
    • fdisk - Ein Partitionierungstool
    • mke2fs - A utility to create a new filesystem
    • chroot - Ermöglicht die Erstellung eines isolierten Dateisystems
    • debootstrap - Ermöglicht die Installation des Debians in das neue isolierte Dateisystem während SuSe noch läuft
    • rpm - Nun ja, wer SuSE nutzt, sollte rpm kennen. Die Paketverwaltung auf welcher z.B. SuSE basiert.
  • Internetanbindung des Servers
  • laufender SSH-Daemon (sonst is ja nix mit remote ;) )
  • Erfahrung mit der Shell
  • Grundkenntnisse in der Benutzung und Philosophie unixartiger Systeme
  • Willen viel zu lesen und Manualls zu wälzen.



[Bearbeiten] Verlaufsbeschreibung

Wir werden im folgenden ein kleines Basisdebian in eine Chrootumgebung installieren. Dafür werden wir eine kleine temporäre Partition brauchen. Die muss nur ca. 200 MB gross sein, je nachdem wieviel du schon vor dem ersten Reboot installieren willst. In dieser Anleitung wird die Partition ext3-partitioniert werden. Vorteilhaft wäre es das selbe Format wie für das endgültige System zu wählen. Dorthinein muss das Debootstrap unser Startdebian installieren (ich benutzte für den Install diese Version). Wer sich ausreichend auskennt, kann alle wiederbenutzbaren Configfiles schonmal ebenfalls in die neue Partition kopieren. Nun chrooten wir in unser neues Debiansystem und passen es an. Wenn alles sauber läuft und eingerichtet ist ( dns, IP, gateway, kernel-module usw. ), müssen wir noch den Remotedienst mit welchem wir den Server administrieren auch für Debian einrichten, sonst ist nach dem Reboot Ende im Gelände. Endlich muss auch noch unser eigener neuer Kernel installiert werden. Den zu vergessen wäre keine gute Idee. Wenn man sicher gestellt hat, dass alle Kernelmodule, insbesondere die der Netzwerkkarte, sauber laden, kommt die Stunde der Wahrheit. Evtl. ist jetzt der Moment noch einen Cronjob aufzusetzen, der den Server alle 20 Minuten restartet, falls man keine Möglichkeit hat den Server resetten zu lassen und seinen Bootmanager so zu konfigurieren, dass er das neue Debian nur ein einziges Mal startet, danach wieder das alte System. So verhindert man in einigen Fällen, dass man sich selbst aussperrt, falls nicht alles so klappt wie gewünscht, Geht alles klar, startet unser neues Debian und wir können uns einloggen. Nun müssen wir nur noch das neue System auf seinen eigendlichen Platz auf unserer Platte kopieren, den Bootmanager endgültig anpassen und nochmals rebooten. Nun haben wir einen eigenen Debianserver.



[Bearbeiten] Beschreibung im Detail

[Bearbeiten] Einleitung und letzte Warnung

Diese Beschreibung wird zwar Schritt-für-Schritt vorgehen, dennoch wird mitdenken verlangt. Einerseits werden nicht alle Gegebenheiten zu 100% bei euch so sein wie bei mir, andererseits müsst ihr auch manche Befehle anpassen. london149:~ # ist meine Defaultprompt. Manche Befehle verlangen kontextbedingt nach für euren Server spezifische Parameter. So wird eure Swappartition nicht unbedingt auf /dev/hda2 liegen.

Vergesst nicht, das Wechseln eines Betriebssystems auf einem ausschliesslich remote zu erreichenden Systems ist sehr krittisch. Wenn ihr euch an irgendeiner Stelle nicht sicher seid, so fragt jemanden bevor ihr herumprobiert. Viele der folgenden Dinge sind irreversibel, wenn man nicht über das nötige Know-How verfügt. Bevor ihr anfangt, findet heraus ob und wie euer Provider Möglichkeiten anbietet das System auch dann noch zu retten, wenn ihr es heillos zerschossen habt. Wenn ihr keinen physikalischen Zugriff auf den Server habt, ist jetzt der ideale Zeitpunkt für ein Backup. Eine gute Idee ist auch ein Backup des MBRs, wenn ihr den zerschiesst, habt ihr zumindest vor dem Reboot noch die Möglichkeit diesen zu restaurieren.



[Bearbeiten] Die Partitionierungsarbeiten

Zuersteinmal sollten wir alle nicht benötigten Dienste schliessen. ps aux zeigt uns alle laufenden Prozesse. Diese beenden wir entweder ordnungsgemäss, oder wenn nicht möglich mit kill. Eigendlich muss nur der SSH-Daemon weiterlaufen (uznd natürlich ein paar Systemprozesse). Je weniger läuft, desto weniger kann uns später stören.

Alle Backups gemacht? Alle Programme vorhanden? Dann kann es ja richtig losgehen.


[Bearbeiten] Wir wandeln die Swappartition in eine normale Linuxpartition

Da ich ungern an bestehenden Partitionen herummurkse, vor allem remote, entscheide ich mich dafür wie in der von mir benutzten Anleitung einfach die Swappartition zu missbrauchen. Mit london149:~ # swapoff -a schalte ich swap ab. Wer keine Swappartition hat, muss sich anderweitig eine passende Partition beschaffen. Eine Möglichkeit ist die Benutzung von resize2fs. Dies ist aber nicht Teil dieses Tutorials.

Nun ändern wir das Dateisystem der Swappartition.

london149:~ # fdisk /dev/hda
-> Command (m for help): p

Disk /dev/hda: 80.0 GB, 80060424192 bytes
255 heads, 63 sectors/track, 9733 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System /dev/hda1 1 9 72261 83 Linux /dev/hda2 10 140 1052257+ 82 Linux swap /dev/hda3 141 9732 77047740 83 Linux
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 83
Changed system type of partition 2 to 83 (Linux)

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
london149:~ #


Fertig. Die Warnung ist uns egal, sie spielt bis zum nächsten Reboot ohnehin keine Rolle und bis dahin wollen wir eh ein ganz anderes System starten.


[Bearbeiten] Ex-Swap wird nun ext3-formatiert

london149:~ # mke2fs -j /dev/hda2
mke2fs 1.34 (25-Jul-2003)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
131616 inodes, 263064 blocks
13153 blocks (5.00%) reserved for the super user
First data block=0
9 block groups
32768 blocks per group, 32768 fragments per group
14624 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376

Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 38 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
london149:~ #


Wir hätten genausogut ein anderes Dateisystem wählen können, haben wir aber nicht :)

Nun schalten wir das dir_index flag ab. Ältere Versionen von fsck, wie Woody sie benutzt verstehen dieses Flag nicht. Dies soll beim nächsten Reboot zu gar grausigsten Fehlern und Crashes führen, wie der Autor meiner englischen Anleitung zu berichten wusste. Kommt es dabei zu einem Fehler, hat man dieses Flag eh nicht, was einen nicht kümmern muss.

london149:~ # tune2fs -O ^dir_index /dev/hda2
tune2fs 1.34 (25-Jul-2003)
london149:~ #


[Bearbeiten] Wir mounten unsere neue Partition

london149:~ # mkdir -p /mnt/lfs
london149:~ # mount /dev/hda2 /mnt/lfs
london149:~ #


Fertig.



[Bearbeiten] Die Partition befüllen

Nun müssen wir die Partition mit debootstrap befüllen. Dies wird eine Weile dauern (hey, wer hat gesagt, dass das hier ne Kafferundfahrt wird ;) ).

Hierfür zb folgendes .rpm File an eine beliebige Stelle laden ( z.b /tmp/).

Dann installieren:

london149:~ #rpm -ivh /tmp/debootstrap-0.2.23-1.i386.rpm
Preparing...                ########################################### [100%]
1:debootstrap            ########################################### [100%]
london149:~ #


[Bearbeiten] Debootstrap ausführen

Der Parameter --arch gibt die Architektur an. Neben i386 existieren weitere wie: alpha, arm, hppa, i386, ia64, m68k, mips, mipsel, powerpc, s390, or sparc (Linux ist schon ne vielfältige Sache ;) ). woody ist der Name der Distribution, die wir installieren wollen. Zur Zeit sind dies noch Woody für Stable, Sarge für testing und Sid ist Unstable (als Parameter müssen die aber kleingeschrieben sein). Danach geben wir an, wohin debootstrap den Kram packen soll und als letztes kommt der Downloadserver. Nun beginnt das lustige Downloaden.

london149:~ # debootstrap --arch i386 woody /mnt/lfs http://http.us.debian.org/debian
I: Retrieving debootstrap.invalid_dists_woody_Release
I: Validating debootstrap.invalid_dists_woody_Release
I: Retrieving debootstrap.invalid_dists_woody_main_binary-i386_Packages
...
...
...
Starting system log daemon: syslogd
Warning: Fake start-stop-daemon called, doing nothing
.

I: Base system installed successfully.

(von Jacky [fabian@delm.de])

Erhaltet ihr hier eine Fehlermeldung, wie z.B.

/usr/sbin/debootstrap: line 508: ar: command not found

Dann müsst ihr "binutils" installieren (sind in yast zu finden).

(nicht mehr von Jacky)

Selbst mit meiner 100Mbit-Leitung dauerte allein der Download 1-2 Minuten. Dann beginnt das entpacken und einspielen. Aber keine Angst, geht alles automatisch. Wenn alles gut geht, sieht es aus wie oben. Bei mir war das beim ersten Mal nicht so (da wollte ich sarge). Deshalb habe ich sämtliche Daten auf /mnt/lfs nocheinmal gelöscht und nochmals von vorn angefangen, diesmal mit woody. Es scheint, als ob die Installation von sarge mit Debootstrap allgemein problematisch wäre, weswegen ich das Problem auf später verschiebe. Ich werden dann einfach versuchen mit apt upzudaten, sobald der Server steht.

Nun verschieben wir ein paar Configfiles, welche sich wohl nicht ändern dürften.

london149:~ # cp /etc/resolv.conf /mnt/lfs/etc/resolv.conf
london149:~ # cp /etc/hosts /mnt/lfs/etc/hosts
london149:~ # cp /proc/sys/kernel/hostname /mnt/lfs/etc/hostname
london149:~ #

Bei der Datei hostname zeigt sich, dass nicht unbedingt jede Datei bei SuSE da liegt, wo man sie bei Debian findet.

[Bearbeiten] In die Chrootumgebung wechseln

london149:~ # chroot /mnt/lfs/ /usr/bin/env -i HOME=/root \
> TERM=$TERM PS1='\u:\w\$ ' PATH=/bin:/usr/bin:/sbin:/usr/sbin \
> /bin/bash --login
london149:/#

Und zack, schon sind wir drinnen in unserem neuen System. Gehen wir nun daran es auf seinen Reboot vorzubereiten..


[Bearbeiten] Bootpartition vorbereiten

Nun müssen wir dem System sagen, wie wir gerne booten möchten. Dafür kreieren wir erstmal eine rudimantäre fstab-datei

london149:/# cat > /etc/fstab << "EOF"
> # filesystem   mount-point fs-type    options     dump    fsck-order
>
> /dev/hda2      /           auto       defaults    0       1
> proc           /proc       proc       defaults    0       0
> EOF
london149:/#

und mounten dann proc.

london149:/# mount -t proc proc /proc
london149:/#

[Bearbeiten] Das System einrichten

[Bearbeiten] Hostname

Als erstes testen wir, ob der Hostname stimmt (falls ihr die Datei vorhin nicht kopiert habt, könnt ihr diesen nun auch manuell mit hostname your.domain setzen).

london149:/# hostname --fqdn
london149.server4you.de
london149:/#


[Bearbeiten] Tastatur konfigurieren

Eigentlich nicht wirklich nötig, manche Programme benötigen das wohl aber. Die Fragen müsst ihr schon selbst beantworten. Als erstes geht ihr auf Select keymap from arch, dann auf die eurer Tastatur entsprechenden Felder.

london149:/# dpkg-reconfigure console-data
Looking for keymap to install:
de
Loading /etc/console/boottime.kmap.gz
london149:/#


[Bearbeiten] Netzwerkkonfiguration

Nun kommt einer der wichtigsten Abschnitte. Läuft das Netzwerk nach dem Reboot aus irgendeinem Grund nicht, haben wir vielleicht eine wunderbarlaufende Maschine, kommen aber nicht ran :) Um an die benötigten Informationen zu kommen, solltet ihr nun eine zweite Rootshell öffnen. Bei SuSE gibt euch Yast unter Netzwerkdienst/DNS- und Hostname, unter Netzwerkdienst/Hostnamen sowie unter Netzwerkgeräte/Netzwerkkarte Auskunft. Debianuser können einfach die bestehende /etc/network/interfaces auslesen.

london149:/# cat > /etc/network/interfaces << "EOF"
> # The loopback interface
> auto lo
> iface lo inet loopback
>
> #The first network card (network, broadcast and gateway are optional)
> auto eth0
> iface eth0 inet static
> address 62.75.252.149
> netmask 255.255.255.0
> network 62.75.252.0
> broadcast 62.75.252.255
> gateway 62.75.252.1
> EOF
london149:/#

Da dieser Teil sehr wichtig ist, gebe ich hier eine weitere Beispielconfig an. Diese ist nicht von mir.

unf:/# cat > /etc/network/interfaces << "EOF"
> # The loopback interface
> auto lo
> iface lo inet loopback
>
> # The first network card (network, broadcast, and gateway are optional)
> auto eth0
> iface eth0 inet static
>  address 207.44.214.88
>  netmask 255.255.254.0
>  network 207.44.214.0
>  broadcast 207.44.215.255
>  gateway 207.44.214.1
> EOF

Diese Informationen kann man aber auch mit den folgenden Commandos herausfinden: address/netmask/network/broadcast/gateway. Der Befehl heisst ifconfig. Schon die zweite Zeile enthält fast alle gesuchten Informationen.

london149:~ # ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0B:6A:56:A5:88
          inet addr:62.75.252.149  Bcast:62.75.252.255  Mask:255.255.255.0
          inet6 addr: fe80::20b:6aff:fe56:a588/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          ...
london149:~ #

Um das Netzwerk herauszufinden, tippen wir:

london149:/# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
62.75.252.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         62.75.252.1     0.0.0.0         UG    0      0        0 eth0
london149:/#

eth0 zeigt uns die network - Addresse an (unsere 1. Netzwerkkarte, evtl. hat ja einer zwei oder mehr).


[Bearbeiten] Weitere Basiseinstellungen

Nun müssen noch einige weitere Basiseinstellungen getroffen werden. Das Script fragt als erstes, ob die Hardwarezeituhr GMT entspricht. Dazu zeigt er die von der Hardware ausgegebene Uhrzeit an. Vergleicht einfach mit eurer eigenen Uhr. Ich sitze in Berlin, bin GMT +1 und tatsächlich, die Serveruhr geht eine Stunde vor. Ich stelle also GMT sowie Berlin als Zeitzone ein.

london149:/# /usr/sbin/base-config

Dann activieren wir MD5-Passwörter und Shadow-Passwörter. Wir legen ein Rootpasswort an und auch gleich noch einen User samt Passwort. Die Frage nach PPP-Einrichtung habe ich verneint. Eine Zusammenfassung der bis jetzigen Dialoge und der noch folgenden kopiere ich einfach ein. Leider konnte und wollte ich nicht alle Dialoge selbst mitschreiben:

Timezone - Look at displayed time, and see if it looks like GMT.  Otherwise say no.
               You can either figure out the timezone, or just give your own.  You can adjust the time
               later within linux if necessary.  Or maybe file a ticket to get them to set the bios properly.
       
       Shall I enable md5 passwords? "Yes"
       Shall I enable shadow passwords? "Yes"
       Enter/Verify Root password - Make it secure.  At least one of each of the following:
               lowercase letter, uppercase letter, number, and symbol.  Minimum of 8 chars to be safe.
               Remember, you shouldn't be using your root login that much anyway.
       Shall I create a normal user account now? "Yes" (So we can LOG IN!)
               Make an admin user, either call it admin, or use your own login.  This will likely be 
               your primary administrative account, and you can give it access to do most things
               root can (by using groups properly, etc).  I'd recommend using a password following the
               same guidelines as for root.  Although I tend to use something slightly easier to remember.
       Do you want to use a PPP connection to install the system? "No"
       Choose the method apt should use to access the Debian archive: "http"
       Use non-US software? "Yes"
       Use non-free software? "Yes"
       Use contrib software? "Yes"
       Select a country: "United States"
       Choose the Debian mirror to use: "mirrors.kernel.org" (Pick any mirror other then the *debian.org ones, 
               as they will be under the most load.  I'd suggest going with some of the more well known sites
               like kernel.org, or one of the *.edu hosts) Don't worry too much about this step, as we will 
               be using netselect to find a better mirror next. But we have to install it first! :)
       Enter http proxy information, or leave blank for none: Leave blank
       
       Then it will attempt to download the package listings.  If it fails, it will let you choose a 
       different mirror. ;)  The next few questions are not needed as we will be making our own sources
       file in a minute.
       
       Add another apt source? "No"
       Use security updates from security.debian.org? "No" (you could do this, but netselect will overwrite it)
       Run tasksel? "No" (You can run this after you get everything running if you want)
       Run dselect? "No"
       Do you want to erase any previously downloaded .deb files? [Y/n] "y"
       
       Exim Config - 
       Depends on your situation, make sure you read the answers carefully.  You can reconfigure this later
       by rerunning base-config.  This can vary widely depending on your needs.  The defaults should be fine for now.
       
       You must choose one of the options below:
       ... ... ...
       Enter value (default=`1', `x' to restart): [Enter]
       
       What is the `visible' mail name of your system? This will appear on
       From: lines of outgoing messages.
       Enter value (default=`unf', `x' to restart): [Enter]
       
       Does this system have any other names which may appear on incoming
       mail messages, apart from the visible name above (unf) and
       localhost?
       ... ... ...
       Enter value (default=`none', `x' to restart): [Enter]
       
       If there are any, enter them here, separated with spaces or commas. You
       can use wildcards. If there are none, say `none'. If you want to relay
       mail for all domains that specify you as an MX, then say `mx'
       Enter value (default=`none', `x' to restart): [Enter]
       
       Are there any networks of local machines you want to relay mail for?
       ... ... ...
       Enter value (default=`none', `x' to restart): [Enter]
       
       Which user account(s) should system administrator mail go to ?
       Enter one or more usernames separated by spaces or commas .  Enter
       `none' if you want to leave this mail in `root's mailbox - NB this
       is strongly discouraged.  Also, note that usernames should be lowercase!
       Enter value (`x' to restart): admin     (Or whichever non-root user was the one you made)
       
       Is this OK ?  Hit Return or type `y' to confirm it and install,
       or `n' to make changes (in which case we'll go round again, giving you
       your previous answers as defaults.     (Y/n) [Enter]


[Bearbeiten] Apt optimieren

Nun werden wir einen etwas besseren Mirror aussuchen. Zum Glück gibt es dafür ein Script Namens netselect. Diese benötigt zusätzlich wget (ein Tool, auf welches ich eh nicht verzichten kann).

london149:/# apt-get install netselect wget

Und schon können wir das Script starten (evtl. woody durch eure Distri ersetzen).

london149:/# cd /etc/apt; netselect-apt woody

Sicherheitsupdates wollen wir ja auch haben:

london149:/etc/apt# echo "deb http://security.debian.org stable/updates main contrib non-free" \
> >> /etc/apt/sources.list

Es soll auch für sarge welche geben, für sid aber nie. Da gibs dann gleich nen neues Package :) Nachdem wir nun eine neue Sourcenliste haben, wollen wir auch unsere Paketliste updaten:

london149:/etc/apt# apt-get update;apt-get dist-upgrade


[Bearbeiten] SSH einrichten

Nachdem apt nun auf dem neuesten Stand ist, können wir einen SSH-Server aufsetzen, damit wir nach dem Reboot überhaupt auf unser System kommen.

london149:/etc/apt# apt-get install ssh

Die folgenden Fragen beantworten wir alle mit "YES".


[Bearbeiten] Locales anpassen

Nun müssen wir noch die Zeichensätze installieren, welche wir verwenden wollen.

london149:/etc/apt# apt-get install locales

Ich habe sämtlich de_DE* und fr_FR* installiert. Ihr müsst natürlich selbst wissen, was ihr braucht. Als Standart habe ich de_DE@euro genommen. Ich seid natürlich frei einen anderen zu wählen. Wenn ihr nicht wisst was das soll, wählt einfach C. Für dpkg einfach nochmal das Gleiche.

london149:/etc/apt# dpkg-reconfigure locales


[Bearbeiten] Kernel installieren

Nun gehts an's Eingemachte. Erstmal lassen wir uns eine Liste der verfügbaren Kernels anzeigen:

london149:/etc/apt# apt-cache search kernel-image

Nun wählen wir einen passenden aus. Einfach den auf unser System passenden mit der höchsten Versionsnummer. SMP-Kernel sind für Multiprozessorsysteme, PCMCIA brauch man nur für Notebooks. Ich wähle kernel-image-2.4.18-1-686 - Linux kernel image 2.4.18 on PPro/Celeron/PII/PIII/PIV.

london149:/etc/apt# apt-get install kernel-image-2.4.18-1-686

Es folgen ein paar Ausgaben die wir einfach ignorieren.

Do you want to stop now? [Y/n] n

Falls er nach dem Installieren eines Links fragt, kann man ja sagen, spielt aber keine Rolle. Danach aber wirds wichtig. Falls er danach fragt nun LILO laufen zu lassen, NEIN!!! Innerhalb des chroots wird dies nicht funktionieren.

Do you wish to set up Linux to boot from the hard disk? [Yes] No


[Bearbeiten] Module prüfen

Nun ist es an der Zeit zu prüfen, ob die wichtigen Module, insbesondere die des Netzwerks, laufen. Dafür benötigen wir das Tool discover:

london149:/etc/apt# apt-get install discover

Evtl. mault der Installer über ein paar Pfade, dies soll uns aber nicht stören. Nun gehts ans testen. Achtet auf die Netzwerkkarte. Vergleicht das Ergebnis von discover mit der Ausgabe von lsmod auf einer normalen Rootshell.

london149:/etc/apt# discover --enable-all --format="%m on %d - %V %M\n" bridge ide scsi usb ethernet
 on  - Silicon Integrated Systems (SiS) SG85C503
 on  - Silicon Integrated Systems (SiS) 5513 [IDE]
usb-ohci on  - Silicon Integrated Systems (SiS) 7001
usb-ohci on  - Silicon Integrated Systems (SiS) 7001
sis900 on  - Silicon Integrated Systems (SiS) SiS900 10/100 Ethernet
london149:/etc/apt#

Meine Netzwerkkarte scheint erkannt worden zu sein wie es sich gehört (sis900 hatte ich schon früher notiert, als ich mit yast hantiert habe :) ). Solltet ihr das Pech haben, dass eure Netzwerkkarte nicht erkannt wird, gibt es hier Hilfe.

Nun, nur um sicherzugehen noch:

london149:/etc/apt# cd /dev; ./MAKEDEV generic
london149:/dev#

Nicht verzagen, das dauert einen kleinen Moment. Geduld ist bei Computern wichtig ;)

Und schon sind wir mit der chrootumgebung fertig und können sie verlassen.

london149:/dev# logout
london149:~ #



[Bearbeiten] Für den Reboot fertig machen

Tief durchatmen, jetzt wirds ernst.


[Bearbeiten] Kernel für Reboot vorbereiten

Kernel und initrd-image müssen nun noch in die Bootpartition kopiert werden.

london149:~ # cp /mnt/lfs/boot/vmlinuz-* /boot
london149:~ # cp /mnt/lfs/boot/initrd.img-* /boot


[Bearbeiten] Bootloader vorbereiten

Nun kommt es darauf an, ob ihr grub oder lilo verwendet. Wenn ihr einen ganz anderen Bootloader verwendet, müsst ihr den nun schon selbst einstellen.

Lilo:

  • fehlt noch ........................


Grub: (von Jacky [fabian@delm.de])

Ich hatte mein Grub im MBR und seine Daten lagen bei SuSE mit drinne.

Diese Änderungen finden nun noch auf der alten SuSE-Partition statt, um Debian erst mal zu starten. Ihr öffnet die /boot/grub/menu.lst, dort könnte ihr größtenteils den Eintrag für das SuSE kopieren und für das Debian benutzen. Ich hatte da vorher das stehen:

title Linux
   kernel (hd1,4)/boot/vmlinuz root=/dev/hdd5 vga=0x314 splash=silent desktop hda=ide-scsi hdalun=0 hdc=ide-scs hdclun=0 showopts
   initrd (hd1,4)/boot/initrd

Wobei hd1,4 bzw hdd5 (ist das selbe) die SuSE-Partition war. So, nun muss man als erstes noch die symlinks machen für vmlinuz und initrd. Schau mal in /boot/grub was dort drinne ist. Ich hab es nicht mit den Symlinks gemacht und hab das dann so abgeändert:

title Debian
   kernel (hd1,5)/boot/vmlinuz-2.6.8-2-386root=/dev/hdd6 vga=0x314 splash=silent desktop hda=ide-scsi hdalun=0 hdc=ide-scs hdclun=0 showopts
   initrd (hd1,5)/boot/initrd.img-2.6.8-2-386

Wobei hier hd1,5 bzw hdd6 meiner ehemaligen Swap-Partition entspricht.

Nun wäre Grub einsatzbereit.

Denkt dran, wenn ihr nachher unter Debian seit und es auf die SuSE Partition spiegeln wollte müsst ihr den alten grub-ordner (auf der SuSE-Partition) auf die Debian Partition kopieren! Und auch dran denken, dass das Debian dann auf einer anderen Partition liegt, also die menu.lst wieder anpassen.

[Bearbeiten] Letzte Handschläge

london149:/boot/grub # touch /mnt/lfs/fastboot
london149:/boot/grub # umount /mnt/lfs/proc/
london149:/boot/grub # umount /mnt/lfs



[Bearbeiten] Der erste Reboot

Nun wird es richtig ernst. Bis jetzt ist es noch möglich umzukeheren und alles rückgängig zu machen. Wer ab hier weitermacht, überschreitet nun den "Point-of-no-return". Ab jetzt heisst es alles oder nichts.

Und reboot:

london149:~ # shutdown -r now

Broadcast message from root (pts/0) (Wed Dec 29 15:04:09 2004):

The system is going down for reboot NOW!
london149:~ #

Binnen kurzem werden wir nun wissen, ob unsere Arbeit erfolgeich war. Auch wenn man sich vor Aufregung kaum halten kann, heisst es nun ruhig bleiben, in sich gehen und ein paar Minuten abwarten. Ich tippe mir in der Zeit hier gerade die Finger wund. Ihr könnt euch ja erstmal einen Kaffee oder Tee machen. Danach könnt ihr versuchen euch einzuloggen. Solltet ihr einen Cronjob für reboot aufgesetzt haben, müsst ihr damit natürlich vor dessen Auslösung fertig sein.

...

...

WOOOOOHOOOOOOOOOOOOOOOOOOOOO. Es klappt. Ich bin auf meinem neuen Debiansystem eingeloggt. Ab jetzt wirds wieder ungefährlicher. Gibt aber noch ne Menge zu tun.


[Bearbeiten] Bootpartition neu mounten

Dieser Schritt ist nur für jene Leser mit einer seperaten Bootpartition!

Nun machen wir uns daran unsere Bootpartition wiederzubeleben. Wer mag, kann sie vorher auch noch schnell ext3-formatieren. Dabei gehen zwar alle Daten verloren, die wichtigen davon befinden sich ja aber in unserem jetzigen Bootverzeichnis. Ich habe dies allerdings nicht so getan. Wer nämlich wie ich noch Daten aus seinem Bootverzeichnis retten will, kann das formatieren erstmal auslassen, nur so mounten, die Daten sichern, wieder unmounten und an dieser Stelle neu beginnen. Dies ist vor allem bei Grubusern wie mir wichtig, da sich die grubconfig noch nicht im Bootverzeichniss befindet. Also, erst mounten, grubconfig sichern und dann hier wieder weitermachen.

london149:/# mke2fs -j /dev/hda1

Nun erstellen wir unser neues-altes Bootverzeichnis (ich nenne es boot2),

london149:/# mkdir /boot2
london149:/#

und mounten unsere Bootpartition dorthinein.

london149:/# mount /dev/hda1 /boot2
london149:/#

Wer ordentlich aufräumen will, kann nun alle Dateien und Ordner in /boot2 löschen (so er nicht formatiert hat) und von /boot neu dorthinkopieren. Die Dateien kopiere ich sicherheitshalber aber neu, da diese ja eben in dieser Konstellation erfolgreich gebootet haben.

london149:/# cp -r /boot/* /boot2
london149:/boot#

Nun noch die Bootpartition wieder unmounten,

london149:/boot# umount /boot2

und den Mountpoint entfernen.

london149:/boot# rmdir /boot2

Als nächstes leeren wir /boot, um Platz für "das wahre System" zu haben.

london149:/boot# cd ..
london149:/# rm -rf /boot/*
london149:/#

Es ist an der Zeit unsere fstab-Datei anzupassen.

london149:/# cat >> /etc/fstab << "EOF"
> /dev/hda1      /boot       ext3       defaults    1       2
> EOF
london149:/#

Bevor wir nachher ein weiteres Mal neu starten, sollten wir testen, ob unsere fstab auch funktioniert.

london149:/# mount -a
london149:/#

Das sollte fehlerfrei ablaufen. Treten jetzt Fehler auf, kann man noch was machen. Beim reboot wären Fehler unschön ;)



[Bearbeiten] System auf die Originalpartition zurückverlagern

Nun müssen wir leider unsere Originalpartition formatieren. Ich hoffe, ihr habt an die Backups gedacht.

london149:/# mke2fs -j /dev/hda3



[Bearbeiten] Edit: Leider komme ich einfach nicht dazu diese Anleitung zu beenden. Wer sie trotzdem nutzen möchte, kann an dieser Stelle einfach alles folgende ignorieren und dahin zurückspringen, wo die Swappartition formatiert wurde. Das Gleiche macht man nun nochmal, dieses Mal allerdings mit der Datenpartition. Dieser Weg ist zwar länger, funktioniert aber zuverlässig. Nach dem Neubooten in das Debainsystem ist man dann fertig. Lediglich die Swappartition sollte man dann noch wieder aktivieren.

Dann können wir anfangen die Daten auf die richtige Partition zu schieben. Einfaches mounten und kopieren geht leider nicht. Dieser Vorgang wird 10-20 Minuten dauern. Zeit nen Kaffee zu trinken :)

london149:/# dd if=/dev/hda2 of=/dev/hda3 bs=4096

Die Blockgrösse von 1024 ist gut, allerdings bei meiner Partitionsgrösse nicht ausreichend, weswegen ich 4096 nehme, könnt ihr aber auch ändern. Wenn die Verbindung währenddessen abbrechen sollte, kann man einfach dd neu ausführen, es macht dann an der Stelle weiter. Sollte (On work.......................................)

london149:/# e2fsck -f -y /dev/hda3
e2fsck 1.27 (8-Mar-2002)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/hda3: 13727/131616 files (0.6% non-contiguous), 48965/263064 blocks
london149:/# resize2fs -p /dev/hda3




london149:~# umount /test/


london149:~# shutdown -r now