Mover a partição do sistema EFI para outra unidade

11

Eu tive uma instalação do Windows 8 em um disco rígido, usando UEFI como inicialização. O disco rígido tem 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 por estar em italiano, mas a tradução é bem direta).

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

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

Acho que a melhor solução seria tê-lo no SSD por dois motivos:

o primeiro é o desempenho (eu acho que seria um pouco mais rápido no SSD devido ao tempo de aceleração de um disco rígido, mas posso estar errado sobre isso)

segunda razão é a consistência. Como eu pretendo usar apenas a instalação do Windows 8 que está localizada no SSD e eu provavelmente vou apagar a partição do sistema no disco rígido para usá-lo como um dispositivo de armazenamento de dados, eu acho que a partição de inicialização deve estar no mesmo dirigir como o SO.

Então a questão é como eu movo a partição do sistema EFI para o SSD?

    
por Pincopallino 27.10.2013 / 09:42

5 respostas

4

Minha recomendação é não incomodar. A melhoria de desempenho será insignificante, porque os arquivos lidos do ESP são pequenos e são lidos apenas quando o computador inicializa. Além disso, a própria partição é minúscula para os padrões modernos, então você não recuperará 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 consertados do que em qualquer outra ocasião em que você pudesse economizar tempo de inicialização aprimorado a partir da mudança.

Se você quiser seguir em frente e fazer isso como uma experiência de aprendizado, apesar de minha recomendação, será necessário investigar:

  • Criando um ESP com qualquer software de particionamento de que você goste. 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 isso, já que gdisk é uma ferramenta somente de particionamento (não lida com sistemas de arquivos).
  • Montando os dois ESPs simultaneamente para copiar arquivos (ou em sequência usando armazenamento temporário). Não sei como fazer isso no Windows, embora seja fácil no Linux ou em um shell EFI. (Seria automático em uma shell EFI, na verdade.)
  • Registrando o carregador de boot em sua nova casa. (Usar o nome de arquivo de fallback de EFI\BOOT\bootx64.efi provavelmente seria uma alternativa mais simples, mas é o método menos preferido de carregar o carregador de inicialização.) O comando bcdedit do Windows e a ferramenta bcfg do shell EFI podem registrar carregadores de inicialização; no entanto, bcdedit é inflexível porque o Windows suporta apenas um ESP, o que cria problemas ao copiar o ESP.
por 27.10.2013 / 18:39
4

Para pessoas como eu que vêm 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. Deve funcionar no Windows 8 também.

Se a sua unidade principal não tiver espaço, primeiro você precisará reduzir sua partição C: (ou equivalente). Estou usando 260 MB neste exemplo, já que isso é o que as unidades mais novas exigem, mas as unidades mais antigas com setores menores exigem apenas 100 MB. Se você não precisar criar espaço, anote os comentários que indicam as etapas que você deve seguir.

Enquanto você está nisso, provavelmente quer mover sua partição do Sistema Reservado. 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 essa partição em sua unidade principal e marquei essas etapas com comentários. Deve ser fácil excluir essas etapas se você preferir ignorá-las, mas precisará 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 pelo diskpart.exe.

Do cmd.exe sendo executado 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 de ordem de inicialização do BIOS para corresponder às alterações. No meu caso, as configurações do BIOS já estavam corretas, então eu estava preso em um loop de reinicialização; cada vez que eu queria inicializar meu computador, eu tinha que selecionar manualmente a unidade antiga com a partição EFI perdida.

Se tudo funcionou como esperado, você poderá excluir a partição EFI antiga. Se não funcionou, ou seu BIOS ainda está configurado para inicializar a partir da partição antiga, o Windows não permite que você o exclua, mesmo se você usar o sinalizador de substituição no diskpart.exe. Como você provavelmente quer se livrar dessa partição antiga de qualquer maneira, excluí-la é uma ótima maneira de garantir que você está 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
    
por 19.06.2016 / 14:26
2

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

Isto é aplicável para o Windows 7, 8, 10. E também é válido para o ID de Evento: 12290 se a partição EFI estiver localizada em um disco diferente daquele que é o sistema operacional ativo e deve ser armazenado em backup.

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

