Mova a Partição do sistema EFI para outra unidade

14

Eu tinha uma instalação do Windows 8 em um disco rígido, usando UEFI como inicialização. O disco rígido possui a seguinte tabela GPT:

DISKPART> list partition

Partizione ###   Tipo              Dim.     Offset
---------------  ----------------  -------  -------
Partizione 1     Ripristino         300 Mb  1024 Kb
Partizione 2     Sistema            100 Mb   301 Mb
Partizione 3     Riservato          128 Mb   401 Mb
Partizione 4     Primario           390 Gb   529 Mb
Partizione 5     Primario           540 Gb   390 Gb

(Peço desculpas em italiano, mas a tradução é bem direta).

Recentemente, comprei uma unidade SSD, conectei e instalei um novo Windows 8. Agora tenho uma inicialização dupla em funcionamento, mas a partição UEFI está no HDD em vez do SSD. Aqui está a lista de partições SSD:

Partizione ###   Tipo              Dim.     Offset
---------------  ----------------  -------  -------
Partizione 1     Riservato          128 Mb  1024 Kb
Partizione 2     Primario           221 Gb   129 Mb

Eu acho que a melhor solução seria colocá-lo no SSD por dois motivos:

O primeiro é o desempenho (acho que seria um pouco mais rápido no SSD devido ao tempo de rotação de um HDD, mas posso estar errado quanto a isso).

A segunda razão é a consistência. Como pretendo usar apenas a instalação do Windows 8 localizada no SSD e provavelmente apagarei a partição do sistema no HDD para usá-lo como um dispositivo de armazenamento de dados, acho que a partição de inicialização deve estar na mesma dirigir como o sistema operacional.

Portanto, a questão é como mover a partição do sistema EFI para o SSD?

Pincopallino
fonte

Respostas:

4

Minha recomendação é não incomodar. A melhoria de desempenho será insignificante, porque os arquivos lidos no ESP são pequenos e são lidos somente quando o computador é inicializado. Além disso, a partição em si é pequena para os padrões modernos, para que você não recupere espaço suficiente para fazer o esforço valer a pena. Além disso, a tentativa de mover o ESP corre o risco de criar problemas de inicialização que levarão muito mais tempo para serem corrigidos do que a qualquer momento que você possa economizar no tempo de inicialização aprimorado da movimentação.

Se você quiser fazer isso como uma experiência de aprendizado, apesar da minha recomendação, precisará analisar:

  • Criando um ESP com o software de particionamento desejado. Não sei como você faria isso com as ferramentas padrão do Windows. Com gdisk, você criaria uma partição do tipo EF00, mas precisaria criar um sistema de arquivos FAT, uma vez que gdiské uma ferramenta somente de particionamento (não lida com sistemas de arquivos).
  • Montagem de ambos os ESPs simultaneamente para copiar arquivos (ou em seqüência usando armazenamento temporário). Não sei como fazer isso no Windows, embora seja fácil no Linux ou em um shell EFI. (Na verdade, seria automático em um shell EFI.)
  • Registrando o carregador de inicialização em sua nova casa. (Usar o nome de arquivo de fallback de EFI\BOOT\bootx64.efiprovavelmente seria uma alternativa mais simples, mas é o método menos preferido de carregar o carregador de inicialização.) O bcdeditcomando do Windows e a bcfgferramenta do shell EFI podem registrar os carregadores de inicialização; no entanto, bcdedité inflexível porque o Windows suporta apenas um ESP, o que cria problemas ao copiar o ESP.
Rod Smith
fonte
Obrigado pela sua resposta. Bem, na verdade, prefiro ter o ESP no SSD porque posso decidir remover o HDD. Então eu acho que o ESP deve estar na unidade do SO. Enfim, como é feito o último ponto?
Pincopallino
Não importa, eu consegui mover a partição para o SSD e o Windows inicializa regularmente. Muito obrigado!
Pincopallino
Algumas informações interessantes aqui que provavelmente seriam MUITO valiosas para explicar o que está acontecendo em um HOWTO generalizado, mas não para responder realmente: "Então a pergunta é como movo a partição do sistema EFI para o SSD?" Passei dias da minha vida tentando me recuperar de uma decisão ruim há alguns anos e isso ainda me assombra e, em suma, tudo se resume a realocar minha partição EFI, para que eu adorasse ver uma boa resposta.
rainabba 23/09/15
É importante notar que, às vezes, ter duas partições EFI faz com que a atualização do Windows falhe de maneiras extremamente obscuras; portanto, exclua a antiga após a mudança.
precisa saber é o seguinte
14

Para pessoas como eu, vindas do Google: Sim, é possível fazer isso com o Windows, sem ferramentas de terceiros. Testado com o Windows 10 Pro x64. Usei este procedimento para mover a partição do sistema EFI e a partição reservada do sistema. Ele deve funcionar no Windows 8 também.

Se sua unidade principal não tiver espaço, primeiro você precisará reduzir sua partição C: (ou equivalente). Estou usando 260 MB neste exemplo, pois é isso que as unidades mais novas exigem, mas as unidades mais antigas com setores menores exigem apenas 100 MB. Se você não precisar abrir espaço, tome nota dos comentários que indicam quais etapas você deve pular.

