Como posso instalar o Linux e o Windows 7 para rodar lado a lado, não exigindo reinicialização?

46

Eu gostaria do melhor desempenho em ambos os sistemas operacionais e a capacidade de alternar entre eles sem reinicializar. Eu tenho muita memória (32 GB) e espaço em disco.

As duas opções fáceis são:

  1. Inicialização dupla - Isso não permite uma troca instantânea ou quase instantânea entre sistemas operacionais
  2. Use uma VM (por exemplo, VirtualBox) - Isso prejudica o desempenho do sistema operacional hospedado de forma significativa, especialmente para gráficos

Seria ótimo (digamos, por meio de um atalho de teclado ou outro método semelhante) alternar entre os dois sistemas operacionais, um dos quais é quente e o outro é "quente no modo de espera".

    
por PowerDeveloper 01.05.2018 / 16:46

17 respostas

164

Existem duas maneiras adicionais de executar o Windows e o Linux lado a lado que você não mencionou na sua pergunta:

  1. Você pode instalar o Windows Subsystem para Linux se estiver executando o Windows de 64 bits 10. Isso permitirá que você execute um software Linux nativo no Windows.
  2. Você pode executar os dois sistemas operacionais lado a lado (literalmente) conforme este exemplo :
por 01.05.2018 / 17:02
52

Acredito que a solução com o mínimo de sobrecarga seria usar o Linux como seu sistema operacional principal e usar o KVM (máquina virtual baseada em kernel, não um comutador KVM, embora também pudesse ser usado) para virtualizar o Windows. Você pode obter desempenho vem muito perto de correr em nu metal hoje em dia, e você pode até mesmo passar por uma GPU secundária para a VM ou ter uma única GPU dedicada e usar uma GPU integrada para o host. Você também pode usar o Looking Glass para uma solução muito mais responsiva do que usar o spice (que é o que o virt manager usa por padrão e é essencialmente o mesmo que usar o desktop remoto). link

A única parte complicada é a compatibilidade de hardware. Há muitas peculiaridades, como a necessidade de uma CPU e placa-mãe compatível com Intel VT-D ou equivalente AMD, precisando de uma GPU suficientemente nova que tenha um UEFI VBIOS (ou obtendo o VBIOS do fabricante) para quais chips seu IO passará o que ajuda a dedicar periféricos à VM, etc.

Eu recomendaria ler este post do blog para ter uma ideia do que você teria que fazer para configurá-lo. Definitivamente, não é tão simples quanto usar o VirtualBox ou o VMWare, mas se você configurar o virtugh manager, você pode pular muitas etapas manuais pelas quais esse cara passou. Há também muito mais informações sobre tudo isso no wiki do Arch em KVM, QEMU e VFIO. link

Com um 2600k, você precisa fazer o downgrade para a versão não-K e verificar se a sua placa-mãe também suporta o VT-D. Eu tive esse mesmo problema com uma placa-mãe de 3700k e incompatível e tive que trocá-los, mas acabei ganhando um pouco de dinheiro com as compras e vendas do ebay.

Para elaborar um pouco sobre algumas das terminologias que usei, aqui estão algumas descrições curtas.

O Virt-manager (ou Virtual Machine Manager) é um aplicativo gráfico para gerenciar suas máquinas virtuais usando o KVM. Você pode pensar nisso como tornar sua experiência muito mais próxima do que seria se você estivesse usando VMWare ou VirtualBox. Ele fornece um assistente para configurar a VM, permite alterar o hardware que está sendo transmitido, mostra gráficos de uso de recursos e permite gerenciar a energia. Mais informações e capturas de tela estão disponíveis no site aqui: link

O Spice fornece acesso remoto à sua VM. É muito semelhante ao uso de desktop remoto, tanto em uso quanto em desempenho, mas é usado pelo virt virtor por padrão. Eu gostaria de poder ser mais específico com a minha descrição, mas eu não usei muito e até mesmo o site é bastante vago quanto ao que é especificamente. link

O espelhamento é uma alternativa ao uso de algo como o Spice, mas com latência extremamente baixa. Ele copia o buffer de quadros da sua GPU para a memória do sistema e, em seguida, o cospe na tela. Ainda é muito cedo no desenvolvimento, mas funciona muito bem e é muito mais adequado para aplicativos que exigem uma solução mais responsiva. Um guia muito abrangente para configuração está disponível no site do projeto: link

A outra alternativa ao Spice and Looking Glass é apenas conectar uma tela a uma das saídas de uma GPU passada. Isso é mais responsivo, mas exigirá outro display ou entradas de comutação no mesmo display.

    
por 01.05.2018 / 21:04
11

