Chciałbym najwyższą wydajność w obu systemach operacyjnych i możliwość przełączania się między nimi bez ponownego uruchamiania. Mam dużo pamięci (32 GB) i miejsca na dysku.
Dwie proste opcje to:
- Podwójny rozruch - nie pozwala na natychmiastowe lub prawie natychmiastowe przełączanie między systemami operacyjnymi
- Użyj maszyny wirtualnej (np. VirtualBox) - znacznie obniża to wydajność hostowanego systemu operacyjnego, szczególnie w przypadku grafiki
Byłoby wspaniale (na przykład za pomocą skrótu klawiaturowego lub innej podobnej metody) przełączać się między dwoma systemami operacyjnymi, z których jeden jest gorący, a drugi „ciepły w trybie gotowości”.
Odpowiedzi:
Istnieją dwa dodatkowe sposoby uruchamiania systemów Windows i Linux obok siebie, o których nie wspomniałeś w swoim pytaniu:
źródło
Uważam, że rozwiązaniem przy najmniejszym obciążeniu byłoby użycie Linuksa jako podstawowego systemu operacyjnego i użycie KVM (maszyny wirtualnej opartej na jądrze, a nie przełącznika KVM, który również mógłby zostać użyty) do wirtualizacji Windows. Wydajność jest obecnie bliska działania na czystym metalu, a nawet możesz przejść przez dodatkowy procesor graficzny do maszyny wirtualnej lub mieć jeden dedykowany procesor graficzny i użyć zintegrowanego procesora graficznego dla hosta. Możesz także skorzystać z Looking Glass, aby uzyskać znacznie bardziej responsywne rozwiązanie niż używanie przypraw (to jest to, co domyślnie używa menedżer virt i jest zasadniczo takie samo jak korzystanie ze zdalnego pulpitu.) Https://forum.level1techs.com/t/looking-glass -guides-help-and-support / 122387
Jedyną trudną częścią jest kompatybilność sprzętowa. Istnieje wiele dziwactw, takich jak potrzeba procesora i płyty głównej zgodnych z Intel VT-D lub odpowiednikiem AMD, potrzeba wystarczająco nowej karty graficznej, która ma UEFI VBIOS (lub uzyskanie VBIOS od producenta), przez jakie układy przechodzi Twoje IO co pomaga w dedykowaniu urządzeń peryferyjnych maszynie wirtualnej itp.
Polecam przeczytanie tego posta na blogu, aby dowiedzieć się, co trzeba zrobić, aby go skonfigurować. Zdecydowanie nie jest to tak proste, jak korzystanie z virtualbox lub VMWare, ale jeśli skonfigurujesz starszego menedżera virt, możesz pominąć wiele ręcznych kroków, które wykonał ten facet. Jest o wiele więcej informacji na ten temat na wiki Arch pod KVM, QEMU i VFIO. https://heiko-sieger.info/running-windows-10-on-linux-using-kvm-with-vga-passthrough/
Z 2600k, musisz przejść na wersję inną niż K i sprawdzić, czy Twoja płyta główna obsługuje również VT-D. Miałem ten sam problem z 3700k i niekompatybilną płytą główną i musiałem je wymienić, ale ostatecznie zarobiłem trochę pieniędzy na zakupach i sprzedaży w serwisie eBay.
Aby rozwinąć nieco terminologii, której użyłem, oto krótkie opisy.
Virt-manager (lub Virtual Machine Manager) to aplikacja GUI do zarządzania maszynami wirtualnymi za pomocą KVM. Możesz myśleć o tym jako o zbliżeniu swojego doświadczenia do tego, jak by to było, gdybyś używał VMWare lub VirtualBox. Daje kreatora do konfigurowania maszyny wirtualnej, pozwala zmieniać sprzęt, który jest przekazywany, wyświetla wykresy wykorzystania zasobów i pozwala zarządzać energią. Więcej informacji i zrzuty ekranu są dostępne na stronie tutaj: https://virt-manager.org/
Spice zapewnia zdalny dostęp do maszyny wirtualnej. Jest bardzo podobny do korzystania ze zdalnego pulpitu, zarówno w użyciu, jak i wydajności, ale domyślnie jest używany przez virt manager. Chciałbym być bardziej szczegółowy w swoim opisie, ale nie korzystałem z niego zbyt często, a nawet strona internetowa jest dość niejasna co do tego, co konkretnie. https://spice-space.org/
Poszukiwanie szkła jest alternatywą dla używania czegoś takiego jak przyprawa, ale z wyjątkowo niskim opóźnieniem. Kopiuje bufor ramki z twojego GPU do pamięci systemowej, a następnie wyrzuca go na ekran. Wciąż jest na bardzo wczesnym etapie rozwoju, ale działa bardzo dobrze i jest znacznie bardziej odpowiedni dla aplikacji wymagających bardziej responsywnego rozwiązania. Bardzo obszerny przewodnik konfiguracji jest dostępny na stronie internetowej projektu: https://looking-glass.hostfission.com/quickstart
Inną alternatywą dla Spice and Looking Glass jest po prostu podłączenie wyświetlacza do jednego z wyjść przechodzącego przez GPU. Jest to bardziej responsywne, ale wymaga innego wyświetlacza lub przełączania wejść na tym samym ekranie.
źródło
Jak wspomniano we wszystkich pozostałych odpowiedziach na to pytanie, wirtualizacja jest właściwym rozwiązaniem. Jednym ze sposobów zminimalizowania obniżenia wydajności byłoby uruchomienie systemu Windows jako podstawowego systemu operacyjnego i zwirtualizowanie lekkiej dystrybucji systemu Linux. Z czubka mojej głowy możesz spróbować:
Wybierając lekką dystrybucję, możesz być w stanie zmniejszyć wydajność na tyle, aby skonfigurować system, z którego jesteś zadowolony.
źródło
Aplikacje GUI dla systemów Unix / Linux korzystające ze stosu technologii X11 (większość z nich) z natury mogą być wyświetlane na zdalnym komputerze (w tym scenariusz maszyny wirtualnej podłączonej do sieci i jej hosta).
Możesz zainstalować serwer wyświetlania X11 (istnieje wiele bezpłatnych i niewolnych opcji) na komputerze z systemem Windows, uruchomić system Linux (lub nawet wiele systemów Linux) na maszynie wirtualnej i sprawić, że rzeczywiste podnoszenie grafiki odbywa się w systemie Windows -side serwer X11. Aplikacje GUI w systemie linux będą łączyć się z serwerem wyświetlania X11 za pośrednictwem sieci lokalnej (sposób konfiguracji jest tutaj poza zasięgiem, ponieważ istnieje wiele różnych sposobów na to. Wskaźniki: zmienna środowiskowa DISPLAY, ssh z przekazywaniem X11, XDMCP).
źródło
Zrobiłem to w warunkach wysokiej wydajności i osiągnąłem wydajność zbliżoną do wydajności natywnej dla uruchomionych aplikacji. To nie tyle „oto jak to zrobić”, ale dwa przykłady tego, gdzie to zrobiłem, osiągnąłem odpowiednią wydajność i rozwiązałem problem.
Dla nauki danych i rozwoju oprogramowania
Moje obecne stacje robocze (laptop i moja stacja robocza) mają zainstalowany system Windows 10 i Ubuntu obok siebie na dwóch osobnych partycjach. Po uruchomieniu komputera mogę wybrać system Windows lub Ubuntu i uruchomić system operacyjny. W systemie Ubuntu używam VirtualBox, aby uruchomić natywną partycję Windows i uruchomić ją jak każdą inną maszynę wirtualną ( patrz tutaj ).
Wszystko działa: przeciągnij i upuść, wspólny schowek i udostępnianie plików. Ciągle uruchamiam duże, wielowątkowe arkusze kalkulacyjne Excela (nie strzelaj - nie zbudowałem ich!) Na mojej maszynie wirtualnej i wszystko jest okropne.
Do prac geofizycznych, geologicznych i inżynierskich
Kilka lat temu zbudowałem podobną konfigurację przy użyciu CentOS i Windows 7. Dzięki temu moi koledzy mogli przeprowadzać drogie, wymagające wydajności symulacje geofizyczne w systemie Linux, a jednocześnie mieć dostęp do podobnie wymagającego wydajności oprogramowania do mapowania 2D i 3D w systemie Windows 7 (wraz z programem Outlook i resztą pakietu Microsoft). Wypróbowaliśmy VirtualBox, ale mając pieniądze do wydania, ostatecznie rozwiązaliśmy problem za pomocą VMware Workstation i tranzytu GPU (koszt był trywialny w porównaniu do wynagrodzeń i licencji oprogramowania). W przypadku naszych aplikacji osiągnęliśmy wydajność zbliżoną do natywnej w systemie Windows i wszyscy byli bardzo zadowoleni z instalacji.
Były to dość mięsiste maszyny jak na swój czas (około 2010 r.): Quadro 4000, podwójne czterordzeniowe Xeony i 32 GB pamięci. Najtrudniejsza część montażu tych konfiguracji (o ile pamiętam) dotyczyła sprzętowego kontrolera RAID. Za pomocą tej konfiguracji utrzymywałem około tuzina maszyn i nigdy nie mieliśmy ani jednego problemu przez cały czas trwania projektu, w którym te maszyny były kupowane przez (~ 2 lata). To był dla nas fantastyczny wynik, ponieważ gdyby choć jedna maszyna nie działała, powiedzmy tydzień, to straciłaby nas więcej wydajności niż sama stacja robocza!
Wniosek
Możesz osiągnąć bardzo dobrą wydajność, korzystając z opisanej powyżej opcji podwójnego rozruchu. Zrobiłem to przy użyciu VirtualBox i VMware przy różnych okazjach, używając kombinacji w dystrybucjach Linuksa (Mint, Ubuntu i CentOS) i wersjach Windows (7, 10) i zawsze osiągałem odpowiednią wydajność dla moich potrzeb.
Inną zaletą tej konfiguracji jest to, że możesz nuke'ować partycję i pozostawić Windows lub Linux, jeśli a) zmieni się Twoja sytuacja lub b) ta konfiguracja nie jest odpowiednia do twoich potrzeb. Jeśli wydajność nie obniża jej wydajności, możesz również uchylić się przed uruchomieniem bezpośrednio w systemie operacyjnym, w którym potrzebujesz nieco większej wydajności.
Wreszcie, uwaga na licencji: Jeśli rozruchu systemu Windows natywnie to będzie zobaczyć inny sprzęt i przesłuchać o licencji. Jest to mniejszy problem w systemie Windows 10, który po prostu będzie cię denerwował podczas pracy. Nie pamiętam, jak rozwiązaliśmy to dla tych geofizycznych stacji roboczych; Pamiętam, że mieliśmy licencję zbiorową i być może pomoc przedstawiciela Microsoft.
Epilog: Remote X i VirtualGL
Skonfigurowałem również stacje robocze za pomocą VirtualGL i klastra GPU do wysokowydajnych symulacji naftowych. Zrobiłem to nawet w AWS, ale nie polecam tego z wielu powodów: kosztów, wydajności i wygody.
źródło
Nie znam żadnej metody robienia tego, co nie wiązałoby się z żadnymi dużymi zastrzeżeniami.
Gdyby to był Chromebook, możesz użyć Croutona, aby osiągnąć coś takiego. ale to robi to, że dzieli jądro między Chrome OS a inną dystrybucją, nominalnie Ubuntu. Ponieważ Windows i Linux używają różnych jąder, takie podejście nie byłoby możliwe. Nie zagraliby razem dobrze.
Aby uruchomić system operacyjny, jądro musi mieć dostęp do sprzętu na niskim poziomie, a uruchomienie dwóch różnych jąder (Windows i Linux) obok siebie nie byłoby wcale łatwe, jeśli nie niemożliwe.
Pewien rodzaj wirtualizacji jest prawdopodobnie jedynym wyjściem, jeśli nalegasz na użycie jednego komputera. Nie używam komputera Mac, ale z tego, co widziałem, Parallels jest dość płynny - wtedy możesz „przełączać” między systemami operacyjnymi za pomocą skrótu. Używałem VMWare zarówno w systemie Windows, jak i Linux i byłem zaskoczony wydajnością hostowanego systemu operacyjnego (gościa), jest on bardzo zbliżony do natywnego (chociaż przyznano, że nie testowałem graficznie intensywnych obciążeń). VirtualBox jest open source i darmowy, działa dobrze, ale VMWare działa o wiele lepiej. Myślę, że jest ograniczona darmowa wersja.
Jeśli nalegasz na natywną wydajność obu systemów operacyjnych, jedynym sposobem na osiągnięcie tego jest podwójne uruchomienie. Jeśli masz szybki dysk SSD (powiedzmy Samsung 960 lub podobny), to ponowne uruchomienie nie musi trwać tak długo.
źródło
Wirtualizacja sprzętu jest po prostu zbyt problematyczna. Chociaż jest to dobre dla 90% rzeczy, pozostałe 10% czasami blokuje cię i ostatecznie powoduje, że złomujesz całą koncepcję.
Ktoś nawiązywał do tego w jednym z komentarzy, ale myślę, że maszyny obok siebie z przełącznikiem KVM są najbardziej wydajnym sposobem wykonywania tego, o co prosisz.
Od kilku lat obsługuję dwa równoległe komputery z systemem Linux i Windows. Mam dwa 32-calowe monitory ustawione obok siebie; jeden podłączony do komputera z systemem Linux, drugi podłączony do komputera z systemem Windows.
Mam regulowany stolik z klawiaturą / myszą, który pozwala mi stać lub siedzieć i wyśrodkować się przed jednym (lub obydwoma) monitorami za pomocą mojej klawiatury / myszy.
Kickerem jest to, że przełącznik KVM umożliwia natychmiastowe przełączanie między sterowaniem urządzeniem Linux lub sterowaniem urządzeniem Windows.
Możesz także pójść o krok dalej i zakupić Synergy, który całkowicie eliminuje konieczność używania przełącznika KVM za pomocą oprogramowania do przełączania myszy i klawiatury między maszynami.
Koniec z irytującymi podwójnymi uruchomieniami, narzutami KVM / VirtualBox / VMWare lub niezgodności, a nadal masz wrażenie, że jest to pojedynczy komputer.
źródło
W zależności od tego, co próbujesz osiągnąć, możesz spróbować wina.
Od https://www.winehq.org/ :
Umożliwiłoby to jednoczesne uruchamianie systemu Linux i (niektórych) aplikacji Windows w systemie Linux.
Listę aplikacji Windows, o których wiadomo, że współpracują z Wine, można znaleźć na stronie https://appdb.winehq.org/ .
Osobiście używam go do uruchamiania niektórych gier w systemie Linux, które używają DirectX, który nie ma wersji Linux. Aplikacje takie jak Microsoft Office są znane z tego, że z nim współpracują.
źródło
Technicznie możesz włączyć hibernację w obu systemach i wznowić system ze hibernacji po przełączeniu innego systemu w stan hibernacji. Będzie to szybsze i wygodniejsze niż faktyczne ponowne uruchomienie. Robię to na mojej bieżącej maszynie.
Jak dotąd wydaje się, że nie ma żadnego problemu, ponieważ Linux używa specjalnego obszaru wymiany do przechowywania obrazu hibernacji, podczas gdy Windows używa partycji systemowej.
źródło
Chcesz coLinux . Prawie idealnie pasuje do twoich wymagań - jądro Linux działa jako specjalny uprzywilejowany proces w systemie Windows, bez wpływu na wydajność jądra (choć urządzenia peryferyjne są nadal zwirtualizowane, a grafika przechodzi przez protokół X11). Ale niestety projekt nie jest już rozwijany ... i inne podejścia (VirtualBox, itd.) I od tego czasu dojrzał oferują znacznie lepsze doświadczenie użytkownika.
źródło
Wszystko ma zalety i wady. Oto te, które działają dla mnie od maja 2018 r .:
VirtualBox : Działa. Teraz. Codziennie. Prowadzę hosta systemu Windows i maszynę Wirtualną Ubuntu. Wszystko jest świetnie, w tym obsługa wielu monitorów i praca w sieci (używam trybu Bridged, więc każda maszyna wirtualna po prostu pojawia się w sieci oddzielnie od hosta). Nie jestem fanem rozwiązań kontrolowanych przez „wielkich facetów”, ale szczerze mówiąc Oracle właściwie to zrobił (przynajmniej w tej chwili).
Obsługuj wiele komputerów, to świetny sposób! Synergy pozwala nawet na popychanie myszą i klawiaturą. DDM USB KVM też są fajne, ale są drogie!
Podwójny rozruch: uruchamiam quad lub więcej na większości moich komputerów. Będziesz musiał dowiedzieć się o GPT i starszych partycjach MBT oraz o tym, jak zmieniają się ich systemy operacyjne. Refind robi niesamowitą robotę, pomagając ci to zrobić dobrze, szczególnie jeśli masz pół-nowoczesny sprzęt. Mimo że zawsze konfiguruję uruchamianie systemu Windows-Ubuntu (-Mac) na wszystkich moich komputerach, w praktyce tak naprawdę nigdy nie uruchamiam się ponownie w innym systemie operacyjnym. To po prostu zbyt destrukcyjne. Zamiast tego zawsze kończy się dedykowaniem każdego komputera do określonego zestawu zadań w jednym systemie operacyjnym.
Uruchom serwer X w systemie Windows i pobierz system Linux z maszyny wirtualnej w sieci. To może być zrobione; Przez jakiś czas z powodzeniem prowadziłem x2go. Ale zobacz następny punkt, dlaczego nie wybrałbym tej trasy.
Używaj maszyny wirtualnej w dowolnej (dowolnej) sieci: próbowałem tworzyć programistę poza maszyną wirtualną AWS, poza maszynami wirtualnymi vSphere i wszelkiego rodzaju innymi kombinacjami, i zawsze zrezygnujesz z tego w krótkim czasie, ponieważ jesteś niewolnikiem sieci problemy, z którymi NIE będziesz chciał sobie poradzić w trakcie rozwoju. Nawet o tym nie myśl, nawet jeśli masz niesamowicie niesamowite zasoby sieciowe.
Na koniec powinienem wspomnieć, że zawsze rozwijam się na dedykowanej maszynie Ubuntu, gdy tylko jest to możliwe. Rozwiązania VirtualBox uratowały mi tyłek w korporacyjnej Ameryce. Wejdź z obrazem maszyny wirtualnej do kieszeni, zainstaluj VirtualBox na nowym, kiepskim systemie Windows, gotowe!
źródło
Oprócz innych proponowanych tutaj rozwiązań istnieje również podejście „wirtualizacji”, które kiedyś wypróbowałem:
/home
iDocuments and Settings
) oddzielna od partycji systemowejTo wciąż oznacza, że będziesz mieć narzut wirtualizacji dla jednego z dwóch systemów operacyjnych. Ale możesz zdecydować o rozruchu, który będzie gospodarzem, a który gościem.
Dane są udostępniane przez sieć (np. Przez zainstalowanie Samby na Linux-ie).
Każdą konfigurację systemu operacyjnego należy przeprowadzić dwukrotnie (instalację hosta i maszynę wirtualną) - technicznie masz cztery komputery, chyba że użyjesz skrótu opisanego poniżej.
Ponieważ Linux (przynajmniej różne wersje Ubuntu) łatwo dostosowuje się do zmieniającego się sprzętu (do tego stopnia, że mógłbym zgrać dysk ze starego laptopa, zainstalować go w nowym i mieć tylko karty sieciowe do rekonfiguracji), możesz również Linux VM uruchamia system z surowej partycji. W ten sposób zmiany wprowadzone na hoście Linuxa zostaną również odzwierciedlone w maszynie wirtualnej i odwrotnie, a jedynymi wyjątkami są ustawienia związane z konkretnym urządzeniem sprzętowym.
Licencjonowanie systemu Windows może być tutaj zastrzeżeniem. (Wtedy byłem na systemie Windows 2000, gdzie wszystko było łatwiejsze.) Jeśli chodzi o system Windows, używasz go w dwóch różnych konfiguracjach sprzętowych (procesor, dysk, karta sieciowa). Nie jestem pewien co do konsekwencji prawnych, ale procedura aktywacji produktu może wymagać uzyskania dwóch licencji. (Jeśli możesz zmusić system Windows do uruchomienia surowej partycji na maszynie wirtualnej, prawdopodobnie wykryje zmianę sprzętu i będzie wymagać ponownej aktywacji za każdym razem, gdy przełączasz się między konfiguracją hosta i gościa).
źródło
Robię to (chociaż przełączam się między macOS i Windows), mając Windows na maszynie wirtualnej w chmurze i nie hostując na moim Macu. Wcześniej używałem Boot Camp do podwójnego rozruchu, a następnie lokalnie hostowanej maszyny wirtualnej za pomocą VMware Fusion, ale stwierdziłem, że posiadanie systemu Windows opartego na chmurze i korzystanie z Remote Desktop Connection było najwygodniejsze przy przełączaniu.
(Po prostu mogę użyć CMD-TAB do natychmiastowego przełączania komputerów stacjonarnych.)
Mam nadzieję, że to doświadczenie będzie dla Ciebie pomocne.
źródło
Zapomnij o maszynach wirtualnych, Wine i podwójnym uruchamianiu. Zdecydowanie zalecam po prostu posiadanie dwóch komputerów, Windows bez główki i zdalnego pulpitu od Linuksa, używając czegoś takiego jak Remmina .
Jest dość płynny dzięki współdzielonemu schowkowi i folderom domowym. Może to nie być praktyczne dla niektórych, którzy potrzebują tylko laptopa, ale jest to świetna opcja, jeśli możesz po prostu być przy biurku. Nie muszą to być nowe maszyny; po prostu starzeją się, około 2012 roku, być może leżałeś.
źródło
Kilka gotowych sugestii, które mogą pasować do niektórych niszowych przypadków użycia:
Jeśli biegniesz bez głowy, Linus działa prawie wszędzie i jest niezwykle lekki. Uruchomiłem go wcześniej jako usługę Windows i mogłem się z nim połączyć z klienta ssh lub serwera X działającego w systemie Windows (więc wszystkie GUI Linuxa po prostu się wyświetlają).
Wzdłuż tych samych linii możesz przykleić taśmę Raspberry Pi do tylnej części laptopa, podłączyć ją do portu USB i uruchomić oba komputery w tym samym czasie. Ponownie musisz użyć komputera z systemem Windows, aby uzyskać dostęp do komputera z systemem Linux, ale dzięki temu rozwiązaniu możesz nadal uruchamiać bezgłowy dostęp do X / ssh, ale możesz również zdalnie zainstalować pulpit (RDP) w PI i użyć jego implementacji X, która powinna dać ci lepsze wrażenia pulpitu z Linuksem (ostatnim razem, gdy sprawdzałem, darmowe serwery X dla Windows działały wolno, były trudne do skonfigurowania i podatne na błędy)
Żadne z nich nie zapewni szybkiej, pełnoekranowej stacji roboczej z Linuksem, ale w niektórych sytuacjach tworzą ciekawe rozwiązania.
I tylko żartowałem z taśmy klejącej ...
przeważnie.
źródło
Chociaż polecam maszynę wirtualną (płynne tryby VirtualBox i VMWare są naprawdę przydatne dla lepszej integracji), jest jeszcze jedna możliwość:
Istnieją X-Serwery dla Windows, takie jak Xming, i potężne rozwiązania pulpitu zdalnego, takie jak Xpra .
Za pomocą jednego z nich możesz uruchomić Linuksa na maszynie wirtualnej (lub nawet takie rozwiązanie jak AndLinux, który uruchamia jądro Linuksa w systemie Windows) i wyświetlać aplikacje na natywnym serwerze wyświetlania lub za pomocą narzędzia pulpitu zdalnego.
W ten sposób możesz uzyskać więcej rodzimych okien, aw zależności od maszyny wirtualnej lepszą wydajność aplikacji interfejsu użytkownika.
źródło
Użyj wybranego systemu GNU / Linux na hoście, a następnie rozwiązania PaaS. Taki, który jest dla ciebie możliwy, to „ Shadow ”.
Zasadniczo działa wtedy jako aplikacja na twoim hoście, ale w rzeczywistości jest komputerem w chmurze. Możesz po prostu bezproblemowo przełączać się na aplikację, tak jak w przypadku innych aplikacji.
https://youtu.be/vVOKBaIxXVA?t=6
źródło