47

Я хотел бы получить максимальную производительность в обеих ОС и возможность переключения между ними без перезагрузки. У меня много памяти (32 ГБ) и места на диске.

Два простых варианта:

  1. Двойная загрузка - это не позволяет мгновенного или почти мгновенного переключения между операционными системами
  2. Использовать виртуальную машину (например, VirtualBox) - это значительно снижает производительность размещенной ОС, особенно для графики

Было бы неплохо (скажем, с помощью сочетания клавиш или другим подобным способом) переключаться между двумя ОС, одна из которых горячая, а другая «горячая в режиме ожидания».

17 ответов17

164

Существует два дополнительных способа запуска Windows и Linux, которые вы не упомянули в своем вопросе:

  1. Вы можете установить Windows Subsystem для Linux, если вы используете 64-битную Windows 10. Это позволит вам запускать некоторые программы для Linux непосредственно в Windows.
  2. Вы можете запустить обе операционные системы бок о бок (в буквальном смысле) согласно этому примеру:
52

Я считаю, что решение с наименьшими издержками будет использовать Linux в качестве основной ОС и использовать KVM (виртуальная машина на основе ядра, но не KVM-переключатель, хотя это также можно использовать) для виртуализации Windows. Вы можете добиться того, что в настоящее время производительность приближается к работе на голом железе, и вы можете даже пройти через вторичный графический процессор к виртуальной машине или иметь один выделенный графический процессор и использовать интегрированный графический процессор для хоста. Вы также можете использовать Looking Glass для гораздо более гибкого решения, чем использование spice (это то, что по умолчанию используется диспетчером Virt, и оно практически не отличается от использования удаленного рабочего стола.) Https://forum.level1techs.com/t/looking-glass -guides-помощь-и-поддержка /122387

Единственная сложность - аппаратная совместимость. Существует множество изысков, таких как необходимость использования процессора и материнской платы, совместимых с Intel VT-D или аналога AMD, необходимость достаточно нового графического процессора с UBI VBIOS (или получения VBIOS от производителя), через которые проходят микросхемы вашего ввода-вывода. которая помогает с выделением периферии для виртуальной машины и т. д.

Я бы порекомендовал прочитать этот пост в блоге, чтобы понять, что вам нужно сделать, чтобы настроить его. Это определенно не так просто, как использование virtualbox или VMWare, но если вы настроите его с помощью менеджера виртуальных машин, вы можете пропустить множество ручных шагов, которые выполнил этот парень. Есть также намного больше информации обо всем этом на вики Arch в KVM, QEMU и VFIO. https://heiko-sieger.info/running-windows-10-on-linux-using-kvm-with-vga-passthrough/

С 2600k вам нужно будет перейти на версию не-K и проверить, поддерживает ли ваша материнская плата также VT-D. У меня была такая же проблема с 3700k и несовместимой материнской платой, и мне пришлось поменять их обе, но в итоге я заработал немного денег на покупках и продажах на ebay.

Чтобы пояснить некоторые термины, которые я использовал, вот несколько коротких описаний.

Virt-manager (или Virtual Machine Manager) - это приложение с графическим интерфейсом для управления виртуальными машинами с использованием KVM. Вы можете думать об этом как о том, чтобы сделать ваш опыт намного ближе к тому, что было бы, если бы вы использовали VMWare или VirtualBox. Он предоставляет вам мастер для настройки виртуальной машины, позволяет менять оборудование, которое передается, показывает графики использования ресурсов и позволяет управлять питанием. Более подробная информация и скриншоты доступны на сайте здесь: https://virt-manager.org/

Spice предоставляет вам удаленный доступ к вашей виртуальной машине. Это очень похоже на использование удаленного рабочего стола, как при использовании, так и по производительности, но по умолчанию используется virt manager. Я хотел бы быть более конкретным с моим описанием, но я не использовал его много, и даже веб-сайт довольно расплывчатый относительно того, что это конкретно. https://spice-space.org/

Зазеркалье является альтернативой использованию чего-то вроде Spice, но с очень низкой задержкой. Он копирует буфер кадров из вашего графического процессора в системную память, а затем выплевывает его на экран. Он все еще находится на ранней стадии разработки, но работает очень хорошо и гораздо больше подходит для приложений, требующих более гибкого решения. Полное руководство по настройке доступно на веб-сайте проекта: https://looking-glass.hostfission.com/quickstart.