Como todas as outras respostas a essa pergunta mencionaram, a virtualização é o caminho a percorrer. Uma maneira de minimizar a penalidade de desempenho seria executar o Windows como seu sistema operacional principal e virtualizar uma distribuição Linux leve . No topo da minha cabeça, você pode tentar:

Ao escolher uma distro leve, você poderá atenuar o desempenho o suficiente para configurar um sistema com o qual esteja satisfeito.

    
por 01.05.2018 / 23:08
7

As aplicações Unix / Linux GUI que usam a pilha de tecnologia X11 (a maioria delas) são inerentemente capazes de serem exibidas em uma máquina remota (incluindo o cenário de uma VM conectada à rede e seu host) .

Você pode instalar um servidor de exibição X11 (existem várias opções livres e não-livres) em sua máquina windows, rodar seu sistema linux (ou até mesmo vários sistemas linux) em uma VM, e ter gráficos reais no servidor X11 do lado do Windows. Os aplicativos GUI no sistema linux se conectarão ao servidor de exibição X11 via rede local (como configurar isso está além do escopo aqui, pois há muitas maneiras diferentes de fazer isso. Ponteiros: A variável de ambiente DISPLAY, ssh com o encaminhamento X11, XDMCP).

    
por 02.05.2018 / 00:14
7

Eu fiz isso em uma circunstância de alto desempenho e alcancei quase o suficiente para o desempenho nativo dos aplicativos que estávamos executando. Isso não é tanto um 'aqui como fazer', mas dois exemplos de onde eu fiz isso e consegui desempenho adequado e resolvi um problema.

Para Data Science e Desenvolvimento de Software

Minhas estações de trabalho atuais (um laptop e minha estação de trabalho) têm o Windows 10 e o Ubuntu instalados lado-a-lado em duas partições separadas. Ao inicializar minha máquina, posso selecionar o Windows ou o Ubuntu e inicializar em qualquer sistema operacional. No Ubuntu, eu uso o VirtualBox para inicializar a partição nativa do Windows e executá-la como qualquer outra máquina virtual ( veja aqui ).

Tudo funciona: arrastar e soltar, placa de grampo compartilhada e compartilhamento de arquivos. Eu corro planilhas Excel grandes e multi-threaded constantemente (não atire - eu não as construí!) Na minha máquina virtual e tudo é ótimo.

Para trabalhos geofísicos, geológicos e de engenharia

Alguns anos atrás, construí uma configuração semelhante usando o CentOS e o Windows 7. Isso fez com que meus colegas pudessem executar simulações geofísicas dispendiosas e com alto desempenho no Linux, enquanto ainda conseguiam acessar mapeamentos 2D e 3D com um desempenho semelhante. software no Windows 7 (juntamente com o Outlook eo restante do pacote da Microsoft). Nós testamos o VirtualBox, mas com dinheiro para gastar, finalmente resolvemos o problema usando o VMware Workstation e o GPU pass-through (o custo era trivial comparado aos salários e licenciamento de software). Para as nossas aplicações, atingimos perto o suficiente para o desempenho nativo no Windows e todos ficaram muito felizes com a configuração.

Estas eram máquinas bastante carnudas para o seu tempo (por volta de 2010): Quadro 4000, Xeons quad-core duplos e 32 GB de memória. A parte mais árdua de montar essas configurações (tanto quanto me lembro), foi algo a ver com um controlador RAID de hardware. Mantive cerca de uma dúzia de máquinas usando essa configuração e nunca tivemos um único problema durante a vida útil do projeto para o qual essas máquinas foram adquiridas (~ 2 anos). Este foi um resultado fantástico para nós, porque se uma única máquina estivesse inoperante, digamos, uma semana, isso nos custaria mais em produtividade perdida do que a própria estação de trabalho!

Conclusão

Você pode obter um desempenho muito bom usando a opção de inicialização dupla descrita acima. Eu fiz isso usando VirtualBox e VMware de diferentes ocasiões, usando uma combinação em distribuições Linux (Mint, Ubuntu e CentOS) e versões do Windows (7, 10), e sempre obtive desempenho adequado para minhas necessidades.

A outra vantagem dessa configuração é que você pode eliminar a partição e deixar o Windows ou o Linux para trás se a) suas circunstâncias mudarem, ou b) essa configuração não for adequada às suas necessidades. Se o desempenho não está cortando, você também tem a escotilha de simplesmente inicializar diretamente no sistema operacional, onde precisa de um pouco mais de desempenho.

