Atualização do Windows 10 levou ao resgate grub

62

Eu estava inicializando o Windows 7 e Linux Ubuntu no meu desktop, e hoje é o dia em que eles deram atualizações gratuitas do Windows 10. Que legal! Eu tenho a atualização, e foi instalar, e saí para ir tirar uma soneca de 30 minutos. No entanto, quando voltei ao meu computador, ele me levou ao prompt de resgate do grub.

error: no such partition.
Entering rescue mode...
grub rescue>

Eu recebo o seguinte quando digito ls :

grub rescue> ls
(hd0) (hd0,msdos5) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1)

Depois de uma rápida olhada nas pessoas que encontraram o prompt de resgate do grub, digitei set e obtive o seguinte

grub rescue> set
cmdpath=(hd0)
prefix=(hd0,msdos6)/boot/grub
root=hd0,msdos6

Eu ainda estava meio perdido depois de descobrir que certos comandos como normal não funcionavam, e então achei um tutorial em vídeo onde você inicializa a partir de um cd de imagem do Linux e executa alguns comandos no terminal. Felizmente, eu tinha meu CD comigo e saí de lá. Quando eu digitei sudo fdisk -l no terminal, foi o seguinte:

[email protected]:~$ sudo fdisk -l

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc03ede74

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sda2          206848  1547022335   773407744    7  HPFS/NTFS/exFAT
/dev/sda3      1547022336  1547943935      460800   27  Hidden NTFS WinRE
/dev/sda4      1547945982  1953521663   202787841    f  W95 Ext'd (LBA)
/dev/sda5      1915731968  1953521663    18894848    7  HPFS/NTFS/exFAT

Diz aqui que nenhum dos meus dispositivos tem o sistema Linux neles! E eu não pude seguir o tutorial em vídeo mais do que isso ...

Eu provoquei um pouco meu cérebro e determinei que o sda2 continha meu sistema Windows (já que lembro que meu drive C: tem cerca de 700 GB de espaço). Depois de pensar um pouco mais, lembro-me de atribuir cerca de 200-ish GB do meu espaço no disco rígido para algo que o Ubuntu está relacionado ao instalar o Ubuntu. Eu não lembro exatamente qual, mas eu acho que era basicamente "espaço em disco" do Ubuntu, e não tinha nenhum arquivo de inicialização neles. Eu atribuí duas outras coisas para o linux, mas elas eram muito pequenas em tamanho (não quebrando a marca de 1 GB ainda).

Então, alguém aqui pode me ajudar a recuperar minha atualização? Eu não me importarei se eu acabar tendo que remover completamente as partições que possuem Linux nelas.

    
por LChaos2 30.07.2015 / 00:44

5 respostas

56

Meu computador veio com o Windows 8 pré-instalado, então reduzi a partição do Windows para abrir espaço para o Ubuntu. Foi assim que funcionou no ano passado. Após a segunda reinicialização na atualização do Windows 10, o computador não inicializou mais. O GRUB exibiu apenas um prompt de comando grub rescue . Eu descobri mais tarde que o problema ocorreu porque o Windows de alguma forma mudou o esquema de partição. A partição de inicialização (contendo dados normais do GRUB) não estava mais onde o GRUB esperava. Eu não sei como e porque isso aconteceu.

A primeira coisa que você pode fazer no modo de recuperação é ver as partições com o comando ls . Os meus eram:

  • (hd0, gpt1),
  • (hd0, gpt2),
  • etc.

Tente descobrir qual partição é sua partição de inicialização. Não há conclusão do Tab , você tem que digitá-lo completamente. Eu tentei os seguintes comandos até encontrar a partição correta:

ls (hd0,gpt1)/
ls (hd0,gpt1)/boot
ls (hd0,gpt2)/

etc.

Em seguida, digite set no mesmo prompt. Ele irá exibir onde o GRUB procura por seus arquivos. No meu caso (hd0, gpt6) foi movido para (hd0, gpt7). O comando set exibido:

prefix=(hd0,gpt6)/boot/grub
root=hd0,gpt6

Para voltar ao GRUB normal, comece alterando a configuração prefix para apontar para a partição correta. No meu caso, o comando era:

set prefix=(hd0,gpt7)/boot/grub

Então você pode mudar de resgate para o modo normal:

insmod normal
normal

Também é possível ter corrigido a configuração root com:

set root=(hd0,gpt7)

Mas isso não é estritamente necessário, pois não importa para as entradas de carregamento de corrente do Windows. Uma vez no menu normal do GRUB, você pode inicializar o Windows e concluir a atualização do Windows. O problema é que você precisa informar ao GRUB sobre as partições corretas em cada reinicialização. Foi assim que eu fiz. Deixei o problema do GRUB para mais tarde porque não tinha certeza se o Windows faria mais algumas alterações nas partições ou na inicialização.

Quando o Windows terminou, comecei a resolver problemas do GRUB. Pressione e para editar as opções de inicialização para o Ubuntu. Eu mudei todo o (hd0,gpt6) para (hd0,gpt7) e o Ubuntu inicializou.

No entanto, eu uso partição criptografada e cryptswap. No boot, o Ubuntu me pediu a senha. Felizmente eu salvei na instalação do Ubuntu e entrei no boot. Ubuntu inicializado sem problemas.