Другой альтернативой Spice и Looking Glass является просто подключение дисплея к одному из выходов пропущенного через GPU. Это более отзывчиво, но потребует другого дисплея или переключения входов на том же дисплее.

11

Как уже упоминалось во всех других ответах на этот вопрос, виртуализация - это путь. Один из способов минимизировать потери производительности - запустить Windows в качестве основной ОС и виртуализировать легкий дистрибутив Linux. С макушки головы вы можете попробовать:

Выбрав легкий дистрибутив, вы сможете снизить производительность настолько, чтобы настроить систему, которая вас устраивает.

7

Я сделал это в условиях высокой производительности и достиг почти достаточной производительности для приложений, которые мы запускали. Это не столько «вот как это сделать», но два примера того, как я это сделал, достиг адекватной производительности и решил проблему.

Для науки о данных и разработки программного обеспечения

На моих нынешних рабочих станциях (ноутбук и рабочая станция) Windows 10 и Ubuntu установлены параллельно на двух отдельных разделах. После загрузки компьютера я могу выбрать Windows или Ubuntu и загрузить любую из операционных систем. В Ubuntu я использую VirtualBox для загрузки собственного раздела Windows и запуска его, как и любой другой виртуальной машины (см. Здесь).

Все работает: перетаскивание, общий буфер обмена и обмен файлами. Я постоянно запускаю большие многопоточные таблицы Excel (не стреляйте - я их не создавал!) у меня на виртуальной машине и все чертовски дорого.

Для геофизических, геологических и инженерных работ

Несколько лет назад я построил аналогичную установку, используя CentOS и Windows 7. Это было сделано для того, чтобы мои коллеги могли запускать дорогостоящие, требовательные к производительности геофизические симуляции в Linux, в то же время имея доступ к программному обеспечению для 2D и 3D картографирования, которое также требовало бы высокой производительности в Windows 7 (вместе с Outlook и остальной частью пакета Microsoft). Мы опробовали VirtualBox, но, потратив деньги, в конечном итоге решили проблему с помощью VMware Workstation и графического процессора (стоимость была тривиальной по сравнению с зарплатами и лицензированием программного обеспечения). Для наших приложений мы достигли производительности, близкой к собственной производительности в Windows, и все были очень довольны настройкой.

Это были довольно мясные машины для своего времени (около 2010 года): Quadro 4000, двухъядерный Xeon с четырьмя ядрами и 32 ГБ памяти. Самая трудная часть сборки этих установок (насколько я помню) была связана с аппаратным RAID-контроллером. Я обслуживал около десятка машин, используя эту настройку, и у нас никогда не было ни одной проблемы в течение всего срока действия проекта, для которого эти машины были приобретены (~ 2 года). Это был фантастический результат для нас, потому что если бы одна машина, скажем, неделю не работала, это стоило бы нам большей потери производительности, чем сама рабочая станция!

Заключение

Вы можете добиться очень хорошей производительности, используя опцию двойной загрузки, описанную выше. Я делал это, используя VirtualBox и VMware разных случаев, используя комбинацию в дистрибутивах Linux (Mint, Ubuntu и CentOS) и версиях Windows (7, 10), и всегда достигал адекватной производительности для своих нужд.

Другим преимуществом этой настройки является то, что вы можете уничтожить раздел или оставить Windows или Linux позади, если а) ваши обстоятельства изменились, или б) эта установка не соответствует вашим потребностям. Если производительность не снижается, у вас также есть запасной выход из простой загрузки непосредственно в операционную систему, где вам нужно немного больше производительности.

Наконец, записка о лицензировании: При загрузке Windows , изначально он будет видеть различные аппаратные и допрашивать вас о лицензиях. Это меньше проблем с Windows 10, которая будет просто раздражать вас, когда вы будете работать вместе. Я не могу вспомнить, как мы решили это для тех геофизических рабочих станций; Я помню, что у нас была корпоративная лицензия и, возможно, некоторая помощь от представителя Microsoft.

Эпилог: Remote X и VirtualGL

Я также настроил рабочие станции с использованием VirtualGL и кластера GPU для высокопроизводительных симуляций нефти. Я даже делал это в AWS, но я не рекомендую это по ряду причин: стоимость, производительность и удобство.

7