Enquanto você está nisso, provavelmente deseja mover sua partição reservada do sistema. Estes são tipicamente 1000 MB e armazenam metadados úteis do Windows. Você pode achar que alguns recursos do Windows não funcionam sem uma partição reservada do sistema. Incluí as etapas para criar uma partição no disco principal e as marquei com comentários. Deve ser fácil excluir essas etapas, se você preferir ignorá-las, mas será necessário alterar os números ao diminuir (por exemplo, 260 MB em vez de 1260 MB).

Os comentários são prefixados com REM(para "observação"), pois são suportados pelo cmd.exe e diskpart.exe.

No cmd.exe executando como administrador:

diskpart
list disk
REM Choose the appropriate disk number from the list.  If you're unsure, you can open diskmgmt.msc; the numbers will be the same.
sel disk 0
list part

REM Perform the following only if you need to shrink a partition to make space for the EFI partition.
REM Choose the appropriate partition from the list.  I used my C: partition.
sel part 2
shrink desired=260
REM End of shrinking operation.

REM Create a new EFI partition:
create part efi size=260
format quick fs=fat32
list vol
REM Find your newly created volume in the list.  If it's not already selected (marked with an asterisk), select it now with "sel vol #".
REM You'll need to give the volume a drive letter for later:
assign
list vol
REM Note the drive letter that the volume has been given.  Mine was F:, so I'll use that in the example.
REM Done creating new EFI partition.

REM Optionally create a new System Reserved partition:
create part msr size=1000
REM Done creating new System Reserved partition.

REM We're done with diskpart.exe:
exit
REM You should no longer see the DISKPART> prompt.

REM Note that you may need to change these drive letters, particularly F:.  F: should match the volume you created previously.
bcdboot C:\Windows /s F: /f UEFI

REM We no longer need a drive letter for the EFI partition, so we should remove it:
diskpart
list disk
REM Change disk number appropriately.
sel disk 0
list vol
REM Change volume number appropriately.
sel vol 2
REM Remove drive letter assignment:
remove
REM Exit diskpart.exe:
exit

REM Exit cmd.exe:
exit

É hora de reiniciar para garantir que tudo funcione. Pode ser necessário atualizar as configurações da ordem de inicialização do BIOS para corresponder às alterações. No meu caso, as configurações do BIOS já estavam corretas, então fiquei preso em um loop de reinicialização; sempre que desejava inicializar meu computador, precisava selecionar manualmente a unidade antiga com a partição EFI extraviada.

Se tudo funcionou como esperado, você poderá excluir a partição EFI antiga. Se não funcionou ou o BIOS ainda estiver configurado para inicializar a partir da partição antiga, o Windows não permitirá que você a exclua, mesmo que você use o sinalizador de substituição no diskpart.exe. Como você provavelmente deseja se livrar dessa partição antiga, excluí-la é uma ótima maneira de garantir que você esteja inicializando a partir da nova partição.

diskpart
list disk
REM Change disk number appropriately.
sel disk 2
list part

REM You can repeat this next group of steps to delete as many "special" partitions as you like.  I had 4 reserved partitions from an old OEM installation.  Just make sure you don't delete your data!  The "override" flag is only necessary for partitions that can't normally be deleted.
REM Change partition number appropriately.
sel part 1
del part override

REM When you're done, exit diskpart.exe:
exit

REM Exit cmd.exe:
exit
Zenexer
fonte
2
Uma resposta muito detalhada e bem explicada, que funciona! Obrigado!
precisa saber é o seguinte
2

Eu sei que este é um post antigo, mas acho que ainda é uma boa resposta para muitos.

Isso é aplicável ao Windows 7, 8, 10. E também é válido para o ID do evento: 12290 se a partição EFI estiver situada em um disco que não seja o SO ativo e o backup.

Primeiro desconecte qualquer outra unidade que contenha partições EFI, para não alterar acidentalmente essa.

Em seguida, você deve criar uma nova partição de 100 a 300 MB no disco em que deseja que a partição EFI esteja localizada. Se a unidade estiver cheia, primeiro você deverá reduzir uma das partições existentes.

Inicialize, no meu caso, o xubuntu 13 (ubuntu acima de 12.1, acho) a partir de um pendrive, ao vivo. Não instale.

Abra o Gparted e crie a partição e formate-a para FAT32. Sinalize a unidade como "inicialização" e desmarque qualquer outra partição exibida como "inicialização". Atribua também à nova partição uma letra de unidade, se possível. Caso contrário, você poderá fazê-lo com o diskpart posteriormente.

Reinicie e agora inicialize com o Windows (RE) Recovery a partir do DVD de instalação do Windows. Vá para o prompt de comando. Inicie o diskpart e atribua à nova partição um controlador de linha, se isso não for possível no Gparted. Saia do diskpart, mas permaneça no prompt de comando.

Agora você copiará os arquivos necessários na nova partição.

