Ich werde Linux Mint 17.1 (Cinnamon) als Hauptbetriebssystem installieren. Ich möchte auch gelegentlich in Windows 7 booten können. Ich möchte auch eine virtuelle Windows 7-Maschine in Linux ausführen. Idealerweise hätte ich gerne eine einzige Windows 7-Installation, in die ich entweder von Linux aus starten oder von einer virtuellen Maschine aus ausführen kann. Ist das möglich? Welche Software für virtuelle Maschinen unterstützt das? Idealerweise möchte ich zunächst Linux und Windows installieren, ohne die virtuelle Maschine einzubeziehen, und anschließend eine virtuelle Maschine installieren, die mit dieser Windows 7-Installation funktioniert.
Ich bin sicher, viele werden wissen wollen, warum ich das tun möchte. Ich arbeite am liebsten unter Linux. Gelegentlich muss ich jedoch Windows-Software ausführen, die in einer emulierten Umgebung gut genug ausgeführt werden sollte. Zu anderen Zeiten möchte ich vielleicht Spiele unter Windows 7 spielen und die volle Leistung meiner Grafikkarte und anderer Hardware erhalten, indem ich direkt in Windows boote. Ich möchte nicht mit mehreren Windows-Installationen umgehen, ich möchte keine weitere Kopie von Windows kaufen und möchte nicht, dass es so viel Speicherplatz beansprucht wie zwei Installationen. Ich bin nicht sicher, ob die von mir erstellten Windows 7-Wiederherstellungs-DVDs anders funktionieren würden, als nur die normale Installation, ohne dass eine virtuelle Maschine erforderlich wäre.
Je mehr ich darüber nachdenke, desto mehr scheint es nicht zu funktionieren. Windows benötigt wahrscheinlich separate Treiberinstallationen, je nachdem, ob es als virtuelle Maschine ausgeführt wird oder ich direkt in die Maschine boote. Windows wird wahrscheinlich denken, dass es auf einem separaten Computer ausgeführt wird und für die zwei verschiedenen Computer zweimal registriert werden muss, was nicht zulässig ist.
Aktualisieren
Ich weiß jetzt, dass ich es vorziehen würde, entweder KVM, VirtualBox oder eine andere Option zu verwenden, die frei und Open Source ist. Kann ich mit KVM oder VirtualBox machen, was ich will?
quelle
occasionally I will need to run some Windows software that should run well enough in an emulated environment
- Wenn dies der Fall ist, wäre es wahrscheinlich besser, wenn Sie versuchen, es zu verwenden Wein ...Antworten:
Warnung: Dies ist eine sehr empfindliche Operation. Sie können sehr leicht Ihr System beschädigen und Daten verlieren. Was für mich funktioniert hat, kann für Sie nicht funktionieren. Es ist ratsam, vor dem Fortfahren alle erforderlichen Sicherungen zu erstellen.
Meine Erfahrungen und diese Website sind die Quelle dieser Informationen: http://fds-team.de/cms/articles/2013-12/use-a-real-windows-7-partition-in-virtualbox-kvm-vmware-player-u.html Diese Website enthält auch andere Informationen, die hilfreich sein können.
Diese Anweisungen gelten für Linux Mint 17.1, die Schritte sollten jedoch für andere Linux-Distributionen, insbesondere für Ubuntu, ähnlich sein. Ich empfehle die Verwendung von KVM anstelle von VirtualBox oder VMware Player oder anderen VMware-Produkten. Anweisungen dazu, wie Sie dies in etwas anderem als KVM ausführen können, finden Sie unter dem Link.
Warum KVM? Nach meiner Recherche scheint es momentan drei Hauptakteure in dieser Kategorie zu geben. KVM, VirutalBox und einige verschiedene VMware-Produkte. Die VMware-Produkte sind nicht Open Source und keines davon ist für die kommerzielle Nutzung frei. VirtualBox ist kostenlos und Open Source. Wenn Sie jedoch die Unterstützung für USB 2.0 hinzufügen müssen, müssen Sie ein Erweiterungspaket installieren, das Sie nicht für geschäftliche / kommerzielle Zwecke verwenden sollten. Auch wenn USB 3.0 ohne dieses Erweiterungspaket unterstützt wird, ist die USB-Unterstützung in VirtualBox problematischer als in VMware-Produkten oder KVM. KVM ist Open Source und kann sowohl privat als auch geschäftlich / kommerziell genutzt werden. KVM vermeidet Overhead durch Verwendung eines zu Linux hinzugefügten Kernelmoduls, wodurch Leistung und Kompatibilität verbessert werden: http://blog.scalecomputing.com/kvm-oder-vmware-why-kvm-is-right-for-the-imes-part-1-of-2/
In den folgenden Anweisungen erkläre ich, wie Sie virt-manager verwenden, der KVM unter der Haube verwendet, sodass Sie eine GUI verwenden können, anstatt alles in KVM über ein Terminal einzurichten.
Installieren Sie sowohl Linux als auch Windows 7 auf derselben Festplatte in separaten Partitionen, falls diese noch nicht installiert sind. Wenn Sie sie auf separaten Laufwerken installieren, beachten Sie die Anweisungen im Link. Stellen Sie sie auf, wo Sie zwischen ihnen dual booten können. Richten Sie Ihre Partitionen wie gewünscht ein, bevor Sie fortfahren. Hinweis: Bei einigen Windows-Installationen wird eine separate Partition für den Ruhezustand erstellt. Wenn Sie diese Partition jetzt entfernen möchten, ist es an der Zeit, dies zu tun. Sie müssen dazu nach Anweisungen suchen, aber ich weiß, dass Sie es von Windows aus tun können. Wenn Sie es nicht richtig / vollständig ausführen, kann sich die Partition neu erstellen. Wenn Sie sich entscheiden, diese Partition zu löschen, starten Sie Ihren Computer neu und starten Sie Windows erneut, um festzustellen, ob die Partition neu erstellt wird.
Booten Sie in Linux.
Ermitteln Sie den Pfad zur Festplatte, die sowohl Linux als auch Windows enthält. Normalerweise ist das so
/dev/sda
Unter Linux Mint 17.1 können Sie über das Hauptmenü Disks starten, um den Pfad zu Ihren Festplatten anzuzeigen. Wählen Sie Ihre Festplatte aus der Liste der Festplatten aus. Informationen über Ihre Festplatte nehmen nun den Rest des Fensters in Anspruch. Am oberen Rand dieser Informationen sollte die Größe Ihrer Festplatte in Fettdruck angezeigt werden. Der Pfad, den Sie in einem kleinen Text benötigen, befindet sich darunter.HINWEIS: Ab jetzt werde ich verwenden
/dev/sda
den Pfad zur Festplatte mit Partitionen für Windows 7 und Linux. Sie müssen dies durch den richtigen Pfad ersetzen.Lauf
sudo fdisk -l /dev/sda
Um einige benötigte Informationen zu den Partitionen auf Ihrer Festplatte mit Windows 7 zu erhalten, werden wahrscheinlich zwei von Windows 7 verwendete NTFS-Partitionen angezeigt. Die erste ist ziemlich klein. Es enthält den Bootloader und das Wiederherstellungssystem. Die andere NTFS-Partition sollte viel größer sein, da sie die eigentliche Windows 7-Installation enthält. Beide NTFS-Partitionen werden für die VM benötigt.Tor: Nun ist es Ihr Ziel, eine virtuelle Festplatte zu erstellen. Auf diese Weise können Sie den MBR so einrichten, dass er korrekt ist und bleibt, unabhängig davon, ob Sie Windows 7 von einer VM aus oder direkt starten. Auf diese Weise müssen Sie nicht jedes Mal ein Reparaturprogramm ausführen, wenn Sie zwischen dem direkten Start von Windows 7 und von einer VM wechseln. Ich verwende den Device-Mapper, um eine linear zugeordnete virtuelle Festplatte zu erstellen, die einem Loop-Back-Gerät und meinen beiden Windows 7-Partitionen zugeordnet ist. Die Website, von der ich die meisten dieser Schritte habe, hat RAID verwendet. Ich hatte jedoch Probleme, dies richtig zu machen. Bei RAID war die virtuelle Festplatte aufgrund der Rundung der Blockgröße zu klein. https://unix.stackexchange.com/questions/217078/raid-mdadm-virtual-disk-too-small Das Einrichten einer linearen Zuordnung für Geräte-Mapper scheint eine bessere Anpassung zu sein und vermeidet das Rundungsproblem der Blockgröße. Ich habe mit dem Device-Mapper Erfolg gehabt.
Überprüfen Sie Ihre fdisk-Ausgabe aus dem vorherigen Schritt. Bestimmen Sie, wie viele Bytes ein einzelner Sektor belegt. Wenn Ihre Sektoren 512 Byte wie meine sind, wird dies die Sache erleichtern.
Untersuchen Sie Ihre fdisk-Ausgabe erneut. Bestimmen Sie, wie viele Sektoren vor dem Start der ersten Partition nicht verwendet werden. In meinem Fall beginnt die erste Partition bei Sektor 2048, dh die ersten 2048 Sektoren werden von keiner Partition verwendet (0-2047). Dieser enthält den GRUB-Bootloader.
Erstellen Sie mit dem folgenden Befehl ein Image der Bytes aus dem vorherigen Schritt. Sie müssen 2048 durch die korrekte Anzahl von Sektoren ersetzen. Wenn Ihre Sektoren nicht 512 Byte groß sind, müssen Sie auch den Parameter bs = bytes_per_sector angeben:
Sie sollten jetzt eine Image-Datei mit dem Namen boot.mbr in Ihrem aktuellen Verzeichnis haben.
Untersuchen Sie Ihre fdisk-Ausgabe erneut. Bestimmen Sie den Pfad zu Ihren Windows 7-Partitionen. Bei mir handelt es sich um die ersten beiden Partitionen, die beide NTFS verwenden. Meine zwei Wege sind
/dev/sda1
und/dev/sda2
HINWEIS: Von jetzt an werde ich verwenden
/dev/sda1
und/dev/sda2
auf die Windows 7-Partitionen verweisen. Sie müssen diese in den richtigen Pfad auf Ihrem System ändern.Erstellen Sie ein Loopback-Gerät aus der Image-Datei:
sudo losetup /dev/loop0 boot.mbr
Damit können Sie das loop0-Gerät einem virtuellen Laufwerk zuordnen.
Erstellen Sie irgendwo eine Datei, die definiert, was der virtuellen Festplatte zugeordnet wird. Diese Datei wird vom Geräte-Mapper verwendet. Ich lege meine in ~ / vm / virtual_windows_disk_def.
Erstellen Sie in ~ / vm / virtual_windows_disk_def eine Zeile für jedes Mapping. Jede Zeile sollte die Form "logic_start_sector num_sectors linear destination_device 0" haben. linear bedeutet nur, dass wir eine lineare Karte erstellen. destination_device sollte der Gerätepfad sein. Die 0 bedeutet, dass das Mapping beim ersten Sektor des Zielgeräts beginnt. Die erste Zeile muss boot.mbr dem Start der virtuellen Festplatte zuordnen. Sie benötigen für jede Windows 7-Partition eine zusätzliche Zeile. Dies sind die Inhalte meiner Datei:
So habe ich für jede Zeile die richtige Anzahl von Sektoren erhalten:
Prüfen Sie, ob / dev / mapper / control vorhanden ist. Wenn nicht, laden Sie das dm_mod-Kernelmodul:
modprobe dm_mod
sudo dmsetup create virtual_windows_disk ~/vm/virtual_windows_disk_def
Stellen Sie sicher, dass / dev / mapper / virtual_windows_disk die richtige Größe hat.
Starten Sie fdisk im interaktiven Modus, um zwei Partitionen auf Ihrer / dev / mapper / virtual_windows_disk-Diskette einzurichten, um die beiden Windows-Partitionen auf Ihrer / dev / sda-Diskette perfekt und genau abzugleichen. Sie können die Hilfe und Anweisungen auf dem Bildschirm verwenden, um diesen Vorgang abzuschließen. Wenn Sie die Partitionen nicht perfekt einrichten können, Beenden, anstatt diese Partitionen zu schreiben / speichern . Soweit ich weiß, sind dies die Dinge, die für jede Partition übereinstimmen müssen: Startsektor, Endsektor, ob bootfähig ist oder nicht, und Dateisystemtyp. Ersetzen Sie 512 durch die Anzahl der Bytes pro Sektor für Ihre / dev / sda-Platte (dadurch wird fdisk im interaktiven Modus gestartet):
sudo chown your_username:group /dev/mapper/virtual_windows_disk
Geben Sie diesen Befehl in die Eingabeaufforderung ein:
bootrec /FixMbr
Jetzt sollte Ihre VM bootfähig sein, aber machen Sie das noch nicht.
Bestimmen Sie, welcher Laufwerkbuchstabe Ihrer Windows-Installation zugewiesen wurde, indem Sie die folgenden Befehle in die Eingabeaufforderung eingeben:
dir C:
dir D:
Einer davon sollte anzeigen, dass der Laufwerksbuchstabe nicht leer ist und Ihre Dateien enthält. Das ist der richtige Laufwerksbuchstabe, den Sie für den nächsten Schritt benötigen. Für mich war es Laufwerk C.Sie müssen jetzt Ihre Laufwerksignatur in der Registrierung suchen. Geben Sie diese Befehle in die Eingabeaufforderung ein:
reg load HKLM\Computer_System D:\Windows\system32\config\system
regedit
Aktivieren Sie das Eingabeaufforderungsfenster, ohne den Registrierungseditor zu schließen. Geben Sie die folgenden Befehle ein:
diskpart
DISKPART & gt;
select disk 0
Für den nächsten Schritt müssen Sie die Buchstaben am Ende durch die ersten vier Zeichensätze ersetzen, die aktuell im Wert für diesen Eintrag im Registrierungseditor angezeigt werden. Sie müssen jedoch die Reihenfolge der Sätze umkehren. Wenn Sie beispielsweise ab cd ef gh sehen, benötigen Sie am Ende des Befehls ghefcdab:
DISKPART & gt;
uniqueid disk id=ghefcdab
exit
. Das diskpart-Programm sollte beendet werden, so dass Sie sich in der normalen Eingabeaufforderung befinden.reg unload HKLM\Computer_System
Vorschlag
Die Schritte zum Erstellen des Loop-Back-Geräts und zum Einrichten des virtuellen Laufwerks / dev / dm-0 mit dem Device-Mapper müssen bei jedem Booten von Linux wiederholt werden. Sie sollten ein Skript erstellen, damit Sie das Skript vor dem Start von virt-manager ausführen können. Derzeit liegt dieses Skript nicht im Rahmen dieser Antwort, aber ich kann es später hinzufügen, nachdem ich eines für mein System erstellt habe.
Tipps
quelle