Netzwerke

Bochs stellt über einen entsprechenden Eintrag in der Konfigurationsdatei dem Gast eine NE2000-kompatible Netzwerkkarte bereit. Da Bochs dazu direkt auf das rohe Netzwerkdevice zugreift, funktioniert das nur, wenn Bochs mit Root-Rechten läuft. Bei modernen Kerneln, die die Rechte feiner abgestuft vergeben, gibt es eine Alternative (siehe Kasten "User-Zugriff auf Netzwerk-Devices").

Der Wirt kann entweder eine echte Ethernet-Karte durchreichen (ein WLAN-Anschluss reicht nicht) oder per TUN/TAP-Interface mit dem Gast kommunizieren. Die Zeile 10 in Listing 1 (auskommentiert) zeigt die entsprechende Konfiguration. Zusätzlich zum Emulator muss das Wirtsystem ebenfalls die Netzwerkschicht konfigurieren. Das Listing 2 enthält die dafür notwendigen Befehle. In ein Skript verpackt, ruft Bochs diese automatisch nach dem Einrichten des Netzwerk-Interfaces auf (Parameter script=... in Zeile 10 von Listing 1).

Listing 2

#!/bin/bash
/sbin/ifconfig $1 192.168.2.1
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i tun -j ACCEPT

User-Zugriff auf Netzwerk-Devices

Traditionell dürfen unter Linux nur solche Prozesse direkt auf Netzwerk-Devices zugreifen, die mit Root-Rechten laufen. Moderne Linux-Systeme können aber über so genannte Capabilities Rechte feiner abgestuft vergeben. Üblicherweise verwaltet der Kernel seit Version 2.6.24 diese erweiterten Dateirechte, die man in der Boot-Konfiguration oder auf der Kommandozeile mit file_caps=1 aktiviert. Zusätzlich gilt es die fraglichen Dateisysteme beim Start mit dem Flag user_xattr einzuhängen.

Zur Konfiguration der Capabilities dient das Hilfsprogramm setcap, das sich bei OpenSuse im Pakets libcap-prog findet, bei Debian in libcap2-bin. Ein Beispiel für die Rechtevergabe für Bochs zeigt Listing 3. Die ersten vier Befehle stellen sicher, dass nur Mitglieder der Gruppe bochs das Programm ausführen dürfen. Der nächste Befehl (setcap) setzt die entsprechenden Zusatzrechte, der letzte Befehl gibt sie zur Kontrolle nochmals aus.

Listing 3

# groupadd bochs
# usermod -A bochs bablokb
# chgrp bochs /usr/bin/bochs
# chmod 750 /usr/bin/bochs
# setcap cap_net_raw,cap_net_admin=eip /usr/bin/bochs
# getcap -v /usr/bin/bochs

Zugriff von Außen

Da Bochs sowohl auf optische Medien als auch das Netzwerk zugreifen kann, stellen weder die Installation eines Gast noch der Datenaustausch mit einem laufenden System ein prinzipielles Problem dar. Allerdings erweist sich die Performance nicht eben als berauschend, weswegen der Autor dieses Artikels vor gut zehn Jahren die Bochs-Tools [3] entwickelte, die den Zugriff auf die Festplattenabbilder von Bochs auch ohne den Emulator ermöglichen. Zusätzlich enthalten die Tools auch noch einen Skript-Wrapper für Bochs, um dem Emulator über Unix-konforme Kommandozeilenoptionen einen Teil der Hardware-Konfiguration – insbesondere das zu bootende Image – erst beim Start mitzugeben.

Die Bochs-Tools unterstützen nur das alte Festplattenformat von Bochs, dafür gehen die Erstellung, das Partitionieren und das Formatieren schnell von der Hand. In Listing 4 erstellt der Aufruf in der ersten Zeile eine Festplatte mit zwei Partitionen (maximal vier sind möglich). Startet ein normaler Benutzer bxtcreate, scheitert er normalerweise, da das Programm intern sfdisk verwendet, das nicht bei jeder Distribution im Standardsuchpfad liegt. Spätestens bei der Formatierung brauchen Sie dann aber sowieso Rootrechte.

Listing 4

# bxtcreate -1 200m -2 128m hda.img
# bxtmkfs -t ext2 hda.img:1
# bxtmkfs -t swap hda.img:2
# bxtmount hda.img:1 /mnt

Die Formatierung erledigen die Befehle in den Zeilen 2 und 3 von Listing 3 mit dem Befehl bxtmkfs. Die zu formatierende Partition hängen Sie durch einen Doppelpunkt getrennt an den Namen des Images an. Genauso geben Sie beim Einhängen mit bxtmount die entsprechende Partition an. Wie beim normalen Mount-Befehl funktioniert das wiederum nur als Root. Einmal eingehängt, nutzen Sie die Partition wie jede andere Festplatte.

Den Bochs-Tools sieht man ihr Alter an. So war zum Zeitpunkt ihrer Erstellung noch Lilo der Standard-Bootloader für Linux. Das bxtlilo-Kommando installierte von außen auf der virtuellen Festplatte eine funktionsfähige Lilo-Konfiguration und unterstützte dabei auch Dual-Boot-Konfigurationen mit Windows. Prinzipiell wäre hier eine Portierung auf Grub überfällig.

Das neuere Festplattenformat concat macht das Hantieren mit Bochs-Festplatten auch einfacher. Nutzen Sie pro Partition eine physische Containerdatei, hängen Sie diese einfach per Loopback-Device ein. Selbst für das klassische flat-Format ist Bxtmount nicht mehr notwendig, denn das Util-Linux-Paket enthält mittlerweile das Programm kpartx, das via kpartx -a hda.img für jede Partition auf hda.img ein eigenes Loop-Device erstellt, etwa /dev/loop0p1, /dev/loop0p2 und so fort. Nach dem Aushängen entfernt kpartx -d hda.img die Device-Mappings wieder.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Alter Simulant!
    Bochs. der Großvater unter den Emulatoren, erfreut sich bester Gesundheit: Dank regelmäßiger Vitaminspritzen nimmt es der rüstige Opa sogar noch spielend mit Windows XP auf.
  • Systememulation mit QEMU
    Haben Sie sich schon mal gewünscht, Linux im Fenster unter Linux auszuführen? Oder wie wäre es mit DOS unter Linux? QEMU ist eine Open-Source-Anwendung, die einen kompletten PC in Software emuliert.
Kommentare

Infos zur Publikation

LU 12/2014: ANONYM & SICHER

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

Nach Ubdates alles weg ...
Maria Hänel, 15.11.2014 17:23, 4 Antworten
Ich brauche dringen eure Hilfe . Ich habe am wochenende ein paar Ubdates durch mein Notebook von...
Brother Drucker MFC-7420
helmut berger, 11.11.2014 12:40, 1 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu 14.04-Nutzer...
Treiber für Drucker brother MFC-7420
helmut berger, 10.11.2014 16:05, 2 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu12.14-Nutzer u...
Can't find X includes.
Roland Welcker, 05.11.2014 14:39, 1 Antworten
Diese Meldung erhalte ich beim Versuch, kdar zu installieren. OpenSuse 12.3. Gruß an alle Linuxf...
DVDs über einen geeigneten DLNA-Server schauen
GoaSkin , 03.11.2014 17:19, 0 Antworten
Mein DVD-Player wird fast nie genutzt. Darum möchte ich ihn eigentlich gerne abbauen. Dennoch wür...