Por fim, uma observação sobre o licenciamento: se você inicializar o Windows nativamente, ele verá o hardware diferente e o interrogará sobre as licenças. Este é um problema menor com o Windows 10, que simplesmente vai importuná-lo enquanto você se dá bem com o seu trabalho. Não me lembro como resolvemos isso para as estações de trabalho geofísicas; Eu lembro que tínhamos uma licença de volume e possivelmente alguma ajuda de um representante da Microsoft.

Epílogo: Remote X e VirtualGL

Também configurei estações de trabalho usando VirtualGL e um cluster de GPU para simulações de petróleo de alto desempenho. Já fiz isso na AWS, mas não o recomendo por vários motivos: custo, desempenho e conveniência.

    
por 03.05.2018 / 11:25
5

Eu não estou ciente de nenhum método de fazer isso que não tenha algumas grandes ressalvas associadas a ele.

Se fosse um Chromebook, você poderia usar o Crouton para realizar algo assim. mas o que isso faz é compartilhar o kernel entre o Chrome OS e outra distro, nominalmente Ubuntu. Como o Windows e o Linux usam kernels diferentes, essa abordagem não seria possível. Eles não tocariam bem juntos.

Para inicializar o sistema operacional, o kernel precisa ter acesso de baixo nível ao hardware, e rodar dois kernels diferentes (Windows e Linux) lado-a-lado não seria muito fácil de realizar, se não impossível .

Algum tipo de virtualização é provavelmente seu único recurso se você insistir em usar um único computador. Eu não uso um Mac, mas pelo que tenho visto, o Parallels é bastante simples - você pode "alternar" entre sistemas operacionais com uma tecla de atalho. Eu usei o VMWare no Windows e no Linux e fiquei surpreso com o desempenho do sistema operacional hospedado (guest), ele é muito próximo do nativo (embora eu não tenha testado cargas de trabalho intensas graficamente). O VirtualBox é de código aberto e gratuito, funciona bem, mas o VMWare funciona muito melhor. Eu acho que há uma versão gratuita limitada.

Se você insistir em ter desempenho nativo para ambos os sistemas operacionais, a dupla inicialização será a única maneira de conseguir isso. Se você tem um SSD rápido (por exemplo, um Samsung 960 ou similar), a reinicialização não precisa demorar tanto.

    
por 01.05.2018 / 20:54
5

A virtualização de hardware é muito problemática. Embora seja bom para 90% das coisas, os outros 10% às vezes bloqueiam você e acabam fazendo com que você abandone todo o conceito.

Alguém fez alusão a isso em um dos comentários, mas eu acho que máquinas lado-a-lado usando um switch KVM é a maneira mais eficiente de fazer o que você está pedindo.

Eu tenho, há alguns anos, duas máquinas Linux e Windows lado-a-lado. Eu tenho dois monitores de 32 "próximos um ao outro, um conectado à máquina Linux, o outro conectado à máquina Windows.

Eu tenho uma mesa de teclado / mouse ajustável que me permite ficar de pé ou me sentar e me centralizar na frente de um dos monitores (ou ambos) com o teclado / mouse.

O kicker é que o switch KVM permite que você alterne imediatamente entre controlar a caixa do Linux ou controlar a caixa do Windows.

Você também pode ir além e comprar o Synergy, o que elimina completamente a necessidade do switch KVM usando o software para alternar o mouse e o teclado entre as máquinas.

Não há mais botas duplas irritantes, sobrecarga de KVM / VirtualBox / VMWare ou incompatibilidades, e você ainda se sente como se fosse um único computador.

    
por 02.05.2018 / 02:49
5

Dependendo do que você está tentando alcançar, você pode experimentar o Wine.

De link :

Wine (originally an acronym for "Wine Is Not an Emulator") is a compatibility layer capable of running Windows applications on several POSIX-compliant operating systems, such as Linux, macOS, & BSD.

Isso permitirá que você execute o Linux e (alguns) aplicativos do Windows lado a lado no Linux.

Uma lista de aplicativos do Windows que são conhecidos por trabalhar com o Wine pode ser encontrada no link .

Pessoalmente eu uso ele para rodar alguns jogos no Linux que usam o DirectX, que não tem uma versão do Linux. Aplicativos como o Microsoft Office são conhecidos por trabalhar com ele.

    
por 03.05.2018 / 14:17
4

