É seguro excluir o GRUB2 Stage 2 (e inicializar manualmente)?

1

Eu tenho o GRUB2 instalado em / dev / sda, da maneira usual (estágio 1 no MBR e estágio 1.5 nos setores 0-63); Estou usando o BIOS / MBR. Existem quatro partições no meu disco:

  1. Win10 100 MB - Reservado
  2. Win10 30 GB
  3. Linux 20 GB
  4. Partição de dados (pense nisso como /home ) - o resto do disco

O estágio 2 do GRUB2 é, obviamente, instalado em /dev/sda3 sob /boot/grub/ . Agora, a questão é, posso apagar /dev/sda3 e /dev/sda4 e ainda ser capaz de inicializar no Win10 a partir da linha de comando do GRUB manualmente? Usando insmod part_msdos , insmod ntfs etc., até chainloader +1 .

De acordo com o wiki , tudo bem, mas algumas outras fontes na internet sugerem que você pode ficar preso após a exclusão do estágio 2 (essas fontes podem se referir ao legado do GRUB, no entanto).

Por que preciso fazer isso? Gostaria de estender /dev/sda2 . A maneira mais confiável de fazer isso, até onde eu sei, é usar a ferramenta padrão de particionamento de disco Win 10 (eu realmente não confiaria no Linux com isso). É supostamente arriscado fazê-lo enquanto inicializado na mesma partição que você está tentando estender, mas eu o fiz e funciona bem (há também alguns softwares de terceiros que o manuseiam mais suavemente estendendo-o entre as botas). / p>

Então, eu gostaria de excluir /dev/sda3/ , /dev/sda4/ , estender /dev/sda2/ , depois inicializar no Live USB, reparticionar o espaço não alocado, instalar o Linux, instalar o GRUB e terminar.

Estou apenas preocupado, e se algo der errado (o que geralmente acontece), poderei inicializar manualmente?

Existe uma outra maneira: instalar o GRUB2 Stage 2 em um USB (o USB vem antes do HDD na minha ordem de inicialização do BIOS) e inicializar a partir do USB. Mas isso é desajeitado (e eu nunca fiz isso antes), então eu preferiria evitá-lo, se possível.

(eu fiz de volta, é claro).

    
por gsarret 23.05.2018 / 03:31

1 resposta

0

Acontece que não é como está, mas é com esforço extra preliminar .

O que eu fiz

  1. Inicialize a partir do Linux LiveUSB, monte /dev/sda3 (partição Linux com grub), mv /boot/grub /boot/grib (ou qualquer coisa, apenas para que o estágio 1.5 não consiga mais encontrar o estágio 2)
  2. Reinicialize a partir do HDD, o grub, sem surpresa, não carrega o estágio 2 e retorna ao modo de recuperação do grub
  3. No entanto, o modo de recuperação tem apenas um suporte mínimo, por exemplo, você pode executar insmod part_msdos , mas nem insmod ntfs , nem chainloader +1 e assim por diante. Ele tem suporte para ext4 , embora (é claro).
  4. Consegui carregar manualmente todos os módulos necessários (usando o caminho completo como insmod (hd1,msdos3)/boot/grib/i386-pc/ntfs.mod ou simplesmente definindo o prefixo primeiro: set prefix=(hd1,msdos3)/boot/grib e usando caminhos relativos depois disso: insmod ntfs )
  5. Você pode facilitar um pouco sua vida carregando o módulo normal e, em seguida, inserindo normal , que leva o grub do modo de recuperação para a linha de comando do grub. A partir daí, você pode carregar novamente todos os módulos necessários (por exemplo, o módulo chainloader também deve ser carregado)
  6. Finalmente, carregue Win10 (ou qualquer outra coisa) replicando a mesma seqüência de comando exata de grub.cfg

Solução

Então, considerando tudo isso, acredito que seja uma correção temporária simplesmente copiar todo o diretório i386-pc para um USB separado e carregar os módulos manualmente, conforme necessário. Apenas certifique-se de que o USB separado esteja formatado como MBR e tenha uma partição ext4 .

Atualização: de fato funciona. Simplesmente formatar um dispositivo USB como MBR, criar uma partição ext4 e copiar (corretamente configurado) /boot/grub/ da instalação anterior faz o truque. Quando o grub voltar ao resgate, basta digitar set prefix=(hdX,msdosY)/boot/grub (onde X é o número da sua unidade USB e Y é a partição correspondente), então insmod normal e normal . É isso aí, grub stage 2 carrega e funciona muito bem.

    
por 23.05.2018 / 18:03