é diferente, nesse caso, a pasta / boot foi completamente excluída. não apenas alguns arquivos, obrigado.
Imad Nouari
Eu não acho que nenhuma das respostas sobre a outra pergunta seja suficiente para corrigir isso.
Graeme
É justo, realmente não leu todas as respostas. Eu sempre sugeriria reconstruir a coisa toda, em vez de tentar descobrir o que estava faltando, de modo que alguém lá também teria. Leva metade do tempo.
Tentáculos de Cthulhu
7
O erro muito maior comparado à exclusão /booté, é claro, reiniciar o sistema antes que isso fosse corrigido.
Anthon
Respostas:
36
Opa!
Aqui está o que fazer:
Inicialize uma distribuição ao vivo. Este pode ser o seu disco de instalação do Ubuntu ou outro como o Knoppix .
Encontre a unidade / partição em que você instalou seu sistema de arquivos raiz. Para fazer isso, você pode abrir um terminal e executar sudo parted -lou sudo fdisk -l. Se você não souber, edite sua pergunta e adicione a saída.
Supondo que a partição raiz que você encontrou da última etapa seja /dev/sdxy( xdeve ser outra letra e ydeve ser um número), execute os seguintes comandos em um terminal:
mkdir mnt
sudo mount /dev/sdxy mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot mnt
Agora você estará dentro de um chrootambiente, o que significa que executar comandos aqui é equivalente a executá-los em seu sistema instalado. A primeira coisa que você deseja fazer é reinstalar o GRUB2 no dispositivo para que ele copie os arquivos corretos na /bootpasta. Para fazer isso, execute o seguinte com a unidade em que sua partição raiz está (ou seja, /dev/sdxycom o número ( y) removido):
grub-install /dev/sdx
Agora você deseja descobrir quais pacotes instalados possuem arquivos no diretório de inicialização e reinstalá-los. Isso substituirá as imagens do kernel que foram excluídas entre outras coisas. O comando para encontrar os pacotes é:
dpkg -S /boot
E para reinstalá-los:
apt-get --reinstall install ...
Onde ...é substituído pelos nomes dos pacotes do primeiro comando. Não inclua vírgulas, apenas tenha os nomes dos pacotes com espaços para separar.
Essa etapa provavelmente exigirá acesso à Internet (a menos que os pacotes já estejam no cache), portanto, verifique se você está conectado se houver algum problema.
Como você excluiu seus kernels e os reinstalou, isso deve ter acionado uma atualização do GRUB2 automaticamente. Mas, caso não tenham, você pode executar:
update-grub
Reinicie e agora as coisas devem ser corrigidas. Um problema que tive na última vez que fiz algo semelhante foi que as instalações do Windows não foram encontradas update-grubquando executadas no chrootdevido a um erro no Windows os-prober. Se este for um problema, basta executar sudo update-grubnovamente no sistema reparado.
@ Oliver, obrigado eu originalmente tinha em /dev/sdaxtodos os lugares, em seguida, mudou para /dev/sdxy.
Graeme
Obrigado pela ótima informação - ele me salvou, com uma adição. Como tenho um RAID de software, também tive que seguir as instruções aqui: help.ubuntu.com/community/Grub2/Instalando sob a reinstalação usando o método chroot para iniciar o mdadm e montar os membros do RAID e fazer as montagens adequadamente. Depois do chroot, reinstale os pacotes como descrito nesta resposta e está tudo bem!
/boot
é, é claro, reiniciar o sistema antes que isso fosse corrigido.Respostas:
Opa!
Aqui está o que fazer:
Inicialize uma distribuição ao vivo. Este pode ser o seu disco de instalação do Ubuntu ou outro como o Knoppix .
Encontre a unidade / partição em que você instalou seu sistema de arquivos raiz. Para fazer isso, você pode abrir um terminal e executar
sudo parted -l
ousudo fdisk -l
. Se você não souber, edite sua pergunta e adicione a saída.Supondo que a partição raiz que você encontrou da última etapa seja
/dev/sdxy
(x
deve ser outra letra ey
deve ser um número), execute os seguintes comandos em um terminal:Agora você estará dentro de um
chroot
ambiente, o que significa que executar comandos aqui é equivalente a executá-los em seu sistema instalado. A primeira coisa que você deseja fazer é reinstalar o GRUB2 no dispositivo para que ele copie os arquivos corretos na/boot
pasta. Para fazer isso, execute o seguinte com a unidade em que sua partição raiz está (ou seja,/dev/sdxy
com o número (y
) removido):Agora você deseja descobrir quais pacotes instalados possuem arquivos no diretório de inicialização e reinstalá-los. Isso substituirá as imagens do kernel que foram excluídas entre outras coisas. O comando para encontrar os pacotes é:
E para reinstalá-los:
Onde
...
é substituído pelos nomes dos pacotes do primeiro comando. Não inclua vírgulas, apenas tenha os nomes dos pacotes com espaços para separar.Essa etapa provavelmente exigirá acesso à Internet (a menos que os pacotes já estejam no cache), portanto, verifique se você está conectado se houver algum problema.
Como você excluiu seus kernels e os reinstalou, isso deve ter acionado uma atualização do GRUB2 automaticamente. Mas, caso não tenham, você pode executar:
Reinicie e agora as coisas devem ser corrigidas. Um problema que tive na última vez que fiz algo semelhante foi que as instalações do Windows não foram encontradas
update-grub
quando executadas nochroot
devido a um erro no Windowsos-prober
. Se este for um problema, basta executarsudo update-grub
novamente no sistema reparado.fonte
/dev/sdax
todos os lugares, em seguida, mudou para/dev/sdxy
.