Tecnicamente, você pode ativar a hibernação em ambos os sistemas e reiniciar o sistema da hibernação depois de colocar outro sistema na hibernação. Isso será mais rápido e mais conveniente do que a reinicialização real. Eu estou fazendo isso na minha máquina atual.

Parece não haver nenhum problema até agora, já que o Linux usa a área de troca especial para armazenar a imagem de hibernação enquanto o Windows usa a partição do sistema.

    
por 04.05.2018 / 00:25
4

Você quer coLinux . Ele atende às suas necessidades quase perfeitamente - o kernel do Linux sendo executado como um processo privilegiado especial no Windows, sem impacto no desempenho dentro do kernel (embora os periféricos ainda sejam virtualizados e os gráficos passem pelo protocolo X11). Mas , infelizmente, o projeto não está mais sendo desenvolvido ... e outras abordagens (VirtualBox, etc.) amadureceram desde então e oferecem uma experiência de usuário muito melhor.

    
por 02.05.2018 / 15:02
4

Tudo tem prós e contras. Aqui estão os que funcionam para mim a partir de maio de 2018:

  • VirtualBox : Isso funciona. Agora. Todo dia. Eu corro um host do Windows e um Ubuntu VM. Tudo é ótimo, incluindo suporte a vários monitores e rede (eu uso o modo Bridged para que cada VM apareça na rede separada do host). Não sou fã de soluções controladas por "os grandes", mas sinceramente a Oracle fez esse produto corretamente (pelo menos no momento).

  • Execute vários computadores, é um ótimo caminho a percorrer! A Synergy pode até deixar você apertar o mouse e o teclado em todas elas. O KVM do DDM USB também é legal, mas eles são caros!

  • Inicialização dupla: executo quad ou mais na maioria dos meus computadores. Você terá que aprender sobre GPT e partições MBT legadas e como cada um dos seus sistemas os manipula. Refind faz um trabalho incrível de ajudá-lo a acertar, especialmente se você tiver hardware semi-moderno. Mesmo que eu sempre configure o Windows-Ubuntu (-Mac) inicializando em todos os meus PCs, na prática eu nunca realmente reinicio para um sistema operacional diferente. É muito perturbador. Em vez disso, sempre acabam dedicando cada computador a um conjunto específico de tarefas em um sistema operacional.

  • Execute um servidor X no Windows e puxe as janelas do Linux de uma VM da rede. Pode ser feito; Eu corri x2go com sucesso por um tempo. Mas veja o próximo item do porque eu não seguiria esse caminho.

  • Use uma VM em qualquer rede: tentei desenvolver uma VM da AWS, VMs do vSphere e todos os outros tipos de combinações, e você sempre desistirá disso em pouco tempo, porque você é um escravo dos problemas de rede com os quais você não vai querer lidar no meio do seu desenvolvimento. Nem pense nisso, mesmo que você tenha recursos de rede incrivelmente incríveis.

Como nota final, devo mencionar que sempre desenvolvo em uma máquina Ubuntu dedicada sempre que possível. As soluções do VirtualBox salvaram minha bunda na América corporativa. Entre com uma imagem de VM no seu bolso, instale o VirtualBox no seu novo Windows lappie, vá!

    
por 03.05.2018 / 22:27
2

Além das outras soluções propostas aqui, há também uma abordagem de "virtualização cruzada" que uma vez tentei:

  • Configuração de inicialização dupla, a máquina pode inicializar no Windows ou no Linux
  • Partição de dados ( /home e Documents and Settings ) separada da partição do sistema
  • Virtualização (VirtualBox, VMware etc.) instalada em cada um dos dois sistemas operacionais, com um "clone" da respectiva configuração do sistema operacional como uma VM
  • A interface de rede está no modo de ponte, de modo que o host e o convidado aparecem um para o outro, como dois computadores separados na mesma LAN
  • As imagens da VM residem em uma partição separada das partições de dados
  • Cada VM pode acessar a partição de dados para o sistema operacional convidado como um dispositivo bruto (em vez de uma imagem de disco)

Isso ainda significa que você terá a sobrecarga de virtualização para um dos dois sistemas operacionais. Mas você pode decidir na inicialização qual deles é o host e qual é o convidado.

Os dados são compartilhados pela rede (por exemplo, instalando o Samba na caixa do Linux).

Você precisará manter cada configuração do SO duas vezes (a instalação do host e a VM) - tecnicamente, você tem quatro computadores, a menos que você use o atalho descrito abaixo.

