O Update-manager desinstalou o GRUB - como voltar ao Ubuntu?

1

Eu corro o Ubuntu 14.04 e sempre atualizo regularmente (quase todos os dias). Hoje, em 8 de julho, a atualização do Ubuntu se comportou de maneira diferente do usual. Ele disse "Nem todas as atualizações podem ser instaladas" e sugeriu uma "atualização parcial". Nunca tentei isso, mas confio no Ubuntu. Uma das coisas que notei na lista de atualização foi o bootloader GRUB, mas ei, eu confio no Ubuntu.

Após a conclusão, ele me pediu para reiniciar e, quando faço isso, ele é inicializado diretamente no Windows. Ou seja, o GRUB é efetivamente desinstalado e não tenho escolha se quero iniciar o Ubuntu agora. Eu não sou um tubarão no Linux ou no Windows, mas me sinto muito mais deficiente no Windows 8 (ele veio apenas em pacote).

O Ubuntu ainda está presente no laptop? Se sim, como posso voltar a ela o mais rápido possível? (Eu tenho uma apresentação para dar no fim de semana e configurar um novo sistema e buscar dados de backup é lento).

Falha ao instalar o seguinte resposta de Christian Benke

Agora estou investigando o sistema com um pendrive do Ubuntu.

ubuntu@ubuntu:~$ sudo parted -l
Model: ATA TOSHIBA THNSNJ25 (scsi)
Disk /dev/sda: 256GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system     Name                  Flags
 1      1049kB  1075MB  1074MB  ntfs            Basic data partition  hidden, diag
 2      1075MB  1180MB  105MB   fat32           Basic data partition  boot
 3      1180MB  1314MB  134MB   ntfs            Basic data partition  msftres
 4      1314MB  44.7GB  43.4GB  ntfs            Basic data partition  msftdata
 6      44.7GB  46.7GB  2000MB  linux-swap(v1)
 7      46.7GB  244GB   197GB   ext4
 5      244GB   256GB   12.1GB  ntfs            Basic data partition  hidden, diag

Um rápido "sudo mkdir / media / [ponto de montagem]" seguido por "sudo mount / dev / sda [X] / media / [ponto de montagem]" permitiu a inspeção das partições:

/dev/sda1  Windows boot files
/dev/sda2  EFI files
/dev/sda3  Empty
/dev/sda4  Windows system
/dev/sda5  Toshiba recovery
/dev/sda6  Ubuntu swap partition (not mountable)
/dev/sda7  Ubuntu system

Obviamente, / dev / sda7 é o que eu quero continuar.

ubuntu@ubuntu:~$ sudo mkdir /media/oldroot
ubuntu@ubuntu:~$ sudo mount /dev/sda7 /media/oldroot
ubuntu@ubuntu:~$ sudo mount --bind /dev /media/oldroot/dev
ubuntu@ubuntu:~$ sudo mount --bind /proc /media/oldroot/proc
ubuntu@ubuntu:~$ sudo mount --bind /sys /media/oldroot/sys
ubuntu@ubuntu:~$ sudo chroot /media/oldroot /bin/sh 
# lsb_release -d
Description:    Ubuntu 14.04.2 LTS
# grub-install /dev/sda
Installing for x86_64-efi platform.
grub-install: error: cannot find EFI directory.
# exit

Claramente, o grub-install não encontrou os arquivos EFI em / dev / sda2, mas montá-lo anteriormente em / media / oldroot / boot / efi parecia funcionar bem:

ubuntu@ubuntu:~$ sudo mount /dev/sda2 /media/oldroot/boot/efi
ubuntu@ubuntu:~$ sudo chroot /media/oldroot /bin/sh 
# lsb_release -d
Description:    Ubuntu 14.04.2 LTS
# grub-install /dev/sda
Installing for x86_64-efi platform.
Installation finished. No error reported.
# update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.16.0-43-generic
Found initrd image: /boot/initrd.img-3.16.0-43-generic
Found linux image: /boot/vmlinuz-3.16.0-41-generic
Found initrd image: /boot/initrd.img-3.16.0-41-generic
Found linux image: /boot/vmlinuz-3.16.0-40-generic
Found initrd image: /boot/initrd.img-3.16.0-40-generic
Found linux image: /boot/vmlinuz-3.16.0-39-generic
Found initrd image: /boot/initrd.img-3.16.0-39-generic
Found linux image: /boot/vmlinuz-3.16.0-38-generic
Found initrd image: /boot/initrd.img-3.16.0-38-generic
Found linux image: /boot/vmlinuz-3.16.0-37-generic
Found initrd image: /boot/initrd.img-3.16.0-37-generic
Found linux image: /boot/vmlinuz-3.16.0-36-generic
Found initrd image: /boot/initrd.img-3.16.0-36-generic
Found linux image: /boot/vmlinuz-3.16.0-34-generic
Found initrd image: /boot/initrd.img-3.16.0-34-generic
Found linux image: /boot/vmlinuz-3.16.0-33-generic
Found initrd image: /boot/initrd.img-3.16.0-33-generic
Adding boot menu entry for EFI firmware configuration
done
# exit    

