Como converter discos UEFI para BIOS no teu servidor Windows - Plenit
Descobre aqui como converter discos UEFI para BIOS para evitar problemas de execução dentro da plataforma da Plenit.
As máquinas montadas com tecnologia UEFI não são suportadas pela Plenit, concretamente as máquinas virtuais de Azure Gen2 (de Segunda Geração) e as máquinas virtuais de **Hyper-V Get2 **(de Segunda Geração).
Ao tentar iniciar uma máquina deste tipo, possivelmente encontraremos um erro como o seguinte ou muito semelhante:
iPXE: (hrrp://ipxe.org) 00:04.0 CA00 PCI2.10 PMM-0010000100011020 CA00
Pressione F12 para o menu de arranque.
Dispositivo de arranque: Disco rígido -- sucesso.
Dispositivo de arranque: CD-ROM -- Falha: não foi possível ler o disco de arranque
Nenhum dispositivo de arranque.
Desligando em 30 segundos.
NOTA: Além disso, no Passo 5 deste tutorial podes encontrar um procedimento guiado para resolver problemas de corrupção do arranque de um servidor Microsoft Windows.
Como converter discos UEFI para BIOS?
Pré-requisitos ou pré-configuração
Para concluir de forma satisfatória este tutorial e converter discos UEFI para BIOS será necessário:
Por um lado, estar **inscrito na Plataforma Plenit **com uma organização e estar registado na mesma após fazer Iniciar sessão{target="_blank" rel="noopener"}.
Por outro lado, ter subscrito uma Subscrição de Servidores{target="_blank" rel="noopener"}
Ter um** servidor Windows migrado com problemas de arranque **dentro da subscrição.
Ter um** servidor Ubuntu 20 operativo **dentro da subscrição.
**NOTA: **Antes de fazer a operação, recomenda-se fazer uma cópia de segurança do disco sobre o qual vamos operar, para assim poder recuperá-lo no caso de cometer algum erro durante o processo, já que, entre outras coisas, é possível que cometamos um erro e apaguemos o seu conteúdo.
NOTA: *Ao finalizar a operação, é recomendável que eliminemos as cópias de segurança que tenhamos criado e que não seja necessário armazenar, já que, embora não se fature pelas cópias de segurança que se possam fazer, fatura-se pelo espaço em disco armazenado. *
Passo 0. Preparar a máquina Ubuntu
No caso de não ter uma máquina Ubuntu 20 provisionada na subscrição de servidores, **dever-se-á implementar **para assim poder operar e usá-la para a recuperação do disco que está a dar problemas.
Além disso, a máquina virtual deve ser preparada para poder aceder-lhe através de uma ligação direta por SSH e assim seja mais cómodo do que trabalhar a partir da consola. Para isso, será também necessário abrir a porta de SSH no firewall da subscrição de servidores da Plenit e que se use algum programa para a ligação, como por exemplo o PuTTY no caso de ligar a partir de um equipamento Microsoft Windows.
Passo 1. Preparação dos discos
A primeira coisa a fazer é parar a máquina virtual cujo arranque não está a funcionar corretamente. Para isso, deve-se aceder à subscrição onde se encontra a máquina virtual que falha ao arrancar e ir ao servidor concreto que falha.
Uma vez aí, deve-se ir à parte superior do ecrã e clicar em "Parar" (1) para parar a máquina virtual.
{decoding="async"}
Passo 1. Paramos a máquina virtual que está a dar problemas para poder desligar os discos
Uma vez se tenha a certeza de que a máquina parou, deve-se ir à secção de discos (2) da subscrição de servidores, procurar o disco que pertence a essa máquina virtual e clicar nos três pontos (3) para** selecionar a opção "desligar"** (4).
{decoding="async"}
Passo 1. Desligamos o disco que queremos modificar para poder operar com ele
Neste momento já se tem o disco desligado do servidor de origem e é necessário ligá-lo ao servidor Ubuntu 20 que vai ser usado para a operação de reparação do arranque mediante a mudança de GPT para BIOS.
Para ligar este disco à máquina Ubuntu, deve-se** ir à secção de discos** (5) da subscrição de servidores, que em princípio é a secção onde se está neste momento, procurar o disco que foi desligado da máquina virtual e clicar nos três pontos (6) para** selecionar a opção "Ligar"** (7).
{decoding="async"}
Passo 1. Ligamos o disco à máquina Ubuntu para a sua manipulação
Ao selecionar o disco, pede-se selecionar o servidor (8) ao qual o disco tem de ser ligado, pelo que se deve selecionar o equipamento pertinente e clicar em "Continuar" (9).
{decoding="async"}
Passo 1. Selecionamos o servidor ao qual o disco vai ser ligado
Quando se tiver o disco ligado ao servidor, deve-se ir à secção de servidores,** selecionar o servidor** e iniciar a máquina virtual (10) à qual acabámos de ligar o disco para começar a operação em si.
{decoding="async"}
Passo 1. Iniciamos o servidor sobre o qual vamos tratar o disco
Depois disso, criamos uma regra de entrada no firewall do servidor para poder aceder remotamente via SSH e trabalhar de forma mais cómoda, em vez de ligar a partir da consola integrada na Plenit, já que trabalhar a partir da consola é um pouco mais incómodo.
Para isso deve-se **ir à subscrição **de servidores, deve-se aceder à configuração do servidor do Ubuntu e, na parte inferior do ecrã, na secção "Firewall -- Regras de entrada", deve-se clicar em "Nova regra" (11).
{decoding="async"}
Passo 1. Criamos uma nova regra de entrada para ligar por SSH no firewall da Plenit
Na nova janela, devem ser configurados os seguintes dados de ligação:
Selecionar rede: (12) Deverá ser selecionada a rede através da qual será feita a ligação. Regra geral será a que vem configurada.
IP ou Rede: (13) O IP ou rede a partir da qual se pode fazer a ligação. Por defeito está como "Qualquer IP" mas recomenda-se limitá-lo, colocando o IP ou intervalo de IP da empresa do cliente, já que estas ligações não vão ser realizadas a partir de mais nenhum lugar, e assim minimizamos a superfície de ataque.
Protocolo e Porta pública: (14) É a porta que queremos que se use para ligar, é composto por Protocolo (TCP ou UDP) neste caso TCP e o número da porta, que neste caso é a porta 22.
IP Pública: (15) O IP público do servidor ao qual se ligará através desta regra.
IP Privado: (16) O IP privado do servidor ao qual se ligará através desta regra.
Porta privada: (17) É a porta que queremos que se use para ligar, na parte interna, neste caso só é necessário o número da porta (Porta 22).
Uma vez configurado tudo, terá de se **clicar em "Continuar" **(18) para que a regra seja criada.
{decoding="async"}
Passo 1. Criamos uma regra de ligação para SSH no firewall do servidor fornecendo os dados
Após esta configuração, será possível ligar à consola do servidor GNU/Linux através de SSH usando para isso algum programa de ligações como o PuTTY, que é um dos programas mais amplamente usados para poder ligar por SSH (e outros protocolos) a partir de equipamentos Windows.
**NOTA: **Podes descarregar o programa PuTTY da seguinte URL{target="_blank" rel="noopener"}.
{decoding="async"}
Passo 1. Usamos o PuTTY para ligar ao servidor sobre o qual vamos fazer a operação
Passo 2. Operação de modificação do disco
O seguinte que se tem de fazer é ligar via SSH a partir do equipamento usado para administrar, usando para isso a ferramenta que tenha sido escolhida, como por exemplo o PuTTY proposto anteriormente.
Uma vez ligados, a primeira coisa a fazer é listar os discos disponíveis no servidor para assim identificar o disco que montámos para a sua reparação. Para isso podem ser usados vários comandos, mas no nosso caso deve ser usado o comando "fdisk -l" (19) que mostra todos os discos e partições disponíveis no equipamento.
Ao mostrar os discos que existem (20) que, regra geral, terão uma forma semelhante a:
/etc/xvda1 /etc/xvda2 /etc/xvda3 /etc/xvdb1 /etc/xvdb2 /etc/xvdb3 /etc/xvdb4 /etc/xvdb5
Neste caso, vemos que todos começam com "/etc/" isto deve-se a que os dispositivos e partições têm o seu ficheiro de configuração ligado ao disco montado.
Além disso, vemos que depois todos partilham uma cadeia, a formada por "xvdb".
Por fim, pode ver-se que há um "a" ou um "b" seguido de um número. Isto deve-se a que cada disco do sistema tem uma letra atribuída, ordenada alfabeticamente e, portanto, começando pela "a" e seguida pela "b", etc. Além disso, cada partição do disco recebe um número que começará por "1" e continuará a incrementarse.
Com o que acabámos de comentar, a lista de discos e partições mostrada anteriormente, "/etc/xvda1", "/etc/xvda2" e "/etc/xvda3" pertencerão ao disco "/etc/xvda", enquanto "/etc/xvdb1", "/etc/xvdb2", "/etc/xvdb3", "/etc/xvdb4" e "/etc/xvdb5" pertencerão ao disco "/etc/xvdb". Dito isto, da lista que nos é mostrada, interessar-nos-á o disco "b", já que o primeiro (a) é o que executa o sistema operativo Ubuntu e o segundo (b) é o montado para a sua reparação, mas atenção, isto dependerá de termos mais discos montados nesse servidor.
{decoding="async"}
Passo 2. Comprovamos os discos ligados no servidor para identificar o que foi ligado
O seguinte que se deve fazer é editar o disco que se queira alterar (comumente o "/etc/xvdb") e para isso deve-se executar o comando "gdisk /dev/xvdb" (21).
Ao executar este comando, será devolvida uma informação sobre o estado da tabela de partições, informando do tipo que é. No caso em apreço, deverá ser do tipo GPT pelo que deverá mostrar um "GPT: Present" (22), o que indicará que é um disco do tipo GPT que não apresenta qualquer tipo de problema.
Se for mostrado uma mensagem como "GPT: Damaged" dever-se-á fazer um passo adicional que abordamos no passo 3. Se no caso que estás a tratar este erro for mostrado, passa ao Passo 3 e volta aqui quando terminares de o realizar.
{decoding="async"}
Passo 2. Editamos o disco com o gdisk e comprovamos o estado da partição
No caso de a mensagem seja "GPT: present" devem ser escritas as seguintes opções (23) do menu do "gdisk" pela ordem mostrada a seguir:
r: Prepara as opções de recuperação e transformação.
g: Converte a partição de GPT para MBR.
s: Prepara a partição MBR.
p: Mostra a tabela MBR.
w: Escreve a tabela de partições MBR.
e: Validaremos a escrita e sairá do programa.
{decoding="async"}
Passo 2. Começamos a executar os comandos do gdisk para fazer a alteração no disco
Com isto terá terminado esta parte da operação e deverá ir para o Passo 4.
Passo 3. Operação no caso de ter a mensagem "GPT: Damaged"
IMPORTANTE: O que se conta a seguir só deve ser executado no caso de o disco apresentar a mensagem "GPT: Damaged".
**NOTA: **Deve-se recordar que é uma boa prática fazer uma cópia de segurança do disco com que estamos a operar antes de fazer toda esta operação.
Ao executar o comando "gdisk /dev/xvdb" foi mostrado o erro "GPT: Damaged" pelo que se deve realizar uma operação adicional.
Esta consiste em que quando o comando "gdisk" devolver o prompt deverão ser colocadas as seguintes opções pela ordem (24) que aqui se listam:
p: Imprimir a informação da tabela de partições.
w: Escrever a tabela de partições e sair.
e: Confirmar a escrita da tabela de partições.
{decoding="async"}
Passo 3. Continuamos com os comandos do gdisk para recuperar a partição GPT
Para comprovar que tudo correu bem, deve-se** executar novamente o comando "gdisk /dev/xvdb"** (25) e verificar que é mostrada a mensagem "GPT: present" em vez da "GPT: damaged" que era mostrada anteriormente.
{decoding="async"}
Passo 3. Confirmamos com o gdisk que o estado do GPT é present e não damaged
Se tudo correu bem, poderá voltar-se ao ponto do Passo 2 onde estávamos antes de passar a resolver o problema do GPT.
Passo 4. Reparação do arranque do Windows
Neste passo, a conversão do disco já foi feita, mas ainda não é arrancável dentro do Windows. Por esta razão deve-se desligar as máquinas virtuais, desligar o disco da máquina Ubuntu que foi usada para a sua recuperação e ligá-lo à máquina Windows da qual tinha sido previamente desligado.
NOTA: O processo de desligar de uma máquina para o ligar noutra já foi reproduzido anteriormente, pelo que não volta a ser descrito. Se o leitor tiver dúvidas, remetemo-lo para a operação realizada anteriormente.
O seguinte que se deve fazer após ligar novamente o disco é introduzir uma imagem ISO para que possa arrancar a partir dela, da mesma maneira que se trabalhássemos com um equipamento físico e quiséssemos fazer tarefas de manutenção ou recuperação.
Para fazer esta operação deve-se ir ao portal de administração da Plenit, aceder à subscrição de servidores onde se encontra o servidor, selecionar o servidor e, na janela de administração ou edição do servidor, ir à parte superior da janela, onde em princípio **poderá ler-se "Nenhuma ISO" **(26) e implementar as opções para selecionar a ISO (27) correspondente ao sistema operativo do servidor (por exemplo, Windows Server 2019).
{decoding="async"}
Passo 4. Selecionamos a ISO a montar no servidor para poder lançar as opções de recuperação
Uma vez feito isto, deve-se iniciar a máquina. Para isso, na consola de administração da Plenit deverá** clicar-se em "Ligar"** (28), confirmando quando surgir a pergunta se se pretende ligar o servidor.
{decoding="async"}
Passo 4. Iniciamos a máquina virtual
Depois disso, deverá esperar-se um momento enquanto a máquina arranca e deverá ser iniciada a consola (29).
**NOTA: **Seguramente não consigamos ligá-la à primeira, já que o sistema está a arrancar, motivo pelo qual deverá ser lançada tantas vezes quantas as necessárias até conseguir que seja mostrado o arranque a partir da ISO.
{decoding="async"}
Passo 4. Iniciamos a consola de administração remota disponível na plataforma
Quando se conseguir abrir a consola deve-se iniciar o arranque a partir de CD/DVD, ou seja, a partir da ISO que foi introduzida, deverá esperar-se que seja mostrada a mensagem "Pressione qualquer tecla para iniciar a partir do CD ou DVD..." deverá premir a tecla "Enter" (30) para que arranque a partir da imagem e comece a carregar os ficheiros do sistema.
{decoding="async"}
Passo 4. Premimos Enter para que carregue a imagem que ligámos à máquina
NOTA: É bastante comum que a tecla não seja captada à primeira, pelo que poderá acabar por se ver a inicialização do sistema operativo instalado na máquina virtual. Se isso acontecer, deverá reiniciar-se ou desligar-se a máquina e repetir a tentativa.
Neste momento, se tudo correr bem, o sistema começará a carregar a ISO e a descomprimir os binários para poder executar a consola com a qual teremos de realizar a operação, pelo que será preciso ter paciência enquanto carrega.
{decoding="async"}
Passo 4. Esperamos enquanto a imagem do sistema carrega
Quando carregar a janela de "Configuração do sistema operativo Windows Server", deverá ser feito clique em "Seguinte" (31), não sendo demasiado importante se está num idioma ou noutro, já que iremos trabalhar em linha de comandos.
{decoding="async"}
Passo 4. Clicamos em Seguinte para passar ao menu seguinte
Na janela seguinte, deverá ser feito clique em "Reparar o computador" (32) para entrar nas opções de recuperação do sistema.
{decoding="async"}
Passo 4. Clicamos em Reparar o computador
Depois disto será mostrada uma nova janela na qual se deverá selecionar "Resolução de problemas" (33).
{decoding="async"}
Passo 4. Selecionamos resolução de problemas no menu visual
E finalmente, dentro das opções avançadas deverá ser selecionada a opção "Linha de comandos" (34) que abrirá uma janela de CMD do Windows sobre a qual já poderemos operar.
{decoding="async"}
Passo 4. Selecionamos linha de comandos entre as opções que nos são oferecidas
Agora que se tem uma consola de linha de comandos do Windows, o que comumente se chama "Command" ou "CMD", devem ser executados uma série de comandos (35), que são os mesmos que quando se está a fazer um disco USB arrancável.
Os comandos a executar são os seguintes:
diskpart
list disk
*select disk *
list partition
list volume (servirá para identificar o volume onde o Windows está instalado)
Onde:
"" será o disco que se quer usar para iniciar o sistema, não podendo ser escolhido um disco de dados.
Uma vez feito isto, deve-se rever até encontrar a partição "C:", executando os seguintes comandos e usando o número de partição correspondente (36) à partição procurada.
*select partition *
ativo
exit
Após a execução do comando "activate", se tudo correr bem, deverá ser recebido o mensagem "Diskpart marca a partição atual como ativa" (37).
{decoding="async"}
Passo 4. Executamos o diskpart e fazemos a operação sobre o disco
Feito isto, deve-se tornar a partição arrancável, pelo que se deve procurar a letra onde está o sistema operativo Windows, que possivelmente seja "D:" já que "C:" está a ser usada pelo sistema de recuperação, e, por outro lado, também se tem de procurar a letra da unidade onde foi carregada a ISO, que seria a equivalente ao CD/DVD, podendo ser "E:" ou "F:" as opções mais comuns.
Quando as letras das unidades estiverem claras, devem ser executados os seguintes comandos (38):
F:
dir
BCDBOOT D:\Windows
bootrec /fixmbr
Onde:
F: é a unidade onde temos a ISO mapeada (o CD/DVD) no nosso caso.
D: é a unidade onde está o sistema operativo Windows da máquina virtual.
Após a execução do comando "bootrec /fixmbr", se tudo correr bem, deverá ver-se o mensagem "a operação foi concluída com êxito".
Se for assim, a operação terá terminado, pelo que se poderá reiniciar a máquina e verificar que a máquina arranca sem problemas.
Se, pelo contrário, ao executar o comando "BCDBOOT D:\Windows" nos devolve a mensagem "Erro ao tentar copiar Ficheiros de arranque", significará que o comando falhou, pelo que se deverá continuar no Passo 5.
{decoding="async"}
Passo 4. Recuperamos o arranque do Windows
Passo 5. Solução da falha de cópia de Ficheiros de arranque
NOTA: Este procedimento só deve ser aplicado se falhar a execução do comando "BCDBOOT D:\Windows" e tiver devolvido o erro "Erro ao tentar copiar Ficheiros de arranque".
Para solucionar este problema, apenas é necessário** seguir o seguinte procedimento** sem saltar nenhum passo e pela ordem que a seguir se apresenta.
Primeiro, deve-se abrir a aplicação "diskpart" (39) para localizar o Disco e a partição do Sistema operativo Windows:
diskpart
list disk
Quando se tiver a certeza o Disco deve ser selecionado (40) para o usar:
select disk 0
De seguida, devem-se listar as partições e selecionar a que tenha o Windows instalado e marcá-la como ativa (41):
list partition
select partition 3
ativo
exit
{decoding="async"}
Passo 5. Executamos a primeira parte da recuperação do arranque
Por último, deverão executar os comandos de reparação (42) a partir da unidade ISO (CD/DVD):
dir
BCDBOOT D:\Windows
bootrec /fixmbr
Onde:
F: é a unidade onde temos a ISO mapeada (o CD/DVD) no nosso caso.
D: é a unidade onde está o sistema operativo Windows da máquina virtual.
{decoding="async"}
Passo 5. Executamos a segunda parte da recuperação do arranque
Com isto, o arranque já deverá estar recuperado.
Conclusões
O processo descrito neste tutorial, como converter discos UEFI para BIOS, permite realizar a conversão de uma máquina Windows UEFI proveniente de Microsoft Azure ou um Microsoft Hyper-V para permitir que seja executada na arquitetura Plenit.
Do mesmo modo, neste mesmo tutorial, pode ver-se como solucionar a corrupção do arranque de uma máquina Microsoft Windows.
Como se pode ver, são processos um pouco mais complicados do que o habitual, mas foram descritos de uma forma guiada, através de passos bem definidos, para que o leitor não tenha problemas.
Esperamos que com este pequeno guia não tenhas problemas na conversão de discos UEFI para BIOS e não tenhas problemas em solucionar possíveis problemas no Setor de arranque, mas se os tiveres, não hesites em contactar connosco para que possamos dar-te uma ajuda.
Obrigado pela tua confiança!
Última atualização
Isto foi útil?