{bcdboot / S: / f UEFI} NOTA os espaços!

Exemplo: {bcdboot c: \ Windows / s: / f UEFI}

Este comando também fornecerá o status EFI da partição.

Recrie o BCD usando o seguinte comando:

{bootrec / RebuildBcd}

Agora, quando lhe for perguntado em qual SO você gostaria de adicionar à partição EFI, você diz Sim para os que deseja incluir e Não para os que não deseja inicializar. Como no meu caso, atualizei recentemente para o Windows 10 e, como você deve saber, o Windows armazenará o Windows 7/8 antigo por um tempo, se você não o tiver excluído. Essa cópia do seu sistema operacional antigo não é algo em que você normalmente gosta de inicializar. Normalmente, ele recide no Windows.old. Portanto, não escolha a alternativa Todos.

Não sei, mas acho que esse comando só procura instalações do Windows. Se você possui um sistema operacional Linux, por exemplo, no mesmo computador. Então você tem que usar algo como o bcdedit depois para obter a inicialização também.

Existe um último comando, bruxa que eu não usei.

{bootrec / fixboot}

Eu tentei aprender mais sobre o comando e acho que ele apenas define o sinalizador de inicialização na partição efi e o torna inicializável. Deve ser o mesmo de quando eu sinalizei a partição efi como inicialização no Gparted.

Se houver outra partição efi que você não deseja mais, a maneira mais fácil é inicializar novamente no linux / gparted e excluí-lo de lá.

Joelbit
fonte
Para mim, tudo acontece perfeitamente até que chegue ao bootrec /fixbootqual apenas lança o mesmo arquivo não encontrado erro todas as vezes.
precisa saber é o seguinte
Parece que o Windows não monta automaticamente a partição do Windows quando está em outra unidade, fazendo com que a inicialização sempre falhe.
Jeroen
1

Criei uma nova instalação em um novo disco SSD usando o ISO (DVD) de instalação W10 genuíno. A instalação foi para o tipo MBR em vez de GPT. Eu precisava de inicialização segura, então tive que converter esta nova instalação (sem perda de dados) de MBR para GPT.

Em seguida, criei espaço livre (260 MB) diminuindo a última partição NTFS no final do disco (iniciei o Linux do SystemRecueCD a partir do pendrive e usei o gparted, mas o gerenciador de discos do Windows 10 também poderia ser usado).

Então eu formatei essa nova pequena partição para o FAT32 (isso poderia ser feito no Windows ou no Linux também). Copiei os arquivos do EFI original para esta nova partição (fiz no Linux porque o Windows não gosta de dois discos com a letra da unidade chamada C :).

Então mudei o MBR para GPT pelo gdisk no Linux. Usei o gdisk e, em seguida, essa pequena partição deve ser alterada para o tipo ef00 (EFI) e marcada como inicializável (deve ser apenas uma, portanto, o sinalizador inicializável deve ser removido da unidade inicializável original C :).

Em seguida, mudei o tipo de inicialização na CONFIGURAÇÃO do notebook para UEFI - apenas para ter certeza de que ele realmente inicializa pela EFI. O Windows não inicializou, pois havia algum arquivo ausente (com 'efi' no nome).

Então eu inicializei no DVD de instalação do Windows 10, escolhi "Sistema de recuperação" e, em seguida, algo como "Corrigir problemas de inicialização". Em seguida, o Win10 inicializou sem nenhum problema. Nenhuma intenção manual é necessária pelo bcdboot.

A configuração da EFI pode ser verificada pelo utilitário efibootmgr no Linux.

Milan Kerslager
fonte
0

Bem, vamos adicionar mais uma solução. Meu objetivo não era apenas copiar partições EFI, mas também levar em conta as outras ocultas. Não tenho certeza se o pedido é importante (eu pessoalmente tinha um pedido diferente do descrito no msdn), mas w / e.

Enfim, eu usei o GParted Live para o feito. Depois de inicializar, reduza a partição principal do Windows (o que deveria ser C:) da mesma quantidade de MiB das partições que estão faltando no novo disco e mova-a para o final. Isso vai levar algum tempo.

Então, comecei a criar uma nova partição de 16MiB logo abaixo da partição redimensionada para dda partição reservada da Microsoft (por motivos que parece que a partição não consegue lidar com o FS não formatado). Como sempre, ao usar o dd, seja extremamente cuidadoso com os comandos.

Depois de concluído, voltei à GUI do GParted e definai manualmente os sinalizadores e o nome corretos para a nova partição MSR e excluí a original. Por último, mas não menos importante, finalmente copiei a partição Recovery e EFI do HDD original para o SSD (e repeti a operação de nomes / sinalizadores) e corri sgdisk -spara corrigir a ordem das partições.

Reinicie e lucre! Não há necessidade de mexer com efibootmgr ou bcdboot , pelo menos no meu laptop ele encontrou automaticamente o novo ESP.

EDIT: se ao estender o primeiro disco, por algum motivo, o Windows Disk Manager o converte em um volume dinâmico. Verifique esta solução alternativa .

mirh
fonte