Isso não resolveu o problema, no entanto. Após a reinicialização, o GRUB não apareceu e foi diretamente para o Windows novamente? Obrigado até agora, o que parece ser o problema desta vez?

Falha ao reinstalar os pacotes afetados

Como sugerido, eu examino o arquivo apt / history.log para ver o que aconteceu durante a "atualização parcial" que parou o funcionamento do GRUB. Infelizmente, não contém entrada para a atualização em 8 de julho:

ubuntu@ubuntu:~$ cat /media/summer7/var/log/apt/history.log

Start-Date: 2015-07-03  09:32:40
Commandline: aptdaemon role='role-commit-packages' sender=':1.79'
Upgrade: lightdm:amd64 (1.10.5-0ubuntu1, 1.10.5-0ubuntu1.1), liblightdm-gobject-1-0:amd64 (1.10.5-0ubuntu1, 1.10.5-0ubuntu1.1)
End-Date: 2015-07-03  09:32:42

Start-Date: 2015-07-05  20:02:01
Commandline: aptdaemon role='role-commit-packages' sender=':1.85'
Upgrade: libxcomp3:amd64 (3.5.0.31-0~605~ubuntu14.04.1, 3.5.0.32-0~668~ubuntu14.04.1), nxproxy:amd64 (3.5.0.31-0~605~ubuntu14.04.1, 3.5.0.32-0~668~ubuntu14.04.1), irqbalance:amd64 (1.0.6-2ubuntu0.14.04.1, 1.0.6-2ubuntu0.14.04.2)
End-Date: 2015-07-05  20:02:04

Start-Date: 2015-07-07  20:00:24
Commandline: aptdaemon role='role-commit-packages' sender=':1.81'
Install: linux-image-3.16.0-43-generic:amd64 (3.16.0-43.58~14.04.1), linux-headers-3.16.0-43:amd64 (3.16.0-43.58~14.04.1), linux-headers-3.16.0-43-generic:amd64 (3.16.0-43.58~14.04.1), linux-image-extra-3.16.0-43-generic:amd64 (3.16.0-43.58~14.04.1), linux-signed-image-3.16.0-43-generic:amd64 (3.16.0-43.58~14.04.1)
Upgrade: linux-signed-image-generic-lts-utopic:amd64 (3.16.0.41.33, 3.16.0.43.34), libfontembed1:amd64 (1.0.52-0ubuntu1.4, 1.0.52-0ubuntu1.5), linux-image-generic-lts-utopic:amd64 (3.16.0.41.33, 3.16.0.43.34), cups-browsed:amd64 (1.0.52-0ubuntu1.4, 1.0.52-0ubuntu1.5), linux-signed-generic-lts-utopic:amd64 (3.16.0.41.33, 3.16.0.43.34), cups-filters-core-drivers:amd64 (1.0.52-0ubuntu1.4, 1.0.52-0ubuntu1.5), cups-filters:amd64 (1.0.52-0ubuntu1.4, 1.0.52-0ubuntu1.5), libgtksourceview2.0-0:amd64 (2.10.5-1ubuntu2, 2.10.5-1ubuntu2.14.04.1), linux-generic-lts-utopic:amd64 (3.16.0.41.33, 3.16.0.43.34), linux-libc-dev:amd64 (3.13.0-55.94, 3.13.0-57.95), libgtksourceview2.0-common:amd64 (2.10.5-1ubuntu2, 2.10.5-1ubuntu2.14.04.1), linux-headers-generic-lts-utopic:amd64 (3.16.0.41.33, 3.16.0.43.34), libcupsfilters1:amd64 (1.0.52-0ubuntu1.4, 1.0.52-0ubuntu1.5)
End-Date: 2015-07-07  20:01:11

Na verdade, parece um pouco pequeno em comprimento, não é? Além disso, a última entrada foi de 2 horas no futuro em comparação com quando o arquivo foi tocado por último:

ubuntu@ubuntu:~$ ls -l /media/summer7/var/log/apt/history.log
-rw-r--r-- 1 root root 1925 Jul  7 18:01 /media/summer7/var/log/apt/history.log

Então, talvez estejamos olhando para uma corrupção de arquivos aqui? Ah, bem, eu tentei uma atualização do apt-get e não funcionou:

ubuntu@ubuntu:~$ sudo mount --bind /dev /media/oldroot/dev
ubuntu@ubuntu:~$ sudo mount --bind /proc /media/oldroot/proc
ubuntu@ubuntu:~$ sudo mount --bind /sys /media/oldroot/sys
ubuntu@ubuntu:~$ sudo chroot /media/oldroot apt-get update

Tudo falhou ao buscar o erro "não foi possível resolver", muito parecido com pergunta . O seguinte falha

ubuntu@ubuntu:~$ sudo chroot /media/oldroot ping dk.archive.ubuntu.com
ping: unknown host dk.archive.ubuntu.com

e o arquivo /media/oldroot/etc/resolv.conf está completamente vazio. Isso é um mau sinal?

    
por user2646234 08.07.2015 / 09:29

2 respostas

1

Eu tive esse mesmo problema comigo no mesmo dia que você fez. Eu estava trabalhando em algumas coisas, o Ubuntu sugeriu uma atualização parcial, eu cumpri e, em seguida, passei a maior parte de ontem tentando reinstalar o grub (sem sucesso).

Minha instalação foi dual boot com o windows 8.1, assim, além das partições do Windows, eu tinha três partições linux: uma para o sistema ("/"), uma para home ("/ home") e outra para swap. Não consegui reinstalar o grub usando o reparo de inicialização, então iniciei usando um thumb-drive do ubuntu e iniciei o instalador.

Quando me perguntou o que eu queria fazer, selecionei outra coisa. Em seguida, configurei meu diretório de sistema original "/" como a partição raiz e informei ao instalador para formatá-lo, defini swap como swap e meu diretório home como "/ home", mas informei ao instalador para não formatar o diretório inicial.

Eu também disse ao instalador para instalar o gerenciador de inicialização no disco (/ dev / sda no meu caso) e não uma partição. A instalação concluída, no grub reboot apareceu e eu era capaz de reiniciar o Ubuntu e Windows 8.1.

Meu diretório pessoal estava completamente intacto, meu plano de fundo da área de trabalho e .bashrc carregados automaticamente e, depois que comecei a reinstalar os programas, fui automaticamente conectado ao teamviewer, ao chrome etc.

Se você tiver partições / home e de sistema separadas, essa pode ser a melhor correção. Não há perda de dados e a reinstalação não demora muito.

    
por Gregory Butron 09.07.2015 / 17:43
1

Você pode usar um pequeno sistema operacional inicializável como Grml e o comando chroot para voltar ao seu antigo sistema para consertar o bootloader quebrado.

Depois de ter iniciado a partir do live-cd, você deseja obter acesso ao sistema de arquivos do seu sistema Linux instalado. Então, a primeira coisa que você faz é montar a partição raiz do Linux instalado (como usuário root no seu live-cd-environment):

# mkdir /media/oldroot
# mount /dev/sda1 /media/oldroot

Se você não tiver certeza de qual é a sua partição Linux, monte todas as partições disponíveis e verifique qual delas é sua partição-raiz.

O próximo passo para obter um ambiente chroot funcional é montar os pseudo-sistemas de arquivos ( / dev , / proc , / sys ) do seu live-cd-environment dentro da partição raiz que acabamos de montar:

# mount --bind /dev /media/oldroot/dev
# mount --bind /proc /media/oldroot/proc
# mount --bind /sys /media/oldroot/sys

Agora nosso sistema está pronto para ser chrooted, o que significa que você "substitui" o ambiente do seu live-cd pelo sistema instalado (também dizemos para ele usar / bin / sh como o comando -prompt no ambiente instalado:

# chroot /media/oldroot /bin/sh
# 

Verifique se você está no seu antigo Linux instalado:

# lsb_release -d
Description:    Ubuntu 14.04.2 LTS

No chroot, tente executar

# grub-install /dev/sda

para reinstalar o grub-bootloader no registro mestre de inicialização do seu disco rígido.

Se o grub2 realmente foi desinstalado e o grub-install não existe, você pode reinstalá-lo copiando o grub2-package para um usb-stick:

Faça o download do arquivo deb do link e copie-o para um pendrive. Monte o usb-stick dentro do seu chroot (Use Alt-F2 para obter um segundo tty no ambiente live-cd para montar o dispositivo USB, volte para o ambiente chroot com Alt-F1 depois):

-- Press <Alt-F2> to get to the second tty of the live-cd-env
# mkdir /media/oldroot/media/<yourusername>/usb_stick
# mount /dev/sdb1 /media/oldroot/media/<youruser>/usb_stick

-- Press <Alt-F1> to get back to the first tty to our chroot
# cd /media/<yourusername>/usb_stick
# ls
dpkg -i grub2_2.02~beta2-9_amd64.de
# dpkg -i grub2_2.02~beta2-9_amd64.deb

Depois disso, continue com grub-install .

    
por Christian Benke 08.07.2015 / 10:14