Приложения Unix/Linux GUI, которые используют технологический стек X11 (большинство из них), по своей природе способны отображаться на удаленном компьютере (включая сценарий виртуальной машины, подключенной к сети, и ее хоста).

Вы можете установить сервер отображения X11 (есть несколько бесплатных и несвободных опций) на вашем компьютере с Windows, запустить вашу систему Linux (или даже несколько систем Linux) на виртуальной машине, и сделать фактическую тяжелую графику в Windows сервер X11. Приложения с графическим интерфейсом в системе linux будут подключаться к серверу дисплея X11 через локальную сеть (как настроить это здесь не входит, так как для этого есть много разных способов). Указатели: переменная окружения DISPLAY, ssh с пересылкой X11, XDMCP).

5

В зависимости от того, чего вы пытаетесь достичь, вы можете попробовать Wine.

С https://www.winehq.org/:

Wine (изначально аббревиатура "Wine Is Not the Emulator") - это уровень совместимости, позволяющий запускать приложения Windows в нескольких операционных системах, совместимых с POSIX, таких как Linux, macOS и BSD.

Это позволит вам запускать Linux и (некоторые) приложения Windows параллельно в Linux.

Список приложений Windows, о которых известно, что они работают с Wine, можно найти по адресу https://appdb.winehq.org/.

Лично я использую его для запуска некоторых игр в Linux, которые используют DirectX, который не имеет версии для Linux. Известно, что такие приложения, как Microsoft Office, работают с ним.

5

Я не знаю ни одного способа сделать это, у которого нет больших предостережений, связанных с этим.

Если бы это был Chromebook, вы могли бы использовать Crouton для достижения чего-то подобного. но то, что это делает, это делит ядро между Chrome OS и другим дистрибутивом, номинально Ubuntu. Поскольку в Windows и Linux используются разные ядра, такой подход невозможен. Они не будут хорошо играть вместе.

Для загрузки операционной системы ядру необходим низкоуровневый доступ к аппаратному обеспечению, а одновременное использование двух разных ядер (Windows и Linux) будет непросто, если не невозможно.

Некоторая виртуализация, вероятно, является вашим единственным выходом, если вы настаиваете на использовании одного компьютера. Я не использую Mac, но из того, что я видел, Parallels довольно прост - вы можете "переключаться" между операционными системами с помощью горячей клавиши. Я использовал VMWare как в Windows, так и в Linux, и был удивлен производительностью размещенной (гостевой) операционной системы, она очень близка к исходной (хотя, разумеется, я не тестировал графически интенсивные рабочие нагрузки). VirtualBox с открытым исходным кодом и бесплатный, он работает нормально, но VMWare работает намного лучше. Я думаю, что есть ограниченная бесплатная версия.

Если вы настаиваете на том, чтобы у обеих операционных систем была собственная производительность, то для этого достаточно двойной загрузки. Если у вас быстрый SSD (скажем, Samsung 960 или аналогичный), перезагрузка не займет много времени.

5

Аппаратная виртуализация слишком проблематична. Хотя это хорошо для 90% вещей, остальные 10% иногда блокируют вас и заканчивают тем, что вы отбрасываете всю концепцию.

Кто-то упомянул об этом в одном из комментариев, но я думаю, что параллельные машины, использующие KVM-переключатель, являются наиболее эффективным способом сделать то, что вы просите.

Я уже пару лет работаю на двух компьютерах с Linux и Windows. У меня два 32-дюймовых монитора сидят рядом друг с другом: один подключен к машине Linux, а другой подключен к машине Windows.

У меня есть подвижный регулируемый стол для клавиатуры / мыши, который позволяет мне стоять или сидеть и центрироваться перед любым (или обоими) мониторами с помощью клавиатуры / мыши.

Ключевым моментом является то, что KVM-переключатель позволяет вам немедленно переключаться между управлением коробкой Linux или управлением коробкой Windows.

Вы также можете пойти еще дальше и приобрести Synergy, что полностью устраняет необходимость в KVM-переключателе, используя программное обеспечение для переключения мыши и клавиатуры между компьютерами.

Больше не надоедать с двойной загрузкой, накладными расходами KVM / VirtualBox / VMWare или несовместимостью, и вы все равно чувствуете, что это один компьютер.

4

