Das Szenario:
- Ich bin ein freiberuflicher Softwareentwickler, der hauptsächlich unter Linux entwickelt (Python, MySQL, MongoDB usw.).
- Mein Arbeitscomputer ist ein Lenovo-Laptop mit einem i7-Prozessor und 8 GB RAM. Big HD + 128 GB SSD. Das Betriebssystem ist Ubuntu Linux
Möglicherweise erhalte ich in naher Zukunft einige .NET / C # -Projekte. Ich suche daher einige Anleitungen zu folgenden Themen:
- Sollte ich mich für eine Dual-Boot-Lösung entscheiden oder virtuelle Maschinen für Windows-Anwendungen verwenden?
- Wenn ich Dual-Boot gehe: Wie lautet die empfohlene Installationsreihenfolge? Windows zuerst oder Linux zuerst? (Ich suche nach einer vollständigen Neuinstallation von Ubuntu, um trotzdem das neueste LTS zu erhalten, damit ich alles neu installieren kann.)
- Wenn ich auf VM umsteige: Wie vergleichen VMWare Workstation und VirtualBox die Leistung?
- Mein Traumaufbau wäre wahrscheinlich der folgende:
- Dual-Boot
- Wenn ich jedoch in Linux boote, kann ich die Windows-Partition als virtuelle Maschine booten. Ist das möglich?
- Und / oder: Wenn ich in Windows boote, kann ich die Linux-Partition als virtuelle Maschine booten. Ist das möglich?
linux
windows
boot
virtualization
visual-studio
codeape
quelle
quelle
Antworten:
Andere haben den Rest Ihrer Frage behandelt, aber ich sehe, sie haben diesen Teil unadressiert gelassen:
Die kurze Antwort lautet ja.
Die lange Antwort lautet ja, aber mit einer Reihe von Vorbehalten und Folgen.
Bis zu diesem Januar (als wir neue Computer bekamen) hatte ich meinen Arbeitscomputer so konfiguriert, dass er entweder dual bootete oder Linux als Host für eine Windows 7-VM verwendete, die direkt auf die Windows-Partition zugegriffen hat. Ich habe nie versucht, Windows als Host für eine Linux-VM mit direkter Festplatte zu verwenden, aber es ist auch möglich. Mein Computer hat ein älteres BIOS / MBR verwendet. Ich bin mir nicht sicher, wie ich dies tun soll, wenn Sie UEFI / GPT verwenden.
Ich habe mich für VirtualBox entschieden, aber soweit ich weiß, sollte dies auch mit VMWare möglich sein.
Die Leistung war für meine Zwecke vollkommen akzeptabel. Ich gab Windows 1 CPU-Kern, 2 GB Speicher, 1 Monitor, und ich erinnere mich nicht, wie viel Videospeicher. Die VM war in der Lage, Videos abzuspielen und mit meiner Java-GUI-Anwendung und vielen Websites mit umfangreichen Inhalten zu arbeiten.
Ich werde die Verrücktheit besprechen, bevor ich ins Detail gehe:
Der Wechsel zwischen Native-Boot- und VM-Modus von Windows 7 löste die Warnung von Windows aus, dass meine Kopie von Windows nicht echt sei. Abhängig von Ihrer Lizenz kann MS dies als Verstoß gegen die Lizenz betrachten, indem es auf zwei Hardwarekomponenten installiert. Ich musste auch meine Installation "reparieren", da sich viele der Low-Level-Treiber für die reale Hardware und die "VM-Hardware" unterscheiden.
Jedes Mal, wenn Windows Update ausgeführt wurde (oder eine andere E / A-Operation für große Datenträger), wurde meine Festplatte unter Last zerstört und alles auf beiden Computern wurde langsam. Durch das Verschieben jedes Betriebssystems auf eine eigene Festplatte wurde dieses Problem behoben. Die Verwendung eines Solid-State-Laufwerks hätte das Problem ebenfalls gelöst.
Aus irgendeinem Grund mochte Ubuntu es gelegentlich nicht, nach dem Anhalten (vielleicht 20% der Zeit) wieder aufzuwachen, was einem harten Ausschalten für meine Windows-VM entsprach. Infolgedessen schaltete ich die VM jeden Abend aus, bevor ich den Host ausschaltete.
Ich musste sehr vorsichtig sein, um niemals zu versuchen, die Windows-Partition unter Linux zu mounten, um mögliche Datenbeschädigungen / -verluste zu vermeiden. Ich habe schnell eine udev-Regel hinzugefügt, um dies zu verhindern.
Okay, wenn das nicht so schlimm klingt, hier sind die Details: Die nützlichste Referenz, die ich dazu gefunden habe, ist dieses Blog: http://www.rajatarya.com/website/taming-windows-virtualbox-vm . Hier sind die Schritte zusammengefasst:
RTFM. Ja wirklich. Sie verwenden Befehle, die Ihr Dateisystem beschädigen können, wenn Sie sie falsch ausführen.
Finden Sie die Partitionen.
Ändern Sie die Berechtigungen für Ihre Partitionen (alternativ können Sie Ihre VM mit sudo booten, aber alle Dateien, die auf dem freigegebenen Host- / Gast-Laufwerk erstellt wurden, gehören root).
Erstellen Sie einen MBR, damit der Gast nicht versucht, den normalen Bootloader zu verwenden.
Verwenden Sie einen internen VirtualBox-Befehl, um das für die VM zu verwendende vmdk-Image zu erstellen.
Erstellen Sie die VM. Lass es das vmdk benutzen, das du gerade erstellt hast.
Booten und reparieren Sie Ihre Installation.
Ich würde erwarten, viele der gleichen Probleme mit einem Windows-Host zu finden, aber Linux würde wahrscheinlich eleganter mit der unterschiedlichen Hardware umgehen. Es könnte jedoch einfacher sein, eine gemeinsam genutzte / home-Partition (und möglicherweise / opt-Partition) zu verwenden und nur unterschiedliche Root-Partitionen für die nativen und die Gastcomputer zu verwenden.
quelle
Ich mache im Allgemeinen das Gegenteil, das heißt, mein Heimsystem ist ein Windows 7-Computer und ich führe verschiedene Linux-Varianten als VM aus. Da Linux mit begrenzten Ressourcen recht gut funktionieren kann, funktioniert dies auch für mich, obwohl ich nur 4 GB RAM habe (obwohl dies bedeutet, dass ich eine einzelne VM gleichzeitig betreibe und ihr normalerweise höchstens 1024 MB RAM zur Verfügung stelle, um genügend RAM zu haben für Windows).
Mit 8 GB RAM können Sie problemlos eine Windows-VM ausführen. Ich denke, die einzige große Frage hier ist die Art der Ergebnisse, die Sie für Ihre Entwicklung messen möchten. Ich würde mich nur zögern, mich auf Performance- / Durchsatzmessdaten für Elemente zu verlassen, die Sie in einer VM entwickeln (es sei denn, diese werden in einer ähnlichen VM-Umgebung mit denselben Spezifikationen auf der ganzen Linie bereitgestellt). Ansonsten solltest du gut gehen.
Und um Kommentare in anderen Threads zu kommentieren: Wenn Sie wissen, dass Sie Anwendungen entwickeln, die eine große Menge an Ressourcen erfordern, ist die Optimierung für dieses Ziel der richtige Weg VMs) vorzuziehen.
Ich habe sowohl VMWare als auch VirtualBox verwendet, und ich habe auch keine wirklichen Leistungseinbußen mit gesehen. Ich bin nicht so weit gegangen, die internen VMs zu vergleichen, ich habe einfach keine negativen Auswirkungen von beiden Plattformen bemerkt (benutze VirtualBox immer noch zu Hause und VMware bei der Arbeit).
quelle
Es hängt davon ab, wie Sie arbeiten und wie sich das Betriebssystem anfühlen soll .
Duales Booten bedeutet Neustart und Booten, wenn Sie das Betriebssystem ändern möchten, dies dauert einige Zeit . Arbeiten Sie als Freiberufler 8 Stunden am Stück mit einem Projekt, ohne "Ihre" Sachen zu machen ("Ihre Sachen" wären Sie auf Ihrem Linux-Boot).
Wenn Sie unter Windows 8 Stunden hintereinander arbeiten und dann den Rest des Tages unter Linux verbringen, müssen Sie den Dual-Boot-Modus verwenden. Wenn Sie 30 Minuten arbeiten und dann etwas in Linux tun möchten, wechseln Sie für 3 Stunden wieder zur Arbeit, dann wieder in Linux usw. Dann würde ich VM wählen.
Wenn Sie sich nicht sicher sind, machen Sie beides. Dual Boot und unter Windows eine VM ausführen. Sie werden einen deutlichen Unterschied zwischen beiden sehen und Sie werden einen gegenüber dem anderen bevorzugen.
Ich persönlich benutze ein VM nur zum Testen neuer Linux-Dists und manchmal einen gefälschten Server beim Entwickeln (es ist von unschätzbarem Wert, ein VM vermasseln zu können, und es ist weitaus weniger mühsam, es auf Ihrer tatsächlichen Festplatte zu tun.). VM hinkt auch hinterher und fühlt sich weniger reaktionsfreudig an. Ich brauche mein Betriebssystem, um reaktionsfreudig und reibungslos zu sein. Der VM fehlt in diesem Bereich. Also bevorzuge ich Dualboot.
Es gibt auch ein Problem beim Freigeben von Dateien. Es ist mehr Arbeit, einen Dual-Boot zu teilen (stellen Sie sich vor, Sie bearbeiten eine Datei im Windows-Boot und booten dann unter Linux, um zu erkennen, dass Sie eine Zeile verpasst haben und in Windows, dem Albtraum, neu starten müssen!), Wo Sie auf einem VM NFS oder Samba verwenden können Dateien zwischen den Betriebssystemen in Echtzeit zu teilen, keine Probleme.
Auch über nicht genug Widder, wie Aboba sagte, Müll sage ich. Ich starte 4GB und eine VM in Windows8. Denken Sie jedoch daran, welche Ressourcen Ihr Projekt benötigt.
quelle
Oder wie geht es dir? Sie interessieren sich für .net / C #. Warum also nicht einfach Mono unter Linux verwenden? Es ist sehr plattformübergreifend im Sinne von Java.
quelle
Persönlich habe ich auf halbem Weg viele positive Erfahrungen gemacht. Verwenden Sie einen Hypervisor wie Xen. Sie können dann sowohl Linux als auch Windows unter einem leichten Mikrokern-Hypervisor ausführen. Sie können auch keinen signifikanten Leistungseinbruch hinnehmen und diese Konfiguration ist weitaus flexibler So können Sie jederzeit problemlos Ressourcen zwischen den beiden zuweisen.
Dies entspricht nahezu Ihrem Traum-Setup, da Sie die beiden Betriebssysteme jederzeit unabhängig voneinander booten oder herunterfahren können, um Ressourcen auf die anderen zu verteilen, und Sie keine Leistungseinbußen feststellen können (in der Realität ist dies möglicherweise ein Bruchteil eines Prozent langsamer) In einigen Fällen werden Sie dies jedoch nicht bemerken, es sei denn, Sie führen ein Benchmarking durch, um dies zu testen.
Der einzige Haken ist, dass Ihre CPU für bestimmte Funktionen die Visualisierung unterstützen muss, jedoch bei jedem i7 (afaik), sodass dies für Sie kein Problem sein sollte.
BEARBEITEN:
Xen enthält einen eigenen Mikrokernel, Debian wird nicht benötigt, um es auszuführen. Der einzige Grund, warum ein Linux-System neu konfiguriert werden muss, ist, dass das Konfigurationsprogramm ein Linux-Programm ist, das Sie auf einem der Gäste ausführen (Gast ist der Begriff, den Xen verwendet eine VM bedeuten). Sie können jederzeit nur Linux, nur Windows oder beides ausführen, aber Sie müssen Linux ausführen, um die Xen-Einstellungen zu konfigurieren. Es ist daher ratsam, ein kleines Linux im Hintergrund laufen zu lassen, um dies bei Bedarf zu tun.
Hardware kann auf verschiedene Arten gehandhabt werden. Xen bietet eine Reihe virtueller Geräte, mit denen ein Teil der Hardware von mehreren Gästen gleichzeitig verwendet werden kann, z. B. Netzwerkkarten und Soundkarten usw.
Bei Hardware, die nicht auf diese Weise funktioniert oder von jeweils nur einem Gast benötigt wird, können Sie jederzeit auswählen, welcher Gast direkten Zugriff auf die Hardware hat und diese jederzeit umschalten Zeit. Dies kann durchgeführt werden, um einem bestimmten Gast echten Zugriff auf die Grafikkarte zu gewähren, wenn Sie ein beschleunigtes Hochgeschwindigkeits-Rendering ohne Virtualisierungsaufwand benötigen .
Es ist auch möglich, dass ein Gast die Grafikkarte wie oben beschrieben direkt im Passthrough-Modus verwendet, andere jedoch mithilfe eines lokalen VNC-ähnlichen Protokolls anzeigt, wodurch der Bildschirm anderer Gäste in Fenstern angezeigt wird (denken Sie wie eine virtuelle Box oder ein Remotedesktop). während man die Grafikkarte direkt kontrollieren kann; Sie können auch einfach zwischen den Gästebildschirmen wechseln, um jeweils einen direkten Zugriff zu erhalten.
Im Gegensatz zu der Annahme, dass dieses Setup effizient ist, ist es tatsächlich eine der wenigen Möglichkeiten, beide Betriebssysteme gleichzeitig auszuführen, während die native Leistung in beiden effektiv beibehalten wird ein solches Setup, um einen Hochleistungsspielautomaten oder andere anspruchsvolle Systeme zu betreiben.
quelle
Nach meiner Erfahrung (ich arbeite auch an .Net-Apps, während ich coole Sachen teste und algo-Probleme unter Linux löse) ist Dual-Boot die beste Wahl.
Wie andere betont haben, fühlt sich die Verwendung einer VM manchmal langsam und nicht an, was zu Schmerzen führen kann.
Eine weitere Sache, auf die ich hinweisen möchte, ist, dass Sie sich Zeit nehmen und versuchen, eine VM auszuführen und zu prüfen, ob Sie damit vertraut sind.
Bezüglich der Reihenfolge
1) installiere zuerst Windows und dann Linux (bevorzugt)
2) installiere zuerst Linux und dann Windows (dann musst du den Bootloader neu installieren)
Eine weitere Sache, die ich hinzufügen möchte, ist, dass Sie für kleine .Net-Projekte sogar Linux mit Mono verwenden können, sodass Sie nicht von Windows zu Linux wechseln müssen.
quelle
Ich beschäftige mich seit etwas mehr als einem Jahr mit der Entwicklung von Linux / Visual Studio, angefangen mit Visual Studio bis hin zum Umstieg auf Linux (ich mag apt, zsh und vim!).
Ich habe mit Windows angefangen, das Ubuntu in VMWare Player hostet, was ziemlich gut funktioniert hat, sicherlich großartig, wenn Sie hauptsächlich Visual Studio-Entwicklung betreiben und nur gelegentlich ein reines Linux-Paket oder was auch immer benötigen. Mit der Zeit wollte ich, dass meine Arbeit häufiger in der Linux-Umgebung ausgeführt wird, und die VM-Integration hatte ein paar ...
Da ich hauptsächlich auf Linux-Entwicklung umgestiegen bin (viel AS3 in IntelliJ und einige Node + Python) und nur gelegentlich Windows benötigte (ASP.NET-Site), habe ich dies auf Ubuntu umgestellt und eine VirtualBox gehostet (unter Verwendung einer disk2vhd -> .vdi von meine alte Windows-Festplatte). Nach einigem Hin und Her bin ich angesichts der Arbeitsteilung, die ich im Allgemeinen habe, ziemlich zufrieden. Wenn Sie jedoch eine ernsthafte Menge an Visual Studio ausführen, möchten Sie wahrscheinlich, dass Windows Linux hostet. Entweder VirtualBox oder VMWare Player sollten in Ordnung sein.
Ich sollte jedoch ein paar Punkte beachten: Mit den standardmäßigen Ubuntu 14.04 AMD-Videotreibern verlangsamt die 3D-Beschleunigung von VirtualBox Visual Studio ~ 10-100x, sodass die Beschleunigung auf Kosten einer gewissen Trägheit deaktiviert wird. und du willst wirklich auf einer SSD laufen)
quelle