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
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ä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.
  • Die Puppe in der Puppe
    Im Möbelhaus gaukeln künstliche Bücherreihen belesene Behaglichkeit vor: Das ist Virtualisierung. Emulatoren bauen dagegen gleich ganze Häuserfassaden nach, um eine lebende Stadt zu suggerieren.
Kommentare

Infos zur Publikation

LU 12/2016: Neue Desktops

Digitale Ausgabe: Preis € 5,99
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

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

Aktuelle Fragen

Brother Drucker DCP-J4120
Achim Zerrer, 09.12.2016 18:08, 0 Antworten
Hallo, ich wollte unter Leap 42.1 den Brother Drucker installieren und dazu das PPD- Datei vom do...
Drucker Epson XP-332 unter ubuntu 14.04 einrichten
Andrea Wagenblast, 30.11.2016 22:07, 2 Antworten
Hallo, habe vergeblich versucht mein Multifunktionsgerät Epson XP-332 als neuen Drucker unter...
Apricity Gnome unter Win 10 via VirtualBox
André Driesel, 30.11.2016 06:28, 2 Antworten
Halo Leute, ich versuche hier schon seit mehreren Tagen Apricity OS Gnome via VirtualBox zum l...
EYE of Gnome
FRank Schubert, 15.11.2016 20:06, 2 Antworten
Hallo, EOG öffnet Fotos nur in der Größenordnung 4000 × 3000 Pixel. Größere Fotos werden nic...
Kamera mit Notebook koppeln
Karl Spiegel, 12.11.2016 15:02, 2 Antworten
Hi, Fotografen ich werde eine SONY alpha 77ii bekommen, und möchte die LifeView-Möglichkeit nu...