У всего есть плюсы и минусы. Вот те, которые работают для меня по состоянию на май 2018 года:

  • VirtualBox: это работает. Сейчас. Каждый день. Я использую хост Windows и Ubuntu VM. Все отлично, включая поддержку нескольких мониторов и работу в сети (я использую мостовой режим, поэтому каждая виртуальная машина просто отображается в сети отдельно от хоста). Я не фанат решений, контролируемых "большими парнями", но, честно говоря, Oracle сделал этот продукт правильно (по крайней мере, на данный момент).

  • Запустите несколько компьютеров, это отличный способ! Синергия может даже позволить вам навести на них мышь и клавиатуру. DDM USB KVM тоже хороши, но они дороги!

  • Двойная загрузка: я запускаю четырех или более загрузок на большинстве моих компьютеров. Вам нужно будет узнать о GPT и устаревших разделах MBT и о том, как каждая из ваших ОС управляет ими. Refind делает потрясающую работу, помогая вам сделать все правильно, особенно если у вас есть полу-современное оборудование. Несмотря на то, что я всегда настраивал загрузку Windows-Ubuntu (-Mac) на всех своих компьютерах, на практике я никогда не перезагружался на другую ОС. Это просто слишком разрушительно. Вместо этого всегда заканчивайте тем, что посвятили каждый компьютер определенному набору задач в одной ОС.

  • Запустите X-сервер в Windows и извлеките окна Linux из сетевой виртуальной машины. Это можно сделать; Некоторое время я успешно запускал x2go. Но посмотрите следующий пункт, почему бы мне не пойти по этому пути.

  • Использовать виртуальную машину в любой (любой) сети: я пытался разрабатывать на основе виртуальной машины AWS, виртуальных машин vSphere и любых других комбинаций, и вы всегда откажетесь от этого в течение короткого времени, потому что вы являетесь рабом сети. проблемы, с которыми вы НЕ хотите иметь дело в середине своего развития. Даже не думайте об этом, даже если у вас безумно потрясающие сетевые ресурсы.

В заключение я должен отметить, что я всегда развиваюсь на выделенной машине Ubuntu, когда это возможно. Решения VirtualBox спасли мою задницу в корпоративной Америке. Зайдите с изображением виртуальной машины в вашем кармане, установите VirtualBox на свою новую дрянную лапту Windows, иди!

4

Технически вы можете включить спящий режим в обеих системах и вывести систему из спящего режима после перевода другой системы в спящий режим. Это будет быстрее и удобнее, чем фактическая перезагрузка. Я делаю это на моей нынешней машине.

Кажется, до сих пор не возникало никаких проблем, поскольку Linux использует специальную область подкачки для хранения образа гибернации, в то время как Windows использует системный раздел.

4

Вы хотите coLinux. Он почти идеально соответствует вашим требованиям - ядро Linux работает как специальный привилегированный процесс под Windows, без влияния на производительность ядра (хотя периферийные устройства все еще виртуализированы, а графика проходит по протоколу X11). Но, к сожалению, проект больше не разрабатывается ... и с тех пор другие подходы (VirtualBox и т.д.) Созрели и предлагают гораздо лучший пользовательский опыт.

2

В дополнение к другим решениям, предлагаемым здесь, существует также подход кросс-виртуализации, который я однажды попробовал:

  • Установка с двойной загрузкой, машина может загружаться в Windows или Linux
  • Раздел данных (/home и Documents and Settings) отдельно от системного раздела
  • Виртуализация (VirtualBox, VMware и т.д.), Установленная на каждой из двух ОС, с «клоном» соответствующей другой установки ОС в качестве ВМ
  • Сетевой интерфейс находится в режиме моста, поэтому хост и гость кажутся друг другу как два отдельных компьютера в одной локальной сети.
  • Образы виртуальных машин находятся в разделе, отдельном от разделов данных.
  • Каждая виртуальная машина может обращаться к разделу данных для гостевой ОС как к необработанному устройству (а не к образу диска)

Это по-прежнему означает, что у вас будут накладные расходы на виртуализацию для одной из двух ОС. Но вы можете выбрать при загрузке, кто станет хостом, а кто - гостем.

Данные передаются через сеть (например, путем установки Samba на компьютер с Linux).

Вам нужно будет поддерживать каждую настройку ОС дважды (установка хоста и виртуальной машины)- технически у вас есть четыре компьютера, если вы не используете ярлык, описанный ниже.