Então você tem que criar uma nova partição em 100-300MB no disco que você quer que a partição EFI resida. Se a unidade estiver cheia, primeiro você deve encolher uma das partições existentes.

Boot, no meu caso, o xubuntu 13 (ubuntu acima de 12.1 eu acho) de um usb-stick, ao vivo. Não o instale.

Abra o Gparted e crie a partição e formate-a em FAT32. Marcar a unidade como "boot" e desmarque qualquer outra partição flaged como "boot". Atribua também a nova partição a uma letra de unidade, se possível. Se não, você pode fazê-lo com o diskpart mais tarde.

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

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

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

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

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

Reconstrua o BCD usando o seguinte comando:

{bootrec / RebuildBcd}

Agora, quando for perguntado sobre qual sistema operacional você gostaria de adicionar à partição EFI, diga Sim aos que deseja incluir e Não aos que você não quer poder inicializar. Como no meu caso eu recentemente atualizei para o Windows 10, e como você deve saber, o Windows irá armazenar o seu antigo Windows 7/8 por um tempo, se você não tiver excluído sozinho. Esta cópia do seu sistema operacional antigo não é algo que você normalmente gosta de ser capaz de inicializar. Normalmente, ele se baseia no Windows.old. Então não escolha a alternativa Todas.

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

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

{bootrec / fixboot}

Eu tentei aprender mais sobre o comando e acho que basta definir o sinalizador de inicialização na partição-E e torná-lo inicializável. Isso deve ser o mesmo de quando eu sinalizei a partição-e como boot no Gparted.

Se houvesse outra partição de efi que você não quer mais, a maneira mais fácil é inicializar o linux / gparted novamente e apagá-lo de lá.

    
por 02.12.2015 / 18:57
1

Eu criei uma nova instalação em um novo disco SSD usando a instalação genuína W10 ISO (DVD). A instalação foi para o tipo MBR em vez de GPT. Eu precisei de inicialização segura, então tive que converter essa nova instalação (sem perda de dados) do MBR para o GPT.

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

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

Então eu mudei o MBR para GPT pelo gdisk no Linux. Eu 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 C:).

Então eu mudei o tipo de inicialização na CONFIGURAÇÃO do notebook para UEFI apenas para ter certeza de que ele realmente é inicializado pela EFI. O Windows não inicializou porque havia algum arquivo faltando (com 'efi' em seu nome).

Então eu inicializei a partir do DVD de instalação do Windows 10, escolhi "Rescue system" e depois algo como "Corrigir problemas de inicialização". Então Win10 inicializado sem nenhum problema. Nenhuma intevenção manual necessária pelo bcdboot.

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

    
por 20.03.2017 / 22:05
0

Bem, vamos adicionar outra solução. Meu objetivo não era apenas copiar a partição EFI, mas até mesmo levar em conta o outros ocultos. Eu não tenho certeza se o pedido é importante (eu pessoalmente tive um diferente do descrito no msdn), mas w / e.

De qualquer forma, eu usei o GParted Live para o feito. Depois de conseguir a inicialização, reduza a partição principal do Windows (o que deve ser C: ) da mesma quantidade de MiB das partições que você está perdendo no novo disco e mova-o para o final. Isso vai levar algum tempo.

Depois, comecei a criar uma nova partição 16MiB, logo abaixo da recém-redimensionada, para onde dd da partição reservada da Microsoft (para razões parece que o parted é incapaz de lidar com FS não formatados). Como sempre, ao usar o dd, seja extremamente cuidadoso com os comandos.

Uma vez feito isso, voltei para a GUI do GParted e configurei manualmente os flags e o nome corretos para a nova partição MSR, depois deletei a original. Por último, mas não menos importante, eu finalmente copiei a partição Recuperação e EFI do disco rígido original para o SSD (e repeti a operação name / flag) e execute sgdisk -s para corrigir a ordem das partições.

Reinicie e lucre! Não é necessário 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 Gerenciador de Disco do Windows o converte em um volume dinâmico. Verifique esta solução alternativa .

    
por 15.04.2017 / 20:17