User Mode Linux: Debian Dateisystem erstellen
Wie ich schon berichtet habe, bastel ich wieder eifrig an unserem Server. Und da am gestrigen Tage Debian 4.0 veröffentlicht wurde [1], dachte ich mir, ich erstelle mir ein frisches Dateisystem, basierend auf Debian Stable 4.0 (Etch) und ein weiteres für Debian Testing (Lenny).
[1] http://www.us.debian.org/News/2007/20070408
Die Step-by-Step Schritte werden angezeigt, wenn ihr auf “Weiterlesen…” klickt.
Debian UML root_fs Erstellung:
1. Als erstes wird eine leere Datei erstellt. Ich habe in diesem Fall als Größe 4096MB gewählt. Anschliessend wird ein Dateisystem in dieser Datei erstellt (ext3).
# dd if=/dev/zero of=root_fs bs=128M count=32 &
# mkfs.ext3 root_fs
2. Dann geht es schon los mit der Installation des Systems. Hierzu wird die Datei gemounted und mittels debootstrap ein Debian System im Mountpoint installiert. Leider gibt es bis jetzt nur Skripte für woody/sarge, die ja nun beide schon veraltet sind.
# mkdir mnt
# mount -o loop root_fs mnt
# debootstrap sarge mnt/ http://ftp.de.debian.org/debian
3. Nun steht schon mal das Grundgerüst. In diesem müssen nun ein paar Feinheiten eingerichtet werden
# Die apt Sourcen nehmen wir aus dem bestehenden System
# cat /etc/apt/sources.list > mnt/etc/apt/sources.list
Dann wird per chroot in den Mount gewechselt
# chroot mnt
# mount -n proc
Das System wird mittels apt aktualisiert
# apt-get update
# apt-get dist-upgrade
Die benötigten Devices für die UML werden erstellt
# cd /dev
# for i in 0 1 2 3 4 5 6 7; do mknod ubd$i b 98 $[ $i * 16 ]; done
Die fstab muss angepasst werden
# vi /etc/fstab
<---CODE---> # /etc/fstab: static file system information. # # file system mount point type options dump pass /dev/ubd0 / ext3 noatime 0 0 /dev/ubd1 swap swap defaults 0 0 none /proc proc defaults 0 0 none /dev/pts devpts gid=5,mode=620 0 0 <---CODE--->
Außerdem sollte der Hostname und die Netzwerkeinstellungen geändert werden
# vi /etc/hostname
# vi /etc/network/interfaces
<---CODE--->
auto lo
iface lo inet loopback# To use dhcp:
#
# auto eth0
# iface eth0 inet dhcp
# For a static address:auto eth0
iface eth0 inet static
address xxx.xxx.xxx.xxx
network xxx.xxx.xxx.xxx
netmask 255.255.255.xxx
broadcast xxx.xxx.xxx.xxx
gateway xxx.xxx.xxx.xxx
<---CODE--->
In der inittab muss bezüglich der seriellen Zugänge folgendes geändert werden
# vi /etc/inittab
<---CUT---> # What to do when CTRL-ALT-DEL is pressed. #ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now ca:12345:ctrlaltdel:/sbin/halt <---CUT---> <---CUT---> # Note that on most Debian systems tty7 is used by the X Window System, # so if you want to add more getty's go ahead but skip tty7 if you run X. # 1:2345:respawn:/sbin/getty 38400 tty0 #2:23:respawn:/sbin/getty 38400 tty2 #3:23:respawn:/sbin/getty 38400 tty3 #4:23:respawn:/sbin/getty 38400 tty4 #5:23:respawn:/sbin/getty 38400 tty5 #6:23:respawn:/sbin/getty 38400 tty6 <---CUT--->
In der securetty wird definiert, dass tty0 als “sicher” angesehen wird und man sich schliesslich auch einloggen kann.
# vi /etc/securetty
<---CUT---> # for people with serial port consoles ttyS0 tty0 <---CUT--->
Zum Schluss noch das Root-Passwort gesetzt und /proc umounten und man hat es schon geschafft.
# passwd root
# umount -l /proc
# exit
Nun sollte das root_fs mit einer Größe von 4GB und Debian Etch fertig sein. Dieses Image kann nun über den User Mode Linux gebootet werden. Jedoch braucht es noch ein SWAP Image, da wir dieses ja in der fstab angegeben haben:
# dd if=/dev/zero of=swap_fs count=2 bs=128M
Das erstellt eine 256M große Swap. Wer mehr Arbeitsspeicher als 128-256M hat, der kann auch eine noch größere Swap Datei erstellen. Das SWAP Dateisystem wird folgender maßen erstellt:
# mkswap swap_fs
Das wars schon =)
Aktuelle Kommentare