Em seguida, corrigi o arquivo /boot/grub/grub.cfg , no qual substituí o (hd0,gpt6) por (hd0,gpt7) e executei:

sudo grub-install

Nesse ponto, o único problema restante era a criptografia. Como o número da partição do Ubuntu raiz foi aumentado em um (7 em vez de 6), a partição swap sofreu uma alteração semelhante. Eu tive que alterar o arquivo /etc/crypttab para apontar para /dev/sda8 em vez de /dev/sda7 .

Estou usando apenas duas partições para o Ubuntu (root e swap). Se outros sistemas operacionais que coexistem com o Windows utilizarem mais partições, poderá haver mais mudanças necessárias. Especialmente se as partições são montadas de acordo com seus números e não por seus UUIDs. Dê uma olhada no seu /etc/fstab . Se as partições forem identificadas pelo UUID, não haverá problemas. Mas se houver /dev/... linhas, o número deve ser corrigido se essas partições tiverem sido renumeradas.

    
por nobody 31.07.2015 / 14:12
13

Instalar o Windows (ou atualizá-lo) ao lado do Linux pode ser problemático.

Tente isto: link



Eu usei-o para consertar um problema depois que instalei a prévia de tecnologia do Windows 10 e funcionou. Basicamente, o que ele faz é reinstalar o grub para trabalhar com todos os sistemas operacionais atualmente instalados. Certifique-se de dizer para instalar o grub na sua partição linux (sd #).

Boa sorte!

    
por pdf4664 30.07.2015 / 00:50
9

Antes de alterar as partições, faça um backup e salve em outro dispositivo. Se não for sda, mude para a unidade correta. Então você pode começar de novo se você restaurar o conjunto incorreto com o testdisk. Você só quer tudo atual, mais faltando Lógico ao restaurar com o testdisk.

sudo sfdisk -d /dev/sda > parts.txt

Sua partição ausente está aqui ou entre o início da partição estendida em 1547 ... & amp; primeira partição mostrada em 1915 ...:

/dev/sda4      1547945982  1953521663   202787841    f  W95 Ext'd (LBA)
/dev/sda5      1915731968  1953521663    18894848    7  HPFS/NTFS/exFAT

Você pode usar o testdisk, mas ele usa o CHS. Você tem que escolher todas as partições existentes e a partição ausente como lógica. Pode mostrar muitas versões dependendo de quantas vezes você alterou as partições. Portanto, escolha o tamanho que corresponda à falta sem sobrepor outras partições atuais. Alguns que restauraram corretamente foram capazes de inicializar, outros precisam reinstalar o grub. E alguns não conseguiram corrigir a partição de restauração.

link

Outra ferramenta de restauração é parted rescue. Ele usa setores, mas o intervalo que você fornece deve estar fora da partição ausente, sem sobreposição para as partições atuais. Melhor se você souber o início exato & amp; fim. Veja man parted

link

Usuário que usou o resgate parted:

link

    
por oldfred 31.07.2015 / 17:38
5

É um bug desagradável no particionador do Windows, e não específico do Linux. Ele ironicamente excluiu uma partição NTFS no meu caso.

O instalador do Windows 10 cria uma nova partição (seu /dev/sda3 ) gravada no final da partição principal do Windows sda2 se a partição de inicialização do Windows sda1 for muito pequena para conter o Ambiente de Recuperação do Windows 10.

Quando reescreve a tabela de partição para fazer isso, para cada partição lógica na tabela de partição estendida sda4 , se ela estiver localizada no disco antes do número da partição anterior, ela desiste.

No seu caso, suas partições do Linux estavam localizadas em seu disco antes do seu novo sda5 , mas tinham números de partições mais altos do que o sda5 antes do reparticionamento.

Se você examinar os enormes logs de atualização do Windows 10, verá uma mensagem como "6 antes de 5, Nada a fazer", junto com as tabelas de partição antigas e novas.

O Windows não sobrescreve o conteúdo das partições que ele exclui, portanto, é possível recuperá-las se você puder encontrar onde elas estão. No meu caso, eu tinha backups da tabela de partições, mas usando o testdisk como explicado na resposta do oldfred tem uma excelente chance de encontrá-los todos. Resgate parcial será difícil de usar, já que mais de uma partição foi excluída no seu caso.

Para usar testdisk no seu Ubuntu Live CD, digite em um terminal sudo apt-get install testdisk para instalá-lo, e sudo testdisk para rodar.

Depois de reparar a tabela de partições, a partição do Linux que contém o GRUB pode ter um número diferente de antes, então você pode acabar no prompt de resgate do GRUB. Em caso afirmativo, o Boot Repair poderá corrigir o GRUB.

Novamente, usando o seu Live CD do Ubuntu, digite:

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair

para instalar e executar.

Agora o Windows pode concluir sua atualização.

    
por Martin Thornton 18.08.2015 / 00:02
0

Para usar o reparo de inicialização, você precisa definir no BIOS:

  • Ativar UEFI (no meu BIOS é:)

    Suporte legado DISABLE

  • Desativar inicialização segura

Provavelmente, você tem a Inicialização segura ativada, para obter o erro "arquivo assinado incorretamente".

    
por iacobus 30.07.2015 / 23:18