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.
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:
dd if=/dev/zero of=boot.mbr count=2048
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:
0 2048 linear / dev / loop0 0
2048 3072000 linear / dev / sda1 0
3074048 447886719 linear / dev / sda2 0
So habe ich für jede Zeile die richtige Anzahl von Sektoren erhalten:
blockdev --getsize / dev / loop0
blockdev --getsize / dev / sda1
blockdev --getsize / dev / sda2
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 fdisk -b 512 /dev/mapper/virtual_windows_disk
sudo chown your_username:group /dev/mapper/virtual_windows_disk
- Starten Sie im Hauptmenü den Virtual Machine Manager (dies ist virt-manager).
- Wählen Sie in virt-manager Datei- & gt; Verbindung hinzufügen.
- Stellen Sie sicher, dass Hypervisor auf QEMU / KVM eingestellt ist.
- Stellen Sie sicher, dass das Kontrollkästchen für Mit Remote-Host verbinden nicht markiert ist.
- Vergewissern Sie sich, dass Autoconnect aktiviert ist.
- Klicken Sie auf "Verbinden", um die Verbindung herzustellen.
- Klicken Sie mit der rechten Maustaste auf die Verbindung (localhost (QEMU)) und wählen Sie Neu.
- Geben Sie einen Namen ein.
- Wählen Sie für "Wählen Sie aus, wie Sie das Betriebssystem installieren möchten" die Option "Vorhandenes Disk Image importieren".
- Klicken Sie auf die Schaltfläche "Weiterleiten".
- Klicken Sie unter "Vorhandenen Speicherpfad angeben" auf Durchsuchen und wählen Sie / dev / md-0 aus (auf meinem System wurde dies automatisch als Alias für / dev / mapper / virtual_windows_disk festgelegt)
- Fahren Sie fort, bis die VM startet. Es sollte ein Problem angezeigt werden, das behoben werden muss. Windows sollte aufgrund dieses Problems nicht booten können, aber wenn Sie diese Ergebnisse erhalten, sind Sie auf dem richtigen Weg.
- Erzwingen Sie das Herunterfahren der VM.
- Schließen Sie eine Windows Install / Repair-DVD / ein Image an die VM an. Auf meinem Computer war bereits Windows installiert. Toshiba bot jedoch die Möglichkeit, Installations- / Reparatur-DVDs zu erstellen. Für mich muss ich Datenträger 4 verwenden, da dies der Datenträger mit der Windows-Wiederherstellungsumgebung ist. Ich konnte ein ISO dieser Platte von Linux aus erstellen. Ich ziehe es vor, das ISO nur als CD-Laufwerk an die VM anzuschließen, anstatt die Diskette in das Laufwerk zu legen.
- Wählen Sie im VM-Detailbereich "Boot Options" aus. Stellen Sie sicher, dass "Boot-Menü aktivieren" aktiviert ist. Vergewissern Sie sich, dass Festplatte und CD-ROM markiert sind, um anzuzeigen, dass es sich um Startoptionen handelt. Bewegen Sie die Festplatte mit der CD-ROM direkt unter der CD-ROM mit den Pfeiltasten nach oben. Klicken Sie auf die Schaltfläche "Übernehmen", um Ihre Änderungen zu speichern. Wenn die VM jetzt startet, sollte sie etwas warten, bis Sie eine Änderung vornehmen. Drücken Sie die Taste F12, um auszuwählen, von welchem Gerät aus gestartet werden soll.
- Starten Sie die VM und drücken Sie F12, um auf das Startmenü zuzugreifen.
- Starten Sie vom DVD / CD-ROM-Laufwerk. Dadurch sollte Ihre Windows-Installations- / Reparaturdiskette gestartet werden.
- In den Anweisungen anderer Websites wird angegeben, dass Sie mit shift + F10 auf die Eingabeaufforderung zugreifen können. Dies ist jedoch für mich nicht hilfreich. Ich musste Systemwiederherstellungsoptionen auswählen (anstelle von Toshiba-Wiederherstellungsoptionen). Nächster.
- Auf meinem System wird automatisch eine Diagnose ausgeführt, und der Computer bietet an, ein gefundenes Problem zu beheben. Lassen Sie das Gerät nicht reparieren, wählen Sie die andere Option.
- Stellen Sie sicher, dass "Wiederherstellungsprogramme verwenden ..." anstelle von "Wiederherstellen des Computers mithilfe eines Systemabbilds ..." ausgewählt ist. Sie sollten Windows 7 in der Liste der Betriebssysteme sehen. Vergewissern Sie sich, dass ausgewählt ist, und klicken Sie auf "Weiter". Klicken Sie auf den Link "Erweiterte Optionen anzeigen ...".
- Wählen Sie Eingabeaufforderung öffnen.
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
- Navigieren Sie zu HKEY_LOCAL_MACHINE \ Computer_System \ MountedDevices. Suchen Sie den Eintrag \ DosDevices \ X: Dabei stimmt X mit dem Laufwerksbuchstaben von vor zwei Schritten überein. Für den nächsten Schritt müssen Sie die Daten aus diesem Eintrag referenzieren.
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
- Geben Sie diesen Befehl ein:
exit
. Das diskpart-Programm sollte beendet werden, so dass Sie sich in der normalen Eingabeaufforderung befinden.
- Schließen Sie den Registrierungseditor.
- Geben Sie dies in die Eingabeaufforderung ein:
reg unload HKLM\Computer_System
- Schließen Sie die Eingabeaufforderung.
- Wenn Sie eine Option zum Neustarten oder Herunterfahren sehen, tun Sie dies jetzt. Andernfalls weisen Sie die VM an, herunterzufahren. Wenn dies nicht funktioniert, erzwingen Sie das Herunterfahren der VM. Wenn Ihre VM heruntergefahren ist, lassen Sie es so. Wenn es neu gestartet wurde, fahren Sie es entweder manuell herunter oder erzwingen Sie es, wenn es nicht möglich ist.
- Überprüfen Sie in den VM-Details den Pfeil "Konfiguration", um weitere Optionen anzuzeigen. Klicken Sie auf die Schaltfläche "Host-CPU-Konfiguration kopieren". Klicken Sie auf die Schaltfläche "Übernehmen". Du bist fertig! Die nächsten Schritte helfen Ihnen zu bestätigen, dass alles korrekt funktioniert hat.
- Starten Sie die VM. Es sollte normal in Windows starten, ohne dass Probleme oder Reparaturen erforderlich sind. Fahren Sie die VM herunter.
- Lassen Sie den Blick während des nächsten Schrittes nicht vom Bildschirm ab. Fahren Sie Ihr System herunter, indem Sie sich für den Ruhezustand entscheiden (andernfalls müssen Sie einige Schritte wiederholen, wenn Sie Linux erneut starten). Starten Sie den Computer und starten Sie Windows direkt. Beobachten Sie den Bildschirm sorgfältig, um zu sehen, ob Reparaturen vorgenommen werden oder erforderlich sind. Wenn alles in Ordnung ist, sollte Windows ohne Reparaturen gestartet werden. Wenn auf meinem System die Dinge nicht richtig eingerichtet sind, wird Windows automatisch repariert und dann in Windows gebootet, als ob nichts Schlimmes passiert wäre. Aus diesem Grund sollten Sie den Bildschirm genau beobachten. Wenn eine Reparatur erforderlich ist, ist bei der Signaturänderung in diskpart ein Fehler aufgetreten. Booten Sie in Linux und wiederholen Sie die entsprechenden Schritte, wobei Sie sehr sorgfältig darauf achten, dass die Signatur korrekt ist.
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.