Home > Technik > User Mode Linux: Debian Dateisystem erstellen

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 =)

Categories: Technik Tags:
  1. No comments yet.
  1. No trackbacks yet.