Como o Linux (pelo menos os vários sabores do Ubuntu) se adapta facilmente a hardware em constante mudança (ao ponto de poder extrair o disco do meu laptop antigo, instale-o no novo e só tive os adaptadores de rede para reconfigurar) , você também pode fazer com que a VM Linux inicialize o sistema a partir de uma partição bruta. Dessa forma, as alterações feitas no host Linux também seriam refletidas na VM e vice-versa, sendo as únicas exceções vinculadas a um dispositivo de hardware específico.

O licenciamento do Windows pode ser uma ressalva aqui. (Naquela época, eu estava no Windows 2000, onde tudo isso era mais fácil.) No que diz respeito ao Windows, você o está executando em duas configurações de hardware diferentes (processador, disco, adaptador de rede). Embora eu não tenha certeza sobre as implicações legais, mas o procedimento de ativação do produto pode exigir que você obtenha duas licenças. (Se você conseguir que o Windows execute uma partição bruta em uma VM, ela provavelmente detectará uma alteração de hardware e exigirá reativação toda vez que você alternar entre a configuração de host e convidado.)

    
por 03.05.2018 / 16:58
2

Eu faço isso (embora eu alterne entre macOS e Windows) tendo o Windows em uma VM na nuvem e não hospedado no meu Mac. Eu usei anteriormente o Boot Camp para inicialização dupla e, em seguida, uma VM host local usando o VMware Fusion, mas encontrei que ter um Windows baseado em nuvem e usar a Conexão de Área de Trabalho Remota era o mais conveniente na troca.

(Eu só posso usar o CMD-TAB para trocar de área de trabalho instantaneamente.)

Espero que esta experiência seja útil para você.

    
por 01.05.2018 / 23:52
2

Esqueça as VMs, o Wine e a inicialização dupla. Eu recomendo strongmente ter simplesmente duas máquinas, a do Windows uma sem cabeça, e a área de trabalho remota do Linux usando algo como Remmina .

É razoavelmente uniforme através das pastas compartilhadas e da área de transferência compartilhada. Isso pode não ser prático para alguns que precisam apenas de um laptop, mas é uma ótima opção se você puder simplesmente estar em sua mesa. Eles não precisam ser máquinas novas; é só pegar os mais velhos por volta de 2012, você pode ter por aí.

    
por 03.05.2018 / 18:20
1

Algumas sugestões que podem caber em certos casos de uso de nicho:

Se você corre sem cabeça, Linus corre quase em qualquer lugar e é incrivelmente leve. Eu o executei como um serviço do windows antes e consegui me conectar a ele a partir de um cliente ssh ou de um servidor X em execução no Windows (Então todas as GUIs do Linux são exibidas).

Na mesma linha, você pode colar um framboesa pi na parte de trás do seu laptop, conectá-lo à porta USB e fazer com que ambos os computadores funcionem ao mesmo tempo. Novamente, você tem que usar sua máquina windows para acessar sua máquina Linux, mas com esta solução você ainda pode rodar headless para acesso X / ssh mas você também pode usar remote desktop (RDP) no PI e implementá-lo. melhor experiência de desktop linux (Na última vez que verifiquei, os servidores X gratuitos para Windows eram lentos, difíceis de configurar e propensos a erros)

Nenhum destes lhe dará uma estação de trabalho Linux de alta velocidade em tela cheia, mas para certas situações eles fazem soluções interessantes.

E eu estava apenas brincando sobre a fita adesiva ...

principalmente.

    
por 04.05.2018 / 23:41
0

Embora eu recomende uma VM (os modos contínuos do VirtualBox e do VMWare são realmente úteis para uma melhor integração), existe outra possibilidade:

Existem X-Servers para Windows como o Xming e poderosas soluções de desktop remoto como xpra .
Usando um deles você pode rodar um linux em uma VM (ou mesmo uma solução como AndLinux que executa um kernel Linux no Windows) e exibir os aplicativos no servidor de exibição nativo ou através da ferramenta de área de trabalho remota.
Dessa forma, você pode obter mais janelas nativas e, dependendo da VM, um melhor desempenho para aplicativos de interface do usuário.

    
por 07.05.2018 / 13:29
0

Use um sistema GNU / Linux de sua escolha em seu host e, em seguida, uma solução de PaaS. Um que é viável para você seria " Sombra ".

Shadow is a powerful Windows 10 PC to play, work, browse.

Do everything you love to do with a computer. But better.

Funciona basicamente como um aplicativo no seu host, mas na verdade é um computador na nuvem. Você só pode alternar para o aplicativo sem problemas, assim como você faria com qualquer outro aplicativo.

link

    
por 07.05.2018 / 14:34