Dual boot with Windows (Português)
Este artigo detalha diferentes formas de se instalar Arch com Windows.
Informação importante
Limitações do Windows em UEFI versus BIOS
A Microsoft impõe limitações em que o método de carregamento do sistema irá depender da circunstância em que cada tipo de firmware e esquema de particionamento podem ser suportados de acordo com a versão utilizada do Windows:
- Versões do Windows XP, ambos x86 32-bit e x86_64 (também chamado de x64) (RTM e todos os Service Packs) não suportam inicialização em modo UEFI (IA32 ou x86_64) de qualquer disco (MBR ou GPT), OU em mdoo BIOS a partir de um disco GPT. Estas versões somente suportam inicialização no modo BIOS à partir de um disco MBR.
- Versões do Windows Vista ou 7 x86 32-bit (RTM e todos os Service Packs) somente suportam inicialização em modo BIOS à partir de discos MBR, não à partir de discos GPT. Elas não suportam inicializar pelo modo UEFI x86_64 ou UEFI IA32 (x86 32-bit). Somente suportam inicialização no modo BIOS e somente por discos MBR.
- Versões do Windows Vista RTM x86_64 (e somente RTM) suportam inicializar em modo BIOS somente por discos MBR, não por discos GPT. Não suportam inicializar pelo modo UEFI x86_64 UEFI ou UEFI IA32 (x86 32-bit). Suporta somente inicializar no modo BIOS por discos MBR.
- Versões do Windows Vista (SP1 ou acima, não RTM) e Windows 7 x86_64 suportam inicialização no modo UEFI x86_64 UEFI por discos GPT; OU em modo BIOS por discos MBR. Não suportam o modo UEFI IA32 (x86 32-bit) por discos GPT/MBR, UEFI x86_64 por discos MBR nem modo BIOS por discos GPT.
- Versões do Windows 8/8.1 x86 32-bit suportam somente inicializar pelo modo UEFI IA32 (32-bit) por discos GPT; OU em modo BIOS por discos MBR. Não suportam UEFI x86_64 por discos GPT/MBR, UEFI x86_64 por discos MBR, nem modo BIOS por discos GPT. No mercado, os únicos sistemas conhecidos por suportar UEFI IA32 (32-bit) são alguns Macs Intel antigos (anteriores à 2010) e tablets Windows com Intel Atom (Clover trail e Bay Trail). São casos em que inicializam SOMENTE no modo UEFI IA32 (32-bit) e SOMENTE por discos GPT.
- Versões do Windows 8/8.1 x86_64 suportam inicializar no modo UEFI x86_64 somente por discos GPT; OU somente em modo BIOS por discos MBR. Não suportam UEFI IA32, UEFI x86_64 por discos MBR, nem inicializar em modo BIOS à partir de discos GPT.
Para o caso de sistemas pré-instalados:
- Todos os sistemas pré-instalados com Windows XP, Vista ou 7 32-bit, independentemente do Service Pack, edição (SKU) ou presença de suporte ao UEFI via firmware, inicializam no modo BIOS em discos MBR por padrão.
- A maioria dos sistemas pré-instalados com Windows 7 x86_64, independentemente do Service Pack ou edição (SKU), usam BIOS em discos MBR por padrão. Sistemas mais recentes com Windows 7 pré-instaladossão conhecidos por inicializarem em modo UEFI x86_64 UEFI em discos GPT por padrão.
- TODOS os sistemas com Windows 8/8.1 pré-instalado inicializam em modo UEFI com disco GPT. A arquitetura do firmware (32 ou 64 bits) corresponde com a do Windows, isto é, Windows 8/8.1 x86_64 inicializa em modo UEFI x86_64 e Windows 8/8.1 32-bit inicializa em modo UEFI IA32 (32-bit).
A melhor maneira de detectar o modo em que o Windows está inicializando é a seguinte[1]:
- Inicialize o Windows;
- Pressione
Win+R
para abrir a caixa de diálogo "Executar"; - Nela, digite
msinfo32.exe
e pressione Enter; - Na janela Informações do Sistema, selecione Resumo do Sistema no lado esquerdo e veja o valor que está no item Modo da BIOS, no lado direito;
- Se o valor é
UEFI
, então o Windows está inicializando em modo UEFI/GPT. Se o valor éHerdado
, então o Windows está inicializando em modo BIOS/MBR.
Em geral, o Windows força o esquema de particionamento (GPT ou MBR) dependendo do modo de firmware usado (UEFI ou BIOS), isto é, se o Windows está no modo UEFI, ele só pode estar em um disco GPT; se o Windows está no modo BIOS, só pode estar num disco MBR. Esta é uma limitação imposta pelo instalador do Windows, e desde abril de 2014 não há oficialmente (por parte da Microsoft) suporte à instalação do Windows nas combinações UEFI/MBR ou BIOS/GPT. Portanto, o Windows suporta apenas as combinações UEFI/GPT ou BIOS/MBR.
Esta limitação não é imposta pelo Linux kernel, mas depende somente de cada gerenciador de boot usado e/ou como ele está configurado. A limitação do Windows deve ser considerada caso o usuário deseje inicializar ambos Windows e Linux pelo mesmo disco, haja vista que os procedimentos de instalação do gerenciador de boot dependem do tipo de firmware do sistema (BIOS ou UEFI) e da configuração de particionamento. Nos casos onde Windows e Linux inicializam pelo mesmo disco, é recomandável seguir o método usado pelo Windows, ou seja, escolher entre UEFI/GPT ou BIOS/MBR. Veja https://support.microsoft.com/kb/2581408 para mais informações.
Limitações da mídia de instalação
Os tablets Intel Atom System-on-Chip (Clover trail e Bay Trail) fornecem apenas UEFI IA32 (32-bit) sem suporte ao Legacy BIOS (CSM) (diferente da maioria dos sistemas com UEFI x86_64), devido ao Microsoft Connected Standby Guidelines para OEMs. Com a falta do suporte ao Legacy BIOS nesses sistemas e a falta do suporte ao UEFI 32-bit na ISO oficial do Arch (FS#53182), a mídia oficial de instalação não pode inicializar esses sistemas. Veja Unified Extensible Firmware Interface#UEFI firmware bitness para mais informações e possíveis soluções.
Limitações do gerenciador de boot em UEFI versus BIOS
A maioria dos gerenciadores de boot para linux instalados para um tipo de firmware não podem lançar ou carregar em cadeia gerenciadores de boot para outros tipos de firmware. Isto quer dizer que, se o Arch está instalado em modo UEFI/GPT ou UEFI/MBR em um disco e Windows está instalado em modo BIOS/MBR em outro disco, o gerenciador de boot UEFI usado pelo Arch não poderá carregar, em cadeia, o gerenciador em BIOS do Windows que está no outro disco. Da mesma forma, se o Arch está instalado em modo BIOS/MBR ou BIOS/GPT em um disco e o Windows está instalado em modo UEFI/GPT em outro disco, o gerenciador de boot que está em BIOS usado pelo Arch Arch não será capaz de carregar, em cadeia, o Windows em modo UEFI do outro disco.
As únicas exceções para isto são GRUB em Macs da Apple, em que GRUB no modo UEFI pode inicializar um sistema operacional instalado em modo BIOS via comando appleloader
(que não funciona em sistemas que não sejam Apple), e rEFInd que tecnicamente suporta inicializar um sistema operacional em legacy BIOS em sistemas UEFI, mas nem sempre legacy BIOS funciona em sistemas que não sejam Apple UEFI, de acordo com seu autor Rod Smith.
Contudo, se o Arch está instalado em modo BIOS/GPT em um disco e o Windows está instalado em modo BIOS/MBR em outro disco, então o gerenciador de boot em BIOS usado pelo Arch pode inicializar o Windows em outro disco, se o gerenciador de boot usado suportar o carregamento à partir de outro disco.
UEFI Secure Boot
Todos os sistemas com versões pré-instaladas do Windows 8/8.1 por padrão inicializam em modo UEFI/GPT e tem UEFI Secure Boot ativado por padrão. Isto é obrigatório pela Microsoft em todos os sistemas OEM pré-instalados.
A mídia de instalação do Arch Linux não suporta Secure Boot. Veja Secure Boot#Booting an installation medium.
É recomendável desativar o UEFI Secure Boot na configuração do firmware da placa-mãe manualmente antes de tentar inicializar o Arch Linux. O Windows 8/8.1 DEVE continuar a inicializar normalmente mesmo com o Secure boot desativado. O único problema a respeito de desativar o UEFI Secure Boot é que ele requer acesso físico ao sistema para desativá-lo através da configuração do firmware, já que a Microsoft explicitamente proibiu a existência de qualquer outro método remoto ou programável (de dentro do sistema operacional) de desativá-lo em todos os sistemas com Windows 8/8.1 pré-instalado.
Inicialização rápida e hibernação
Existem dois sistemas operacionais que podem ser hibernados, você pode hibernar Windows e inicializar o Linux (ou outro sistema operacional), ou você pode hibernar o Linux e inicializar o Windows, ou hibernar ambos.
Pelo mesmo motivo, se você compartilhar uma partição de sistema EFI entre Windows e Linux, ela pode ser avariada se você hibernar (ou desligar com inicialização rápida habilitada) e inicializar o Linux, ou hibernar o Linux e inicializar o Windows.
ntfs-3g adicionou uma maneira segura de prevenir a montagem de uma unidade de sistema de arquivos NTFS hibernada ao impedir que seja feita em modo de escrita, mas o presente no kernel Linux não tem essa segurança.
Windows não pode ler sistema de arquivos, como ext4, que normalmente são usados no Linux por padrão. Estes sistemas de arquivos não têm que ser considerados, a menos que você instale um driver do Windows para eles.
Configuração do Windows
Inicialização rápida é uma funcionalidade presente no Windows 8 e posterior que hiberna o computador ao invês de desligar de verdade para aumentar a velocidade de inicialzação.
Existem múltiplas opções na configuração do Windows para inicialização rápida e hibernação que são cobertas nas próximas seções.
- desabilitar inicialização rápida e desabilitar hibernação
- desabilitar inicialização rápida e habilitar hibernação
- habilitar inicialização rápida e habilitar hibernação
O procedimento de desabilitar a inicialização rápida é descrita aqui para Windows 8 e aqui para Windows 10 (ambos em inglês). Em qualquer caso se você desabilitou uma configuração, tenha certeza disso e desligue o Windows, antes de instalar o Linux; note que reiniciar não é suficiente.
Desabilitar inicialização rápida e desabilitar hibernação
Esta é a opção mais segura, e recomendada se você não tem certeza sobre este problema, já que isto precisa de um esforço mínimo do usuário quando reiniciar de um sistema operacional para outro. Você pode compartilhar a mesma partição de sistema EFI entre o Windows e Linux.
Desabilitar inicialização rápida e habilitar hibernação
Esta opção precisa da atenção do usuário quando reiniciar de um sistema operacional no outro. Se você quer inicializar o Linux enquanto o Windows está hibernando, o que e um caso comum, então
- você deve usar uma partição de sistema EFI (ESP) separada para Windows e Linux, e garanta que o Windows não mosta a ESP usada pelo Linux. Já que pode somente ter uma ESP por dispositivo de armazenamento, a ESP usada para linux deve estar localizada em um dispositivo diferente do usado pela ESP do Windows. Neste caso Windows e Linux podem ainda ser instalados no mesmo dispositivo em diferentes partições, se você colocar a ESP usada pelo Linux em outro dispositivo ao invês do mesmo usado para a partição raiz.
- você não pode montar como leitura-escrita qualquer sistema de arquivos no Linux que foi montado no Windows enquanto este está hibernando. Você ser bastante atento sobre isso, e também considere o comportanto de Automount.
- Se você desligar o Windows totalmente, ao invês de hibernar, você pode montar o sistema de arquivos como leitura-escrita.
Habilitar inicialização rápida e habilitar hibernação
As mesmas considerações aplicam como no caso "Desabilitar inicialização rápida e habilitar hibernação", mas desde que o Windows não pode ser desligado totalmente, somente hibernado, você nunca poderá montar qualquer sistema de arquivos que foi montado no Windows como leitura-escrita enquanto ele estiver hibernando.
Limitações de nomes de arquivo no Windows
O Windows está limitado em ter caminhos de arquivo menores do que 260 caracteres.
O Windows também impõe limitações no uso de certos caracteres em nomes de arquivo por razões vem desde o DOS:
-
<
(menor que) -
>
(maior que) -
:
(dois pontos) -
"
(aspas) -
/
(barra) -
\
(barra invertida) -
|
(barra vertical ou pipe) -
?
(interrogação) -
*
(asterisco)
Estas são limitações do Windows e não do NTFS: qualquer outro sistema operacional usando partições NTFS poderá funcionar normalmente. O Windows irá falhar em detectar estes arquivos e executar chkdsk
irá provavelmente acarretar sua remoção, o que significa uma potencial perda de dados.
NTFS-3G aplica as restrições do Windows a novos arquivos através da opção windows_names: ntfs-3g(8) § Windows_Filename_Compatibility (veja fstab).
Instalação
A maneira recomendada de instalar um sistema em dual-boot com Linux e Windows é instalar primeiro Windows, usando apenas parte do disco para suas partições. Ao terminar a instalação do Windows, inicialize o ambiente de instalação do Linux onde você poderá criar e redimensionar partições para Linux enquanto mantém as partições existentes do Windows intocadas. A instalação do Windows irá criar a partição de sistema EFI a qual poderá ser usada pelo seu gerenciador de boot no Linux gerenciador de boot.
Windows antes do Linux
Sistemas BIOS
Usando um gerenciador de boot para Linux
Poderão ser utilizados quaisquer gerenciadores de boot que suportem inicialização múltipla e BIOS.
Usando o gerenciador de boot do Windows
Com esta configuração, o gerenciador de boot do Windows carrega o GRUB, o qual inicializa o Arch.
Gerenciador de boot do Windows Vista/7/8/8.1
A seguinte seção contém trechos de https://www.iceflatline.com/2009/09/how-to-dual-boot-windows-7-and-linux-using-bcdedit/.
De modo a garantir que o gerenciador de boot do Windows detecte a partição Linux, uma das partições linux criadas precisarão ser FAT32 (neste caso, /dev/sda3
). O restante da instalação é similar a uma instalação típica. Algumas documentações alegam que a partição que será inicializada pelo Windows deverá ser uma partição primária, mas eu não tive problemas em fazê-lo com uma partição extendida.
- Ao instalar o gerenciador de boot GRUB, instale-o em sua partição
/boot
ao invés de no MBR.Nota: Por exemplo, minha partição/boot
é/dev/sda5
. Então, eu instalei GRUB em/dev/sda5
ao invés de/dev/sda
. Para ajuda ao fazer isso, veja GRUB/Tips and tricks#Install to partition or partitionless disk.
- De dentro do Linux, faça uma cópia das informações de boot com os seguintes comandos no terminal:
my_windows_part=/dev/sda3 my_boot_part=/dev/sda5 mkdir /media/win mount $my_windows_part /media/win dd if=$my_boot_part of=/media/win/linux.bin bs=512 count=1
- Inicialize o Windows e você poderá ver o arquivo linux.bin em
C:\
. Agora, execute cmd com privilégios de administrador (vá em Iniciar > Todos os programas > Acessórios, clique com o botão direito em Prompt de comando e selecione Executar como administrador):
bcdedit /create /d "Linux" /application BOOTSECTOR
- O BCDEdit irá retornar uma UUID que nos passos a seguir irei me referir a ela como apenas {ID}. Você vai precisar substituir a {ID} pelo número retornado. Um exemplo de {ID} é {d7294d4e-9837-11de-99ac-f3f3a79e3e93}.
bcdedit /set {ID} device partition=c: bcdedit /set {ID} path \linux.bin bcdedit /displayorder {ID} /addlast bcdedit /timeout 30
Reincie e aproveite. No meu caso, estou usando o gerenciador de boot do Windows, para que eu possa mapear o segundo botão do meu Dell Precision M4500 para inicializar Linux ao invés de Windows.
Sistemas UEFI
Se você já tiver o Windows instalado, então ele já criou algumas partições e preparou o disco no esquema GPT:
- Uma partição contendo o Windows Recovery Environment, geralmente com 499 MiB de tamanho, contendo os arquivos necessários para inicializar o Windows (isto é, equivalente a
/boot
no Linux), - uma partição de sistema EFI com o sistema de arquivos FAT32,
- uma partição Microsoft Reserved, geralmente com 128 MiB de tamanho,
- uma partição Microsoft com dados básicos de sistema e um sistema de arquivos NTFS, a qual corresponde a
C:
, - potencialmente um sistema de recuperação e backup e/ou dados secundários (que frequentemente corresponde a
D:
ou letras alfabéticas seguintes).
Usando o utilitário Gerenciamento de disco do Windows, veja como as partições estão nomeadas e que tipo está sendo reportado. Iso irá ajudar a compreender quais partições são essenciais ao Windows, e quais você poderá utilizar para outros propósitos.
Você poderá prosseguir com o particionamento, de acordo com suas necessidades. Tenha em mente que uma partição de sistema EFI (muitas vezes referida simplesmente como ESP) não deverá ser criada, o que poderá impedir a inicialização do Windows. Simplesmente monte a partição existente.
Deverá ser escolhido um gerenciador de boot capaz de inicializar em cadeia outras aplicações EFI para que o dual-boot entre Windows/Linux seja possível.
\EFI\Microsoft\Boot\bootmgfw.efi
) e exibí-lo em seu menu de boot automaticamente. Para o GRUB, siga GRUB (Português)#Windows instalado em modo UEFI/GPT para adicionar manualmente as entradas ao menu de boot ou GRUB (Português)#Detectando outros sistemas operacionais para um arquivo de configuração gerado automaticamente.Computadores que vem com versões mais novas do Windows costumam ter Secure Boot ativado. Você poderá ter de seguir alguns passos extras para desativar Secure Boot ou para criar sua mídia de instalação compatível com secure boot (veja o link para a página acima).
Linux antes do Windows
Mesmo sendo uma forma recomendada de criar um dual-boot entre Linux/Windows instalar primeiro o Windows, isto poderá ser feito de forma diferente. Em contraste a instalar Windows antes do Linux, você precisará reservar uma partição para Windows, digamos de 40GB de tamanho ou mais, antecipadamente. Ou ter algum espaço em disco não-particionado, ou criar e redimensionar partições para Windows de dentro da instalação do Linux, antes de executar a instalação do Windows.
Firmware UEFI
O Windows irá usar a partição de sistema EFI existente. Em contraste com o afirmado anteriormente, não está muito claro se uma simples partição para Windows, sem as partições com Windows Recovery Environment e sem a partição Microsoft Reserved, não irá funcionar.
Seguindo um esboço, assumindo que Secure Boot está desativado no firmware:
- Inicialize a instalação do Windows. Tome o cuidado de deixar apenas a partição pretendida, ou caso contrário deixe que ela faça seu trabalho como se não fosse instalar o Linux.
- Siga a seção #Inicialização rápida e hibernação.
- Corrija a capacidade de carregar Linux na inicialização, talvez seguindo #Não é possível inicializar Linux após a instalação do Windows. Já foi mencionado em #Sistemas UEFI que alguns gerenciadores de boot para Linux irão detectar automaticamente Windows Boot Manager. Ainda que novas instalações do Windows tenham uma opção de reinicialização avançada das quais você poderá inicializar o Linux, é aconselhável ter outras maneiras de inicializar o Linux, como por exemplo a mídia de instalação do Arch ou outro live CD.
Solução de problemas
Não é possível criar uma nova partição ou localizar uma existente
Veja #Limitações do Windows em UEFI versus BIOS.
Não é possível inicializar Linux após a instalação do Windows
Veja Unified Extensible Firmware Interface#Windows changes boot order.
Restaurando um registro de inicialização do Windows
Convencionalmente (e para facilidade de instalação), o Windows é comumente instalado na primeira partição e instala sua tabela de partições bem como sua referência ao gerenciador de boot no primeiro setor dessa partição. Caso você tenha acidentalmente instalado um gerenciador de boot como GRUB na partição do Windows ou danificado seu registro de inicialização de outra forma, você precisará de um utilitário para repará-la. A Microsoft inclui um utilitário de correção do setor de inicialização FIXBOOT
e um utilitário de correção do MBR chamado FIXMBR
em seus discos de recuperação, ou às vezes em seus discos de instalação. Através deste método, você pdoerá corrigir a referência ao setor de inicialização da primeira partição ao arquivo de configuração do gerenciador de boot e corrigir a referência do MBR para a primeira partição, respectivamente. Depois de fazer isto, você terá que reinstalar o GRUB no MBR como foi feito originalmente (isto é, o gerenciador de boot GRUB pode ser definido para carregar em cadeia o gerenciador de boot do Windows).
Se desejar reverter para utilização do Windows, você pode usar o comando FIXBOOT
que liga do MBR ao setor de boot da primeira partição para voltar ao normal, neste caso, o carregamento automático do sistema operacional Windows.
É importante notar que existe um utilitário para Linux chamado ms-sys
(pacote ms-sysAUR no AUR) que pode instalar MBRs. No entento, este utilitário só é capaz de escrever novos MBRs (em todos os sistemas operacionais e sistemas de arquivos suportados) e setores de boot (também conhecidos como registro de boot; equivalente a usar FIXBOOT
) para sistemas de arquivo FAT. A maioria dos Live CDs não possuem este utilitário por padrão, então ele precisará ser instalado primeiro, ou você poderá checar algum CD de recuperação que o possui, como o Parted Magic.
Primeiro, grave a informação da partição (tabela) novamente, usando:
# ms-sys --partition /dev/sda1
Depois, grave um MBR para Windows 2000/XP/2003:
# ms-sys --mbr /dev/sda # Leia opções para versões diferentes
Então, grave o novo setor de boot (registro de boot):
# ms-sys -(1-6) # Leia opções para descobrir o tipo adequado de gravação em FAT
ms-sys
também pode gravar MBRs para Windows 98, ME, Vista, e 7, veja ms-sys -h
.
Padrões de fuso horário
- Recomendado: configurar ambos Arch Linux e Windows para usarem UTC, seguindo System time#UTC in Microsoft Windows. Algumas versões do Windows revertem o relógio de hardware de volta para localtime caso estejam ajustados para sincronização online. Aparentemente este problema foi resolvido no Windows 10.
- Não recomendado: Ajustar Arch Linux para localtime e desativar todas as daemons de sincronização de fuso horário. Isto irá deixar o Windows cuidar das correções de fuso horário e relógio de hardware e você precisará lembrar de inicializar o Windows ao menos duas vezes por ano quando DST (horário de verão) entrar. Não pergunte nos fóruns porque o seu relógio está atrasado ou adiantado em uma hora se você passou esse período sem acessar o Windows.