Dualboot-Windows virtualisieren
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 22.04 Jammy Jellyfish
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Hinweis:
Die verwendete Windows 10 Version ist ein upgrade mittels Win10_1709_German_x64.iso
aus Win7 OEM. Nach Umzug auf eine andere SSD gelingt der Start z.Z. nur mittels sgd.
Hinweise zum Test mit Focal Fossa in der Diskussion
Hinweise zum Test mit Jammy Jellyfish s. Diskussion
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Dieser Artikel beschreibt die Möglichkeit, ein bereits auf der Festplatte installiertes (und im Dualboot auswählbares) Windows in einem Fenster von VirtualBox in Ubuntu starten und nutzen zu können. Dadurch hat man dieselben installierten Programme, Daten und Einstellungen in beiden Varianten zur Verfügung, und kann unter Ubuntu die parallel installierte Windows-Umgebung aufrufen.
Auch andere Parallelsysteme, wie z.B. ein weiteres parallel installiertes Ubuntu, können auf diese Weise in VirtualBox genutzt werden. Siehe dazu die Hinweise unter Andere Parallelsysteme.
Sicherheitswarnung¶
Achtung!
Es wird eine Sicherungskopie des zu virtualisierenden Systems empfohlen.
Es ist ein Fall bekannt, in dem VirtualBox und/oder Ubuntu abgestürzt sind, während ein "virtualisiertes" Windows aktiv auf die Festplatte zugriff. Dies führte zur irreparablen Beschädigung des Windows-Systems.
Solange das Parallelsystem in VirtualBox läuft, darf von Ubuntu aus kein schreibender Zugriff auf dessen Partition(en) erfolgen. Dies kann zu Datenkorruption führen. Eine Möglichkeit zur Absicherung ist es, in der Datei /etc/fstab den Zugriff von Ubuntu auf die Gastsystem-Partitionen auf Nur-Lesen-Rechte zu begrenzen. Dazu editiert man /etc/fstab in einem Editor mit Root-Rechten[4]
Für jede Windows-Systempartition ist folgender Eintrag hinzuzufügen (Als Beispiel mit sda1 (System-reserviert) und sda2 (System)):
/dev/sda1 /mnt/boot ntfs ro,nosuid,nodev,nofail,x-gvfs-show 0 0 /dev/sda2 /mnt/system ntfs ro,nosuid,nodev,nofail,x-gvfs-show 0 0
Für Dateiaustausch kann die Funktion "Gemeinsame Ordner" von VirtualBox genutzt werden.
Windows vorbereiten¶
Hinweis:
Dieser Artikel wurde mit Windows 7 64-Bit, Windows 8.1 und Windows 10 getestet.
Für Windows 8 und Windows 10 kann die Einschränkung gelten, dass es im VM-Betrieb nicht mit dem Internet verbunden werden darf und mindestens einmal im Monat im normalen Dualboot gestartet werden muss. Dies ist der Fall, wenn es eine Datei /sys/firmware/acpi/tables/MSDM gibt. Erklärung siehe Angleichung Virtuell an Physikalisch.
Treibervorbereitung: Windows 7¶
Im Ordner C:\WINDOWS\system32\drivers müssen folgende vier Dateien zu finden sein:
atapi.sys
intelide.sys
pciide.sys
pciidex.sys
Fehlen sie dort, müssen sie gesucht und nach C:\WINDOWS\system32\drivers kopiert werden. Die Dateien liegen in einem Unterordner von C:\WINDOWS\system32\DriverStore\FileRepository, notfalls mit Hilfe der Suchfunktion des Explorers aufspüren. (In der Regel liegen bei Windows 7 die benötigten Treiber bereits im oben genannten Verzeichnis).
Das Skript MergeIDE.reg trägt die obigen Treiber in der Windows-Registry ein.
Eine Sicherungskopie von der Windows-Registry-Datei C:\WINDOWS\system32\config\SYSTEM machen mittels "Ausführen... →
regedit
→ Datei → Exportieren".MergeIDE.zip 🇬🇧⮷ herunterladen, entpacken und MergeIDE.reg per Doppelklick ausführen.
Experten-Info:
Das Skript MergeIDE.reg stammt von Microsoft 🇩🇪 und wurde ursprünglich für XP entwickelt. Es hat sich als hilfreich und kompatibel für Windows 7 erwiesen. Ob es für Windows 8 oder 10 benötigt wird, ist noch ungeprüft. Die Batch-Datei MergeIDE.bat stammt vom c't-Magazin 🇩🇪 und ist unbrauchbar.
Windows Produkt-Aktivierung¶
Windows verlangt bei erheblicher Veränderung seiner Hardwareumgebung eine neue Produktaktivierung bei Microsoft per Internet oder Telefon.
Der Betrieb in VirtualBox bedeutet für Windows eine solche erhebliche Veränderung.
Bei abwechselndem Betrieb in VirtualBox oder im Dualboot-Start würde das bedeuten, dass bei jedem Wechsel eine neue Produktaktivierung notwendig wird. Dies wird durch die Angleichung der virtuellen Hardware an die physikalische Hardware zu vermeiden gesucht.
Windows 7 hat sich regelmäßig erfolgreich virtualisieren lassen und konnte uneingeschränkt in VirtualBox genutzt werden.
Windows 8 und 10 kann unter Umständen nur ohne Internetverbindung virtualisiert werden, ansonsten wird innerhalb von VirtualBox die Verwendung blockiert, und es wechselt in den Status "Nicht aktiviert". Physikalisch lässt es sich auch dann problemlos wieder starten und mit Internet nutzen, der Status wird automatisch wieder auf "Aktiviert" gesetzt. Erklärung siehe Angleichung Virtuell an Physikalisch.
Eine Gewähr dafür, dass keine neue Produktaktivierung fällig wird, kann natürlich trotzdem nicht gegeben werden.
Product Key¶
Mit dem Programm pkeyui 🇩🇪⮷ lässt sich der Product Key von Windows anzeigen. Es ist sinnvoll, diesen Key auf einem Zettel zu notieren.
Daten zur Produktaktivierung sichern¶
Windows 7, 8.0 : Mit Hilfe des Programms Advanced Tokens Manager 🇩🇪⮷ ein Backup der Aktivierungsdaten machen.
Windows 8.1: Für Windows 8.1 kann bisher nur eine telefonische Aktivierung gesichert und wiederhergestellt werden, mit Hilfe des Advanced Tokens Manager 🇩🇪⮷.
Windows 10: Vermutlich gilt dasselbe wie für Windows 8.1: Nur eine telefonische Aktivierung kann gesichert werden.
Produktaktivierung wiederherstellen¶
Sollte es durch den Betrieb von Windows in VirtualBox dazu kommen, dass eine neue Produktaktivierung fällig wird, so kann man mit Hilfe dieser Dateien zumindest für den physikalischen Betrieb den aktivierten Zustand wiederherstellen. In diesem Fall wird so vorgegangen:
Windows 7, 8.0: Mit Hilfe des Programms "Advanced Tokens Manager" den aktivierten Zustand wiederherstellen.
8.1, 10: Wiederherstellung mit "Advanced Tokens Manager", falls telefonisch aktiviert. Ansonsten nur Wiederherstellung mit Hilfe des Supports von Microsoft, ggf. automatisch online, schlimmstenfalls telefonisch.
Windows 8 / 10: Produktaktivierung hinauszögern¶
OEM-Versionen von Windows 8 und 10 können in VirtualBox ohne Internetverbindung einige Tage genutzt werden, bevor sie in den Status "Nicht aktiviert" wechseln. Durch einen physikalischen Start wird der Status "Aktiviert" wieder hergestellt. Erklärung siehe Angleichung Virtuell an Physikalisch. Die Frist zur ungestörten Nutzung in der VM kann auf 30 Tage verlängert werden, wenn in der Eingabeaufforderung von Windows diese Befehle ausgeführt werden:
slmgr /sai 43200 slmgr /sri 43200
EFI vorbereiten¶
Neue Computer werden statt mit dem klassischen BIOS oft mit dem neueren (U)EFI gestartet. Ob der eigene Rechner per BIOS oder per EFI startet kann mit diesem Befehl geprüft werden:
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
Startet der Computer mit EFI, muss "Secure Boot" und "Schnellstart" deaktiviert werden:
Secure Boot deaktivieren¶
Das Abschalten von Secure Boot wird beschrieben im Artikel EFI Grundlagen.
Schnellstart deaktivieren¶
Windows 8, 10: Schnellstart bei Windows 8 deaktivieren 🇩🇪.
Windows 7:
Eingabeaufforderung → "Als Admin ausführen".
powercfg /h off
eingeben.
Im EFI-BIOS fast-boot auf [ "Disabled" ] setzen.
Aktuelle VirtualBox-Version installieren¶
Die in den Paketquellen enthaltene Version von VirtualBox ist oft nicht auf dem neuesten Stand. Einige der verwendeten VirtualBox-Funktionen sind noch experimentell. Deshalb wird empfohlen, stets die aktuellste Version von VirtualBox zu verwenden, mindestens aber Version 4.2. Möglichkeiten der Installation aus Fremdquellen (Oracle) sind unter VirtualBox/Installation beschrieben.
Experten-Info:
VirtualBox befindet sich in steter Weiterentwicklung. Einige der in diesem Artikel verwendeten Funktionen sind noch nicht Teil des offiziellen Supports, sondern befinden sich in Erprobungsphase. Bei Problemen mit solchen Funktionen besteht kein Anspruch auf Support von Oracle 🇬🇧; Oracle ist aber selbst an Rückmeldung und Support interessiert.
Virtuelle Maschine erstellen¶
VirtualBox starten [5]
Neue virtuelle Maschine erstellen: "Neu → Weiter".
Name "WindowsRAW" (andernfalls Skripte und Terminalbefehle anpassen) und Art des Betriebssystems einstellen "→ Weiter".
Arbeitsspeicher zuweisen "→ Weiter". (Der physikalische Speicher muss für beide Systeme aufgeteilt werden, für beide muss genug zur Verfügung stehen).
Kein Festplattenmedium wählen.
"Virtuelle Maschine erzeugen → Weiter". Die virtuelle Maschine wird nun erstellt.
Auf "Ändern" klicken, um weitere Einstellungen vorzunehmen.
Unter "System" "IO-APIC" aktivieren (Häkchen setzen).
EFI: Wenn das System mit (U)EFI statt mit BIOS startet, muss unter "System" "EFI aktivieren" aktiviert werden (Häkchen setzen)
Unter "Ändern → Netzwerk → Erweitert" die Option "Kabel verbunden" abschalten. (Häkchen entfernen).
Sinnvoll ist es, den virtuellen Grafikkartenspeicher unter "Anzeige" zu erhöhen.
Experten-Info:
Im Ordner ~/VirtualBox VMs liegen die virtuellen Maschinen von VirtualBox. Es ist ein neues Unterverzeichnis WindowsRAW entstanden. Darin werden die zugehörigen Dateien versammelt. Neu entstanden ist WindowsRAW.vbox, das die Konfiguration der VM enthält.
Festplattenzugriff vorbereiten¶
Windows-Partitionen ermitteln¶
Achtung!
Vor Beginn bitte sicherstellen, dass die Festplatte oder Partition auf der sich Windows befindet nicht im System eingehängt ist.
Es wird ermittelt, auf welchen Festplatten und Partitionen Windows installiert ist: [3]
sudo parted -l
Die gefundenen Festplatten und ihre Partitionen werden ausgegeben. Dies kann bspw. so aussehen:
Disk /dev/sda: 1000GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Number Start End Size File system Name Flags 1 1049kB 420MB 419MB ntfs Basic data partition hidden, diag 2 420MB 735MB 315MB fat32 EFI system partition boot 3 735MB 869MB 134MB Microsoft reserved partition msftres 4 869MB 299GB 298GB ntfs Basic data partition 6 299GB 299GB 400MB ext4 7 299GB 301GB 1400MB linux-swap(v1) 8 301GB 481GB 180GB ext4 9 481GB 980GB 500GB ext4 5 980GB 1000GB 19.9GB ntfs Basic data partition hidden, diag
Windows befindet sich in diesem Beispiel auf der Festplatte /dev/sda.
Die Windows belegt in diesem Beispiel diese Festplatten-Partitionen:
Nummer 1: "Basic data partition" (ntfs). Entspricht in diesem Beispiel /dev/sda1
Nummer 3: "Microsoft reserved partition" (ntfs). Entspricht in diesem Beispiel /dev/sda3
Nummer 4: "Basic data partition" (ntfs). Entspricht in diesem Beispiel /dev/sda4
Nummer 5: "Basic data partition" (ntfs). Entspricht in diesem Beispiel devsda5
Die EFI-Bootpartition trägt hier die Nummer 2. Entspricht in diesem Beispiel /dev/sda2
Die Partition 6,7,8 und 9 (ext4 und swap) sind in diesem Beispiel Ubuntu-Partitionen
Bootloader erzeugen¶
Der Bootloader mbr 🇬🇧 dient als Alternative zu GRUB 2, um damit Windows in VirtualBox booten zu können. [1]
mbr (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install mbr
Oder mit apturl installieren, Link: apt://mbr
Mit dem Befehl
install-mbr --force ~/VirtualBox\ VMs/WindowsRAW/WindowsRAW.mbr
wird eine Bootloader-Datei WindowsRAW.mbr erzeugt: [3], die noch bearbeitet werden muß
Benötigt wird der Wert von
disk identifier
der Platte, auf der sich Windows befindet. Er wird angezeigt beim Aufruf von:sudo fdisk -l /dev/sdX
# X entsprechendIn die .mbr Datei wird mit folgendem Befehl der Wert von
disk identifier
(in der deutschen VersionMedienkennung
) eingetragen. DabeiFESTPLATTENIDENTIFIKATION
durch den entsprechenden Wert ersetzen:
echo FESTPLATTENIDENTIFIKATION | sed -e 's/0x\(..\)\(..\)\(..\)\(..\)/0x\4\3\2\1/' | xxd -r | dd of=~/VirtualBox\ VMs/WindowsRAW/WindowsRAW.mbr bs=1 seek=440 conv=notrunc
Der Wert unterscheidet sich je nach verwendetem Partitionierungsschema MBR/MPT bzw. GPT
MBR/MPT → Beispiel
Festplattenbezeichnungstyp: dos Festplattenbezeichner: 0x5b1e1ffa
GPT → Beispiel
Festplattenbezeichnungstyp: gpt Festplattenbezeichner: A337909A-F835-4869-A3F3-4B8848F76044
Im ersten Fall ist FESTPLATTENIDENTIFIKATION
== 0x5b1e1ffa; im zweiten Fall wird für FESTPLATTENIDENTIFIKATION
== 0xA337909A-F835-4869-A3F3-4B8848F76044 gesetzt, also ein "0x" vorangestellt. Beide Werte sind beispielhaft und durch die entsprechenden Werte des eigenen Systems zu ersetzen.
Verweis auf Festplatte erzeugen¶
Tatsächlich notwendig sind nur die elementaren Systempartition(en) des zu virtualisierenden Parallelsystems. Bei einem EFI-System muss auch die EFI-Partition mit eingebunden werden.
WIN_PARTITION
muss durch die Nummer(n) der Windows-Partition(en) ersetzt werden.Im Falle von /dev/sda1 wird
1
eingesetzt, im Falle von /dev/sda2 wird2
eingesetzt usw. Sollen mehrere Partitionen eingebunden werden, wird z.B.1,2,3
eingesetzt für /dev/sda1, /dev/sda2 und dev/sda3.Sollte sich Windows auf einer M2-SSD befinden, so müssen hier trotzdem die Endnummern angegeben werden. So wird beispielsweise im Falle /dev/nvme0n1p1 auch nur eine
1
eingesetzt, auch wenn die Partion auf p1 endet..Auch
-rawdisk /dev/sda
muss ggf. angepasst werden, wenn Windows auf einer anderen Festplatte liegt (siehe Windows-Partitionen ermitteln): [3]
Mit folgendem Befehl wird ein Verweis auf die physikalische Festplatte erzeugt:
sudo VBoxManage internalcommands createrawvmdk -filename ~/VirtualBox\ VMs/WindowsRAW/WindowsRAW.vmdk -rawdisk /dev/sda -partitions WIN_PARTITION -mbr ~/VirtualBox\ VMs/WindowsRAW/WindowsRAW.mbr -relative
Hinweis:
ab VBox Version 7.x wie nachstehend geändert! --filname, --property RawDrive= und --property Partitions sind an die Gegebenheiten anzupassen
für V 7.x:
VBoxManage createmedium disk --filename path-to-file.vmdk --format=VMDK --variant RawDisk --property RawDrive=/dev/sda --property Partitions=1,5
Die Besitzrechte der von VBoxManage erzeugten Dateien müssen nun auf den aktuellen Benutzer übertragen werden: [3]
sudo chown $USER ~/VirtualBox\ VMs/WindowsRAW/WindowsRAW.vmdk sudo chown $USER ~/VirtualBox\ VMs/WindowsRAW/WindowsRAW-pt.vmdk
Sollten mehrere Nutzer den Computer und die VM nutzen können, ist es sinnvoll den chown
-Befehl abzuändern:
sudo chown $USER:vboxusers ~/VirtualBox\ VMs/WindowsRAW/WindowsRAW.vmdk sudo chown $USER:vboxusers ~/VirtualBox\ VMs/WindowsRAW/WindowsRAW-pt.vmdk
Hinweis:
wenn eine ganze Platte eingebunden wird (siehe weiter unten), wird nur eine *.vmdk angelegt und heißt in dem Falle (siehe unten) WindowsRAW_sdc.vmdk
Experten-Info:
Windows hat nur auf die mittels -partitions
freigegebenen Partitionen Zugriff. Zwar sieht Windows alle Partitionen der unter -rawdisk
angegebenen Festplatte, kann auf diesen jedoch nur Nullen lesen und nicht schreiben.
Sollte Windows eine Festplatte für sich haben, ist es unter Umständen daher sinnvoll, alle Partitionen der Festplatte anzugeben.
Optional: Zusätzliche Festplattenverweise¶
Analog zum obigen Vorgehen können zusätzliche Festplattenverweise erzeugt werden. Der virtuelle MBR sollte Verwendung finden. Das verringert die Gefahr der Zerstörung des physikalischen Bootsektors (und damit meist GRUB).
Beispiel 1: Partitionen einer anderen Festplatte
Für die Partitionen /dev/sdb2 und /dev/sdb4 auf der Festplatte /dev/sdb lautet der Befehl:
sudo VBoxManage internalcommands createrawvmdk -filename ~/VirtualBox\ VMs/WindowsRAW/WindowsRAW_sdb.vmdk -rawdisk /dev/sdb -partitions 2,4 -mbr ~/VirtualBox\ VMs/WindowsRAW/WindowsRAW.mbr -relative
Beispiel 2: Vollständige andere Festplatte
Für die gesamte Festplatte /dev/sdc lautet der Befehl:
sudo VBoxManage internalcommands createrawvmdk -filename ~/VirtualBox\ VMs/WindowsRAW/WindowsRAW_sdc.vmdk -rawdisk /dev/sdc
Die Rechte müssen auch hier korrekt vergeben werden.
Zugriffsrechte erteilen¶
Mit Root-Rechten [4] wird im Verzeichnis /etc/udev/rules.d eine Datei mit dem Namen VBoxWindowsRAW.rules angelegt.
In diese Datei wird eine udev-Regel eingetragen. Dafür gibt es zwei mögliche Varianten zur Auswahl.
KERNEL==sda1
muss ggf. angepasst werden, wenn Windows auf anderen Partition(en) liegt (siehe Windows-Partitionen ermitteln).Für jede Partition wird eine Zeile eingetragen.
Variante 1: (Für BENUTZER
den eigenen Benutzernamen eintragen)
# Zugriffsrechte für VirtualBox raw disk access # Nur Benutzer BENUTZER kann direkt auf sda1 zugreifen # KERNEL=="sda1", OWNER="BENUTZER", MODE="0664"
Variante 2:
# Zugriffsrechte für VirtualBox raw disk access # Nur Gruppe vboxusers kann direkt auf sda1 zugreifen # KERNEL=="sda1", GROUP="vboxusers", MODE="0664"
Zusatzbeispiele:
# Zugriffsrechte für VirtualBox raw disk access # Nur Gruppe vboxusers kann direkt auf die Partitionen sdb2 und sdb4 sowie auf die gesamte Festplatte sdc zugreifen # KERNEL=="sdb2", GROUP="vboxusers", MODE="0664" KERNEL=="sdb4", GROUP="vboxusers", MODE="0664" KERNEL=="sdc", GROUP="vboxusers", MODE="0664"
Natürlich sind auch Kombinationen von Nutzer und Gruppe möglich.
Experten-Info:
VirtualBox benötigt für RAW-Festplatten Lese-, als auch Schreibzugriff. Andernfalls kann es vorkommen, dass VirtualBox auf das Medium nicht zugreifen kann und im Medienmanager einen Fehler ausgibt, der im ersten Moment auf fehlende Dateiberechtigungen für die oben erstellten vmdk-Dateien schließen lassen würde.
Durch einen Systemneustart oder mit folgendem Befehl wird die Rechtevergabe wirksam gemacht: [3]
sudo udevadm trigger
(Im Zweifelsfall neu starten, der Befehl scheint nicht immer erfolgreich zu sein.)
Festplattenverweis einhängen¶
Das Einhängen und Aushängen von Speichermedien ist unter "WindowsRAW → Ändern → Massenspeicher" möglich. Dort werden auch virtuelle SATA- und IDE-Controller verwaltet.
Für Windows 7 / 8 / 10 werden Festplatten und CD/DVD-Laufwerke gewöhnlich am virtuellen SATA-Controller eingehangen.
Gibt es Bootprobleme, kann es helfen, den virtuellen IDE-Controller zu verwenden. (Zusätzlich kann es helfen, den IDE-Controller auf
ICH6
zu setzen).An den gewählten Einhängepunkt wird ~/VirtualBox VMs/WindowsRAW/WindowsRAW.vmdk eingehangen.
Angleichung Virtuell an Physikalisch¶
Die folgenden Unterpunkte dienen dazu, die virtuellen Hardwaredaten den physikalischen Daten des Computers weitmöglichst anzugleichen.
Dieser Aufwand dient allein dem Zweck, die Produktneuaktivierung von Windows zu vermeiden.
Für andere Parallelsysteme als Windows kann darauf verzichtet und beim nächsten Schritt weitergemacht werden.
Vorinstallierte OEM-Versionen von Windows 8 und Windows 10 enthalten im BIOS meist eine MSDM-Tabelle, die der Hardwareerkennung dient. Ob der eigene Rechner eine MSDM-Tabelle enthält, kann man in Ubuntu sehen, indem man nachschaut, ob es eine Datei /sys/firmware/acpi/tables/MSDM gibt. Wenn das der Fall ist, reichen die virtuellen Hardwareanpassungen dieses Artikels nicht aus, um Windows uneingeschränkt in VirtualBox nutzen zu können. Daher kann bei nächsten Schritt weitergemacht werden. Die Einschränkungen sind:
Im virtuellen Betrieb darf keine Internetverbindung für Windows hergestellt werden.
Mindestens einmal im Monat muss Windows physikalisch im Dualboot gestartet werden.
Experten-Info:
Für Überprüfung und Korrektur der Angleichung gibt es mehrere Möglichkeiten:
Die Skripte tragen die ermittelten Werte in die Datei WindowsRAW.vbox ein. Dort kann man nachsehen.
WindowsRAW.vbox bitte nicht editieren! Eintragungen können durch Setzen von
""
statt z.B."<EMPTY>"
entfernt werden. Veränderungen sind nur mit Hilfe vonVBoxManage
zulässig.Wenn eine Ubuntu Desktop-CD in WindowsRAW gebootet wird, kann z.B. mit Hilfe von
dmidecode
vieles überprüft werden. Vgl. auch die Problembehebung, ganz am Ende, zum Thema "Produktaktivierung".Es gibt auch ein dmidecode für Windows 🇬🇧 ⮷. In der Eingabeaufforderung von Windows 🇬🇧 zeigt es dieselbe Ausgabe wie von Ubuntu her bekannt.
Jede Version (und ihre Installationsvarianten) von Windows haben verschiedene Schwerpunkte in der "Hardwarebewertung" der "Identitätsprüfung" des Computers. (Hinweise dazu in den Links). Einige scheinen allen mehr oder minder gemeinsam zu sein. Besonders wichtige Hardwaredaten sind:
DmiSystemUuid (
dmidecode -t1
)Seriennummer der Festplatte
Hardwareadressen der Netzwerkadapter
SLIC-Tabelle (nur Windows 7 sowie per Update von Vista/7 installiertes 8 oder 10)
DmiBoard-Parameter (
dmidecode -t2
)Neu seit Windows 8 ist die MSDM-Tabelle. Diese ist komplexer aufgebaut als ihr Vorgänger SLIC. Sie enthält einen Hardware-Hash, der aus nicht öffentlich bekannten Eigenschaften der Hardware berechnet wird und dient der möglichst eindeutigen Wiedererkennung des Rechners. Der Schwerpunkt der Prüfung soll auf dem Mainboard liegen. Die virtuellen Hardwareanpassungen dieses Artikels reichen nicht aus, um diesem Hardware-Hash zu entsprechen. Mögliche Ansätze zur noch besseren virtuellen Hardwareangleichung werden in der Diskussion zum Artikel beschrieben.
SLIC-Tabelle¶
Die OEM-Versionen von Windows 7, also vom Hardwarehersteller vorinstallierte Windowsversionen, lesen aus dem BIOS die SLIC-Tabelle aus, um zu überprüfen, ob sie auf dem "richtigen" Rechner installiert sind. Wurde von Windows 7 ein Update auf Windows 8 oder 10 gemacht, wird die SLIC-Tabelle auch ausgelesen.
Ob der eigene Rechner eine SLIC-Tabelle enthält, kann man in Ubuntu sehen, indem man nachschaut, ob es eine Datei /sys/firmware/acpi/tables/SLIC gibt.
OEM-Versionen von Windows 8 und 10 enthalten statt der SLIC-Tabelle meist eine MSDM-Tabelle. Sie kann genauso ausgelesen und eingebunden werden wie die SLIC-Tabelle. Leider genügt das nicht, um die Produktneuaktivierung zu vermeiden.
Sollte sich auf dem Rechner weder eine MSDM-, noch eine SLIC-Tabelle befinden, kann man sich ohne Probleme dem nächsten Abschnitt widmen.
Die SLIC-Tabelle wird ausgelesen und anschließend die Besitzrechte auf den aktuellen Benutzer übertragen: [3]
sudo dd if=/sys/firmware/acpi/tables/SLIC of=~/VirtualBox\ VMs/WindowsRAW/WindowsRAW_SLIC.bin sudo chown $USER ~/VirtualBox\ VMs/WindowsRAW/WindowsRAW_SLIC.bin
Die Datei ~/VirtualBox VMs/WindowsRAW/WindowsRAW_SLIC.bin sollte exakt 374 Byte groß sein.
Die SLIC-Tabelle wird eingebunden mit dem Befehl: [3]
VBoxManage setextradata "WindowsRAW" "VBoxInternal/Devices/acpi/0/Config/CustomTable" "$HOME/VirtualBox VMs/WindowsRAW/WindowsRAW_SLIC.bin"
Virtuelle BIOS-Daten angleichen¶
Es werden einige physikalische BIOS-Daten benötigt: [3]
sudo dmidecode -t0
Die Ausgabe kann z.B. so aussehen:
# dmidecode 2.9 SMBIOS 2.3 present. Handle 0x0000, DMI type 0, 20 bytes BIOS Information Vendor: Phoenix Technologies LTD Version: R01-A0T Release Date: 05/25/2005 Address: 0xE63F0 Runtime Size: 105488 bytes ROM Size: 512 kB Characteristics: ISA is supported [...] Bios Revision: 2.3 Firmware Revision: 2.3
Außerdem:
sudo dmidecode -t1
Die Ausgabe kann z.B. so aussehen:
# dmidecode 2.9 SMBIOS 2.3 present. Handle 0x0001, DMI type 1, 25 bytes System Information Manufacturer: 0001 Product Name: WIM 2050 Version: Serial Number: System serial number UUID: 20202020-2020-2020-2020-202020202020 Wake-up Type: Power Switch Family: To be filled by O.E.M.
Des Weiteren werden die Werte von dmidecode -t2
, dmidecode -t3
, dmidecode -t4
und dmidecode -t11
benötigt,
Es wird ein Skript mit dem Namen WindowsRAW_BIOS.sh erstellt, das die wichtigsten BIOS-Daten in die Konfiguration der virtuellen Maschine überträgt. Das Skript nicht wie gegeben ausführen, sondern den eben ermittelten Daten gemäß anpassen! [6]
Sind
Bios Revision
undFirmware Revision
nicht angegeben, werden die Werte vonSMBIOS
verwendet.Auch unsinnig erscheinende Einträge müssen wörtlich übernommen werden.
Leere oder nicht erscheinende Einträge werden mit
"<EMPTY>"
eingetragen.Bei einem (U)EFI-System muss die Variable
CFG_PATH
angepasst werden (#
vorCFG_PATH
entfernen).
Das Skript wird einmal ausgeführt und danach nicht mehr benötigt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #! /bin/bash VM_NAME="WindowsRAW" # Name der Virtuellen Maschine VSETED="VBoxManage setextradata $VM_NAME" CFG_PATH="VBoxInternal/Devices/pcbios/0/Config" # klassisches BIOS-System # CFG_PATH="VBoxInternal/Devices/efi/0/Config" # EFI-System $VSETED $CFG_PATH/DmiBIOSVendor "string:Phoenix Technologies LTD" # "Vendor" aus "dmidecode -t0" $VSETED $CFG_PATH/DmiBIOSVersion "string:R01-A0T" # "Version" aus "dmidecode -t0" $VSETED $CFG_PATH/DmiBIOSReleaseDate "string:05/25/2005" # "Release Date" aus "dmidecode -t0" $VSETED $CFG_PATH/DmiBIOSReleaseMajor "2" # "Bios Revision 1. Zahl" aus "dmidecode -t0" $VSETED $CFG_PATH/DmiBIOSReleaseMinor "3" # "Bios Revision 2. Zahl" aus "dmidecode -t0" $VSETED $CFG_PATH/DmiBIOSFirmwareMajor "2" # "Firmware Revision 1. Zahl" aus "dmidecode -t0" $VSETED $CFG_PATH/DmiBIOSFirmwareMinor "3" # "Firmware Revision 2. Zahl" aus "dmidecode -t0" $VSETED $CFG_PATH/DmiSystemVendor "string:0001" # "Manufacturer" aus "dmidecode -t1" $VSETED $CFG_PATH/DmiSystemProduct "string:WIM 2050" # "Product Name" aus "dmidecode -t1" $VSETED $CFG_PATH/DmiSystemVersion "<EMPTY>" # "Version" aus "dmidecode -t1" $VSETED $CFG_PATH/DmiSystemSerial "string:System serial number" # "Serial Number" aus "dmidecode -t1" $VSETED $CFG_PATH/DmiSystemSKU "<EMPTY>" # "SKU Number" aus "dmidecode -t1" $VSETED $CFG_PATH/DmiSystemUuid "string:20202020-2020-2020-2020-202020202020" # "UUID" aus "dmidecode -t1" $VSETED $CFG_PATH/DmiSystemFamily "string:To be filled by O.E.M." # "Family" aus "dmidecode -t1" $VSETED $CFG_PATH/DmiBoardVendor "string:Notebook" # "Manufacturer" aus "dmidecode -t2" $VSETED $CFG_PATH/DmiBoardProduct "string:WIM 2050" # "Product Name" aus "dmidecode -t2" $VSETED $CFG_PATH/DmiBoardVersion "string:Rev.A" # "Version" aus "dmidecode -t2" $VSETED $CFG_PATH/DmiBoardSerial "<EMPTY>" # "Serial Number" aus "dmidecode -t2" $VSETED $CFG_PATH/DmiBoardAssetTag "string:asset" # "Asset Tag" aus "dmidecode -t2" $VSETED $CFG_PATH/DmiBoardBoardType "1234" # "Type" aus "dmidecode -t2", muss eine Zahl (Integer) oder "" sein. Siehe auch Hinweis $VSETED $CFG_PATH/DmiBoardLocInChass "string:locinchass" # "Location in Chassis" aus "dmidecode -t2" $VSETED $CFG_PATH/DmiChassisAssetTag "<EMPTY>" # "Asset Tag" aus "dmidecode -t3" $VSETED $CFG_PATH/DmiChassisSerial "<EMPTY>" # "Serial Number" aus "dmidecode -t3" $VSETED $CFG_PATH/DmiChassisVendor "string:Medion" # "Manufacturer" aus "dmidecode -t3" $VSETED $CFG_PATH/DmiChassisVersion "string:N/A" # "Version" aus "dmidecode -t3" $VSETED $CFG_PATH/DmiChassisType "1234" # "Type" aus "dmidecode -t3", muss eine Zahl (Integer) oder "" sein. Siehe auch Hinweis $VSETED $CFG_PATH/DmiProcManufacturer "string:Intel" # "Manufacturer" aus "dmidecode -t4" $VSETED $CFG_PATH/DmiProcVersion "string:Intel(R) Pentium(R) M processor" # "Version" aus "dmidecode -t4" $VSETED $CFG_PATH/DmiOEMVBoxVer "string:SMBIOS 2.3" # "String 1" aus "dmidecode -t11" $VSETED $CFG_PATH/DmiOEMVBoxRev "string:Customer Reference Platform" # "String 2" aus "dmidecode -t11" |
Hinweis:
Sollte VirtualBox später für einen Parameter der mit <EMPTY>
belegt ist einen Fehler ausgeben, bearbeitet man das Skript so, dass der bemängelte Wert einen sinnvollen Wert besitzt und führt es erneut aus.
Wenn zum Beispiel dmidecode -t0
keinen Parameter Firmware Revision
angibt, so kann dort auch die Werte von Bios Revision
genutzt werden.
Hinweis:
Bei den beiden "Type"-Parametern, die nur Integer enthalten dürfen, gibt dmidecode regelmäßig Strings aus. Die Zuordnung dieser zu Integerwerten lässt sich aus dem Dokument DSP0134_2.7.0.pdf ⮷ entnehmen. Sie stehen dort auf den Seiten 35 bis 38 in den Tabellen 14 und 16. Die Werte sind dort allerdings als Hex angegeben und müssen noch in Dezimalwerte umgerechnet werden. Falls der von dmidecode -t3
ausgegebene Wert z.B. "Notebook" ist, ist eine "10" anzugeben.
Virtuelle Festplattendaten angleichen¶
Es werden einige Daten zur Festplatte benötigt. Die Angabe /dev/sda
muss ggf. angepasst werden, wenn Windows z.B.
auf der /dev/sdb-Platte liegt (siehe Windows-Partitionen ermitteln): [3]
sudo hdparm -i /dev/sda
Die Ausgabe kann z.B. so aussehen:
/dev/sda: Model=WDC WD1200BEVE-00WZT0, FwRev=01.01A01, SerialNo=WD-WX60A89E4748 [...]
Bei neueren Systemen (vor allem, wenn eine M2-SSD-Festplatte genutzt wird) kann es vorkommen, dass hdparm den Fehler
HDIO_GET_IDENTITY failed: Inappropriate ioctl for device
ausgibt. Sollte dies der Fall sein, installiert man das Package
nvme-cli (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install nvme-cli
Oder mit apturl installieren, Link: apt://nvme-cli
und führt den folgenden Befehl aus:
sudo nvme list
Beispielsweise kann die Ausgabe so aussehen:
Node SN Model Version Namespace Usage Format FW Rev ---------------- -------------------- ---------------------------------------- -------- --------- -------------------------- ---------------- -------- /dev/nvme0n1 S2GLNCAGC14199E Samsung SSD 950 PRO 256GB 1.1 1 59,24 GB / 256,06 GB 512 B + 0 B 1B0QBXX7
Die ermittelten Daten zur
Model
,FwRev
undSerialNo
(bzw.SN
) müssen in das folgende Skript WindowsRAW_HD.sh eingetragen werden.Im Skript wird davon ausgegangen, dass die Festplatte am virtuellen Primary Master des virtuellen IDE-Controllers eingehangen wurde. Ansonsten ggf. anpassen.
Das Skript wird einmal ausgeführt und danach nicht mehr benötigt[6].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #! /bin/bash VM_NAME="WindowsRAW" # Name der Virtuellen Maschine VSETED="VBoxManage setextradata $VM_NAME" CFG_PATH="VBoxInternal/Devices/piix3ide/0/Config/PrimaryMaster" # (Festplatte hängt am Primary Master vom virtuellen IDE-Controller) # CFG_PATH="VBoxInternal/Devices/piix3ide/0/Config/SecundaryMaster" # (Alternativ: Festplatte hängt am Secundary Master vom virtuellen IDE-Controller) # CFG_PATH="VBoxInternal/Devices/piix3ide/0/Config/PrimarySlave" # (Alternativ: Festplatte hängt am Primary Slave vom virtuellen IDE-Controller) # CFG_PATH="VBoxInternal/Devices/piix3ide/0/Config/SecundarySlave" # (Alternativ: Festplatte hängt am Secundary Slave vom virtuellen IDE-Controller) # CFG_PATH="VBoxInternal/Devices/ahci/0/Config/Port0" # (Alternativ: Festplatte hängt am Port 0 vom virtuellen SATA-Controller) # CFG_PATH="VBoxInternal/Devices/ahci/0/Config/Port1" # (Alternativ: Festplatte hängt am Port 1 vom virtuellen SATA-Controller) # CFG_PATH="VBoxInternal/Devices/ahci/0/Config/Port2" # (Alternativ: Festplatte hängt am Port 2 vom virtuellen SATA-Controller) $VSETED $CFG_PATH/ModelNumber "string:WDC WD1200BEVE-00WZT0" # "Model" aus "hdparm -i /dev/sda" $VSETED $CFG_PATH/FirmwareRevision "string:01.01A01" # "FwRev" aus "hdparm -i /dev/sda" $VSETED $CFG_PATH/SerialNumber "string:WD-WX60A89E4748" # "SerialNo" aus "hdparm -i /dev/sda" |
Virtuelles CD/DVD-Laufwerk angleichen¶
Wenn ein physikalisches CD/DVD-Laufwerk vorliegt, muss ein virtuelles CD/DVD-Laufwerk am virtuellen SATA-Controller eingehangen werden. (Es ist zwar möglich, auch an den virtuellen IDE-Controller CD/DVD-Laufwerke einzuhängen, für diese können die Hardwaredaten aber nicht verändert werden.)
An den virtuellen SATA-Controller wird nun ein CD/DVD-Laufwerk eingehangen, falls noch nicht vorhanden.
Sind mehrere physikalische CD/DVD-Laufwerke angeschlossen, müssen auch für diese virtuelle CD/DVD-Laufwerke eingehangen und angepasst werden.
Es werden Angaben zum physikalischen CD/DVD-Laufwerk benötigt:
cdrecord -scanbus
Die Ausgabe kann z.B. so aussehen:
scsibus1: 1,0,0 100) 'Optiarc ' 'DVD RW AD-7710H ' '1.S0' Removable CD-ROM 1,1,0 101) * [...]
Die drei nach
100)
stehenden Werte werden in das folgende Skript WindowsRAW_CD.sh eingetragen.Im Skript wird davon ausgegangen, dass das CD/DVD-Laufwerk am ersten Port (= Port 0) vom virtuellen SATA-Controller eingehangen wurde, ansonsten ggf. anpassen.
Sind am Rechner mehrere CD/DVD-Laufwerke, müssen auch für diese virtuelle CD/DVD-Laufwerke eingerichtet und angepasst werden.
Das Skript wird einmal ausgeführt und danach nicht mehr benötigt. [6]
1 2 3 4 5 6 7 8 9 10 11 12 | #!/bin/bash VM_NAME="WindowsRAW" # Name der Virtuellen Maschine VSETED="VBoxManage setextradata $VM_NAME" PORT="Port0" # CD/DVD-Laufwerk hängt am ersten Port (=Port 0) vom virtuellen SATA-Controller # PORT="Port1" # (Alternativ: CD/DVD-Laufwerk hängt am zweiten Port (=Port 1) vom virtuellen SATA-Controller) # PORT="Port2" # (Alternativ: CD/DVD-Laufwerk hängt am dritten Port (=Port 2) vom virtuellen SATA-Controller) CFG_PATH="VBoxInternal/Devices/ahci/0/Config/$PORT" $VSETED $CFG_PATH/ATAPIVendorId "string:Optiarc" # Erster Wert (Hersteller) $VSETED $CFG_PATH/ATAPIProductId "string:DVD RW AD-7710H" # Zweiter Wert (Modell) $VSETED $CFG_PATH/ATAPIRevision "string:1.S0" # Dritter Wert (Versionsnummer) |
Hinweis:
Sollte der Rechner kein optisches Laufwerk besitzen, so kann trotzdem ohne Gefahr ein virtuelles Laufwerk über VirtualBox eingehänt werden (Getestet mit Windows 10, Stand: 25.07.2017).
MAC-Adressen der virtuellen Netzwerkadapter angleichen¶
Es werden die MAC-Adressen der physikalischen Netzwerkadapter benötigt. Dieser Befehl listet alle Netzwerkadapter und ihre Hardwareadressen auf: [3]
ifconfig -a
Die Ausgabe kann so aussehen:
eth0 Link encap:Ethernet Hardware Adresse 00:0a:e4:a3:ed:8a [...]
Die Hardwareadresse wird (ohne ":") in "VirtualBox → WindowsRAW → Ändern → Netzwerk → Erweitert → Mac-Adresse" eingegeben.
Für alle ermittelten Netzwerkadapter wird in VirtualBox ein Netzwerkadapter aktiviert und die jeweilige MAC-Adresse eingegeben.
ppp0
undlo
haben keine MAC-Adresse und werden hier auch nicht benötigt.Für den Betrieb nicht benötigte Netzwerkverbindungen können durch Entfernen des Häkchens bei "Kabel verbunden" vom Host getrennt werden.
Das Häkchen nun bei den benötigten Verbindungen setzen. (HINWEISE ZU MSDM-TABELLEN BEACHTEN!)
Erster Start von Windows in VirtualBox¶
Windows erstmals in VirtualBox starten.
Es kann sein, dass das erste virtuelle Starten sehr lange dauert. Auch kann für längere Zeit ein nur schwarzer Bildschirm sichtbar sein. Geduldig sein, Windows schaut sich in der neuen Hardwareumgebung um und braucht Zeit.
Sollte Windows nicht komplett hochfahren, siehe Abschnitt Problembehebung.
Windows bemerkt, dass sich die Hardware verändert hat und bietet an, viele neue Treiber zu installieren. Alle Angebote ablehnen, stattdessen die Gasterweiterungen von VirtualBox installieren. Die Gasterweiterungen scheinen im normalen Dualboot-Betrieb keine Probleme zu machen.
Windows neu starten.
Windows sollte nun virtuell und physikalisch problemlos starten, ohne eine neue Produktaktivierung zu verlangen.
Für Windows 7 kann nun die Internetverbindung in VirtualBox aktiviert werden. Dafür unter "Ändern → Netzwerk → Erweitert" die Option "Kabel verbunden" anschalten. (Häkchen setzen).
Für Windows 8 und Windows 10 darf die Internetverbindung nicht aktiviert werden, falls das BIOS eine MSDM-Tabelle enthält. Es verweigert dann die Mitarbeit und muss heruntergefahren werden.
Andere Parallelsysteme¶
Dieser Artikel kann analog auch auf andere parallel installierte Betriebssysteme als Windows angewendet werden. Die Schritte Windows vorbereiten und Virtuelle Hardware der physikalischen Hardware angleichen können dann übergangen werden.
Es können dabei insbesondere Treiberprobleme durch die abweichende virtuelle Hardware auftreten, die Betriebssystem-spezifisch zu lösen sind. Oft handelt es sich primär um Grafikkartentreiber-Probleme.
Die Gasterweiterungen von VirtualBox, die für viele Betriebssysteme angeboten werden, können einen Großteil dieser Probleme beheben.
Es kann, je nach System, nötig sein, für den jeweiligen physikalischen oder virtuellen Start verschiedene Konfigurationen zu verwenden. Diese können z.B. durch ein Skript, das während des Bootens ausgeführt wird, vorgenommen werden. (Beispiel: In einem Test mit Ubuntu 7.04 zeigte sich, dass zwei Varianten der Datei /etc/X11/Xorg.conf nötig waren, eine von VirtualBox bei Installation der Gasterweiterungen angelegte, und das Original, von dem VirtualBox ein Backup angelegt hatte.)
Eine Möglichkeit zu erkennen, ob das System in VirtualBox gestartet wurde, ist das Überprüfen des Grafikadapters.
lspci
enthält dann die AusgabeVirtualBox Graphics Adapter
.Manche Systeme haben Probleme mit der "IO-APIC"-Option, die im Schritt Virtuelle Maschine erstellen aktiviert wurde. Auch kann "IO-APIC" die Performance verschlechtern. Versuchsweise kann "IO-APIC" deaktiviert werden.
Achtung!
* Es darf niemals das aktuell laufende Betriebssystem in VirtualBox gestartet werden! Das führt zur totalen Zerstörung des Systems.
Durch Treiberanpassungen für den virtuellen Betrieb kann es dazu kommen, dass das System bei einem normalen physikalischen Start Probleme bekommt. Dies kann auch bei Verwendung der VirtualBox-Gasterweiterungen passieren.
Parallelsysteme mit systemd¶
Die meisten Linux-Distributionen - wie auch Ubuntu - setzen systemd als Init-System ein. Wenn beim Bootvorgang in fstab eingetragene Partitionen nicht gefunden werden, bleibt der Bootvorgang mit systemd stehen. Für Partitionen, die im Parallelsystem in /etc/fstab eingetragen sind, aber nicht in die VM eingebunden werden sollen, muss im Parallelsystem die Datei /etc/fstab angepasst werden. Die mount-Optionen der betroffenen Partitionen müssen ergänzt werden um die Option nofail
. Um den entstehenden timeout von 90 Sekunden beim Bootvorgang auf 1 Sekunde abzukürzen, wird außerdem x-systemd.device-timeout=1
eingetragen. Beispiel:
UUID=5713b814-354b-84d7-9c40-307475c55c57 none swap sw,nofail,x-systemd.device-timeout=1 0 0
Paralleles Ubuntu¶
Ein parallel installiertes aktuelles Ubuntu lässt sich erfreulich unproblematisch mit VirtualBox starten. Es erkennt beim Booten selbständig, dass es in einer virtuellen Umgebung gestartet wird, und passt sich dem an. Der Bootvorgang dauert dabei etwas länger als gewohnt (getestet mit Ubuntu 10.04 und Xubuntu 11.10).
Virtuellen MBR durch GRUB ersetzen¶
Zum ersten Booten braucht es z.B. die Super Grub2 Disk 🇬🇧⮷
Um das Grub-Auswahlmenü auf das virtualisierte System zu begrenzen, wird innerhalb des virtualisierten Systems
sudo update-grub
ausgeführt. Dabei wird die physikalische Datei /boot/grub/grub.cfg auf der virtuell genutzten physikalischen Partition überschrieben.Um Grub in den virtuellen Bootsektor zu installieren, wird innerhalb des virtualisierten Systems
sudo grub-install /dev/sda
ausgeführt (/dev/sda
muss ggf. angepasst werden).
Gasterweiterungen¶
Die Gasterweiterungen können über "Geräte → Gasterweiterungen installieren" als CD eingelegt werden. Installiert wird durch Ausführen von autorun.sh.
Nach einem Kernel-Update des virtualisierten Systems müssen die Gasterweiterungen neu installiert werden.
Gemeinsame Ordner¶
Zum Benutzen der Funktion "Gemeinsame Ordner" von VirtualBox muss der Benutzer (innerhalb des virtualisierten Ubuntu) der Gruppe
vboxsf
beitreten, z.B. mittelssudo adduser $USER vboxsf
. Damit die Änderung wirksam wird, muss der virtuelle Benutzer sich ab- und wieder anmelden.Permanent erzeugte gemeinsame Ordner werden von VirtualBox nach einem virtuellen Systemneustart automatisch eingebunden unter /media/sf_ORDNERNAME. Details und Varianten siehe VirtualBox Manual: Shared folders 🇬🇧.
Einschränkungen¶
Es darf nicht dieselbe SWAP-Partition wie die vom Host verwendet werden. Als eine mögliche Alternative kann eine Swap-Auslagerungsdatei angelegt werden.
Es ist auch über die Funktion "Gemeinsame Ordner" nicht möglich, dieselben Konfigurationsdateien aus /home zu nutzen wie der Host.
Ubuntu in Windows¶
Um Ubuntu in VirtualBox in Windows zu starten, wird wie folgt vorgegangen:
Für den direkten Festplattenzugriff ("raw disk access") werden Zugriffsrechte benötigt. Eine Möglichkeit ist es, die folgenden Befehle und Programme als Administrator zu starten.
Ein Verweis auf die Festplatte, auf der Ubuntu installiert ist, wird erzeugt. Dabei muss
HARDDISK
ersetzt werden durch den Windows-Pfad zur physikalischen Festplatte, z.B.\\.\PhysicalDrive0
oder\\.\PhysicalDrive1
, undMEINPFAD
durch den gewünschten Dateipfad. Ausgeführt wird der Befehl unter "Start → Programme → Zubehör → Eingabeaufforderung".cd C:\Programme\Oracle\VirtualBox VBoxManage internalcommands createrawvmdk -filename "C:\MEINPFAD\UbuntuRAW.vmdk" -rawdisk HARDDISK
VirtualBox starten, eine VM erzeugen, UbuntuRAW.vmdk als Festplatte auswählen.
für windows 10 gilt: Virtualbox muß mit Administratorrechten gestartet werden, anderenfalls läßt sich die RawDisk nicht einhängen
Die VM starten.
Es erscheint das GRUB-Auswahlmenü. Hier muss Ubuntu gewählt werden. Alternativ kann zum Booten die Super Grub2 Disk 🇬🇧⮷ verwendet werden.
Achtung!
Es darf niemals Windows in Windows gebootet werden. Das führt zur Zerstörung des Betriebssystems und kann erhebliche Datenverluste nach sich ziehen.
Nach erfolgreichem Start können die Gasterweiterungen von VirtualBox installiert werden.
Für Datenaustausch gibt es die Funktion Gemeinsame Ordner.
Problembehebung¶
Hinweis:
Pauschale Empfehlung: Bei Problemen sollte geprüft werden, ob die aktuellste Version von VirtualBox installiert ist. Siehe Aktuelle Version von VirtualBox installieren.
Fehlermeldungen von VirtualBox¶
VERR_ACCESS_DENIED
: Diese Fehlermeldung von VirtualBox oderVBoxManage
erscheint, wenn die Zugriffsrechte auf die Festplatte nicht richtig vergeben wurden.Lösung: Siehe Zugriffsrechte erteilen.
VERR_ALREADY_EXISTS
: Diese Fehlermeldung vonVBoxManage
erscheint, wenn die WindowsRAW.vmdk-Datei, die erzeugt werden soll, bereits existiert.Lösung: Anderen Dateinamen vergeben oder vorhandene Dateien WindowsRAW.vmdk und WindowsRAW-pt.vmdk löschen, falls sie nicht mehr benötigt werden. Wenn diese Dateien bereits in VirtualBox registriert sind, müssen sie dort entfernt werden:
In VirtualBox unter "Datei → Manager für virtuelle Medien ..." WindowsRAW.vmdk auswählen.
Rechtsklick, "Freigeben" wählen.
Rechtsklick, "Entfernen" wählen.
Wird eine neue WindowsRAW.vmdk erzeugt und die VM WindowsRAW existiert bereits, muss man sie unter "WindowsRAW → Ändern → Massenspeicher" neu einhängen, am gleichen Einhängepunkt wie zuvor.
NS_ERROR_FAILURE
: Diese Fehlermeldung deutet auf fehlende Zugriffsrechte. Wenn der Fehler nach Überprüfen dieser möglichen Ursachen bestehen bleibt, kann dies in diesem Thread besprochen werden.Möglichkeit: Gruppenzugehörigkeit zu
vboxusers
fehlt.Lösung: Der Gruppe
vboxusers
beitreten:sudo adduser $USER vboxusers
Danach vom System ab- und wieder anmelden, damit dies wirksam wird. Manchmal ist es nötig, anschließend VirtualBox neu zu initialisieren:
sudo /etc/init.d/vboxdrv restart
Möglichkeit: udev-Regel ist falsch.
Lösung: Siehe Zugriffsrechte erteilen, udev-Regel kontrollieren, ggf. Neustarten, damit die udev-Regel ganz sicher vom System verwendet wird.
Möglichkeit: WindowsRAW.vmdk und/oder WindowsRAW-pt.vmdk sind nicht Eigentum des aktuellen Benutzers.
Lösung: Besitzrechte auf aktuellen Benutzer übertragen. [3]
sudo chown $USER ~/VirtualBox\ VMs/WindowsRAW/WindowsRAW.vmdk sudo chown $USER ~/VirtualBox\ VMs/WindowsRAW/WindowsRAW-pt.vmdk
VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES
: Die installierte Version von VirtualBox ist veraltet.Lösung: Aktuelle Version von VirtualBox installieren, mindestens 4.2 oder höher.
VBOX_E_OBJECT_NOT_FOUND
: WindowsRAW.vmdk ist aus irgend einem Grund nicht richtig eingehangen.Lösung:
In VirtualBox unter "Datei → Manager für virtuelle Medien ..." WindowsRAW.vmdk auswählen.
Rechtsklick, "Freigeben" wählen.
Rechtsklick, "Entfernen" wählen.
Unter "WindowsRAW → Ändern → Massenspeicher" die Datei ~/VirtualBox VMs/WindowsRAW/WindowsRAW.vmdk neu einhängen, am gleichen Einhängepunkt wie zuvor.
Allgemein: Zugriffsrechteprobleme
Gibt es Probleme mit der Rechtezuweisung, kann versuchsweise ein Beitritt des Benutzers zur Gruppe
disk
gemacht werden. Das räumt dem Benutzer allzu weite Zugriffsrechte ein, ist ein Sicherheitsrisiko und soll/darf keine Dauerlösung sein. Jedoch kann auf diese Weise gut geprüft werden, ob ein Rechteproblem vorliegt.
Probleme beim Booten von Windows¶
Achtung!
Je nach Fehler bietet Windows manchmal Reparaturmöglichkeiten an. Diese sind meist weder hilfreich noch zielführend und bisweilen eine Gefahr für die Daten. Bitte nicht verwenden.
Für die Reparaturvorschläge in diesem Artikel bitte niemals Wiederherstellungs-CDs vom Hardwarehersteller verwenden.
Generell eine gute Hilfe:
Nach Bluescreen startet Windows neu, bevor die Fehlermeldung gelesen werden kann.
Lösung 1: Reboot durch VirtualBox verhindern lassen, damit der Fehler lesbar ist:
VBoxManage setextradata "WindowsRAW" "VBoxInternal/PDM/HaltOnReset" 1
Dies kann rückgängig gemacht werden durch
VBoxManage setextradata "WindowsRAW" "VBoxInternal/PDM/HaltOnReset" 0
Lösung 2: Windows physikalisch booten, unter "Start → Einstellungen → Systemsteuerung → System → Erweitert → Starten und Wiederherstellen → Einstellungen" wird der Haken bei "Automatisch Neustart durchführen" entfernt. Virtuell booten, jetzt sollte die Fehlermeldung lesbar sein.
Nach dem Start von MBR bleibt der Boot stehen, auch nach langem Warten.
Lösung 1: Super Grub2 Disk verwenden, sie umgeht den MBR.
Lösung 2: Neuen Windows-MBR erstellen. Dazu wie folgt vorgehen:
Windows Installations- oder Reparatur-CD verwenden.
In VirtualBox mit Windows-CD booten. Eingabeaufforderung wählen.
bootrec /fixmbr
eingeben. Damit wird der virtuelle MBR überschrieben.Windows ohne CD in VirtualBox neu starten.
STOP 0x0000007B
Lösung 1: Den Schritt Treibervorbereitung: Windows 7 überprüfen, MergeIDE.reg erneut ausführen.
Lösung 2: WindowsRAW.vmdk am virtuellen IDE-Controller statt am SATA-Controller einhängen. Achtung: Das Skript für die Angleichung der Festplattendaten muss bei dieser Lösungsvariante angepasst und erneut ausgeführt werden. Wenn sich der Einhängepunkt für das CD/DVD-Laufwerk ändert, auch Skript anpassen und erneut ausführen.
Lösung 3: Fehlerbehandlung auf dieser Microsoft Support Seite 🇩🇪
STOP: 0x0000007E
oderSTOP 0x000000FC
Lösung: Es liegt ein Problem mit dem CPU-Treiber intelppm.sys vor.
Windows fordert auf, Scandisk zu starten, oder will zur letzten als funktionierend bekannten Konfiguration zurückkehren, oder bleibt hängen ohne Fehlermeldung.
Lösung: Ursache kann ein fehlerhafter Grafikkartentreiber sein (C:\WINDOWS\system32\agp440.sys).
Status: 0xc000000e Info: Fehler bei Startauswahl. Zugriff auf ein erforderliches Gerät nicht möglich.
Lösung: Manchmal tritt dieser Fehler beim Booten von Windows 7 auf (Problembesprechung in diesem Thread). Der Disk Identifier ist zwischen dem nativen MBR und dem virtualisierten MBR unterschiedlich. Dies wird im Schritt Bootloader erzeugen korrigiert; dieser Schritt sollte überprüft werden. Alternativ kann das Problem so behoben werden:
Benötigt wird der Wert der
Festplattenidentifikation
aus der Ausgabe des Befehlssudo fdisk -l
Dieser liegt im Hexadezimalformat vor, z.B. so:
Festplattenidentifikation: 0xacbdacbd
Eine beliebige Desktop-CD wird benötigt und damit WindowsRAW gebootet.
In der Desktop-CD-Arbeitsumgebung Terminal aufrufen und folgendes ausführen:
sudo fdisk /dev/sda
fdisk bietet nun einen Befehlsmodus. Dort
x
eingeben, um den Expertenmodus aufzurufen (
m
zeigt sämtliche Optionen).Anschließend
i
eingeben. Es erscheint eine Aufforderung, die neue Festplattenidentifikation einzugeben.
Neue Festplattenidentifikation eingeben.
Mit folgendem Kommando MBR neu schreiben:
w
Desktop-CD entfernen, Windows neu booten. Der Fehler sollte behoben sein.
Sonstige Probleme¶
Die Funktion "Neustart" und/oder "Herunterfahren" von Windows funktioniert in beiden Betriebsmodi nicht mehr richtig. Windows beendet alle Programme, bleibt aber im Abmeldebildschirm, ohne ein Reset auszulösen bzw. den Computer auszuschalten. Die Maus bleibt beweglich. Die Ursache ist vermutlich ein Bug 🇬🇧 in den Gasterweiterungen.
Lösung: Bisweilen genügt es, in VirtualBox unter "WindowsRAW → Ändern → Absolutes Zeigegerät aktivieren" das Häkchen zu entfernen.
Behelfslösung: Abwarten, bis die Festplatte ruhig ist, um sicherzustellen, dass Windows alle nötigen Daten gesichert hat, dann (im Normalbetrieb) Computer per Knopfdruck ausschalten oder (in VirtualBox) Fenster schließen.
Der native Windows Start funktioniert nach der Installation der VBox-Gasterweiterungen nicht mehr, der Bootprozess bleibt im Bootsplash hängen.
Mögliche Lösung: Windows nochmals als Gastsystem booten und in der Registrierung "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\VBoxGuest" den Wert für "Start" von 0 auf 3 ändern. Dies bewirkt, dass die Gasterweiterungen im nativen Start nicht mehr automatisch gestartet werden.
Windows meldet nach Start in VirtualBox einen ATI-Treiber-Fehler.
Lösung: Die VirtualBox-Gasterweiterungen stellen einen eigenen Grafikkarten-Treiber bereit. Wenn man Glück hat, bietet die Treibersoftware an, diesen Fehler in Zukunft nicht mehr anzuzeigen; dieses Angebot darf man annehmen. Im physikalischen Betrieb wird der ATI-Treiber problemlos weiter verwendet.
Manche Firewalls machen Probleme, z.B. ZoneAlarm.
Lösung: Abhilfe kann die Verwendung einer anderen Firewall schaffen.
Windows verlangt trotz aller Angleichung der virtuellen Hardware eine neue Produktaktivierung.
In der Datei ~/VirtualBox VMs/WindowsRAW.vbox nachsehen, ob sich die Daten aus den Skripten dort wiederfinden lassen.
Alle Arbeitsschritte der Angleichung der virtuellen Hardware noch einmal genauestens prüfen.
Mit einer Desktop-CD in der Windows-VM die Ausgaben von
sudo dmidecode
, vonifconfig -a
und vonsudo hdparm -i /dev/sda
überprüfen.Probleme mit der Produktaktivierung können in diesem Thread besprochen werden.
Office 2010 verlangt trotz aller Angleichung der virtuellen Hardware eine neue Produktaktivierung.
Siehe oben, gleiche Problembehebung wie für Windows.
Oft verschwindet das Problem, wenn Office 2010 im nativ gebooteten Windows telefonisch (nicht online!) neu aktiviert wird.
Links¶
Intern¶
VirtualBox Übersichtsartikel
Extern¶
VirtualBox Manual: Chap. 9: Using a raw host hard disk from a guest 🇬🇧
VirtualBox Wiki: How to migrate existing Windows installations to VirtualBox 🇬🇧
VirtualBox-Forum: Discuss: HOWTO: Windows 7: In both VM and native 🇬🇧
VirtualBox-Forum: Windows 7 Licensing and Immutable Disks (about SLIC and DmiBoard) 🇬🇧