Поскольку Linux (по крайней мере, различные версии Ubuntu) легко адаптируется к изменяющемуся оборудованию (до такой степени, что я мог разорвать диск со своего старого ноутбука, установить его на новом и иметь только сетевые адаптеры для перенастройки), вы могли бы также Linux VM загружает систему из необработанного раздела. Таким образом, изменения, внесенные в хост Linux, также будут отражены в ВМ и наоборот, единственными исключениями являются настройки, привязанные к конкретному аппаратному устройству.

Лицензирование Windows может быть предостережением здесь. (Тогда я был на Windows 2000, где все это было проще.) Что касается Windows, вы используете ее на двух разных аппаратных конфигурациях (процессор, диск, сетевой адаптер). Хотя я не уверен в юридических последствиях, но процедура активации продукта может потребовать от вас получения двух лицензий. (Если вы можете заставить Windows работать с необработанным разделом на виртуальной машине, она, вероятно, обнаружит изменение оборудования и потребует повторной активации каждый раз, когда вы переключаетесь между конфигурацией хоста и гостя.)

2

Забудьте о виртуальных машинах, Wine и двойной загрузке. Я настоятельно рекомендую просто иметь две машины, одну безголовую Windows и удаленный рабочий стол из Linux, используя что-то вроде Remmina.

Это довольно легко с помощью общего буфера обмена и домашних папок. Это может быть непрактичным для тех, кому нужен только ноутбук, но это отличный вариант, если вы можете просто сидеть за столом. Они не должны быть новыми машинами; просто станьте старше примерно в 2012 году, вы можете лежать вокруг.

2

Я делаю это (хотя я переключаюсь между macOS и Windows), имея Windows на виртуальной машине в облаке, а не на моем Mac. Ранее я использовал Boot Camp для двойной загрузки, а затем локально размещенную виртуальную машину с использованием VMware Fusion, но я обнаружил, что облачный Windows и подключение к удаленному рабочему столу наиболее удобны при переключении.

(Я просто могу использовать CMD-TAB для мгновенного переключения рабочих столов.)

Я надеялся, что этот опыт полезен для вас.

1

Некоторые нестандартные предложения, которые могут соответствовать определенным нишевым случаям использования:

Если вы бегаете без головы, Линус бежит почти везде и удивительно легок. Я уже запускал его как службу Windows и смог подключиться к нему с помощью ssh-клиента или X-сервера, работающего в Windows (поэтому все графические интерфейсы Linux просто отображаются).

В том же духе, вы можете приклеить Raspberry Pi к задней панели ноутбука, подключить его к USB-порту и запустить оба компьютера одновременно. Опять же, вы должны использовать Windows-машину для доступа к Linux-машине, но с этим решением вы все равно можете запустить безголовый доступ к X/ssh, но вы также можете использовать удаленный рабочий стол (RDP) в PI и использовать его реализацию X, которая должна получить лучший опыт работы с Linux (когда я проверял в последний раз, бесплатные X-серверы для Windows были медленными, сложными в настройке и подверженными ошибкам)

Ни один из них не даст вам высокоскоростную полноэкранную рабочую станцию Linux, но для определенных ситуаций они находят интересные решения.

И я просто пошутил насчет клейкой ленты ...

в основном.

0

Хотя я бы порекомендовал ВМ (плавные режимы VirtualBox и VMWare действительно полезны для лучшей интеграции), есть еще одна возможность:

Существуют X-серверы для Windows, такие как Xming, и мощные решения для удаленных рабочих столов, такие как xpra.
Используя один из них, вы можете запустить Linux на виртуальной машине (или даже такое решение, как AndLinux, которое запускает ядро Linux на Windows) и отображать приложения на собственном Display Server или с помощью инструмента удаленного рабочего стола.
Таким образом, вы можете получить больше собственных окон и, в зависимости от виртуальной машины, повысить производительность для приложений пользовательского интерфейса.

0

Используйте систему GNU/Linux по вашему выбору на вашем хосте, а затем решение PaaS. Той, которая возможна для тебя, будет « Тень ».

Shadow - это мощный ПК с Windows 10 для игры, работы, просмотра.

Делайте все, что вы любите делать с компьютером. Но лучше.

Он в основном работает как приложение на вашем хосте, но на самом деле это компьютер в облаке. Вы просто можете легко переключиться на приложение, точно так же, как и на любое другое приложение.

https://youtu.be/vVOKBaIxXVA?t=6

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .