Desinstalou acidentalmente todos os kernels

0

Estou executando o servidor Ubuntu 12.04 LTS LAMP. Eu recebi um erro dizendo que meu diretório raiz estava cheio depois de executar um apt-get dist-upgrade, então seguindo as instruções que encontrei online, eu desinstalei alguns dos kernels antigos usando o apt-get. No entanto, eu de alguma forma acidentalmente desinstalei todos os kernels. Meu sistema não será reiniciado agora.

Encontrei um tópico de 2011 sobre como resolver esse problema Como restaurar um sistema após a remoção acidental de todos os kernels? / a>

Mas quando tento seguir as instruções, elas não funcionam para mim.

Quando faço isso:

sudo parted -l

Eu entendo isso:

Model: ATA WDC WD20EZRX-00D (scsi)
Disk /dev/sda: 2000GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos

Number  Start   End     Size    Type      File system  Flags
 1      1049kB  256MB   255MB   primary   ext2         boot
 2      257MB   2000GB  2000GB  extended
 5      257MB   2000GB  2000GB  logical                lvm


Warning: Unable to open /dev/sr0 read-write (Read-only file system).  /dev/sr0
has been opened read-only.

Error: Can't have a partition outside the disk!

Eu não entendo porque a partição 1 é ext2, já que esta era uma nova instalação do 12.04 LTS, mas eu fiz este comando conforme as instruções:

sudo mount /dev/sda1 /mnt

Então eu tentei este comando:

sudo mount --bind /dev /mnt/dev

e ele disse que não conseguiu encontrar o ponto de montagem.

Então, eu fiz isso:

mkdir /mnt/dev

e depois montou.

Ok, agora estou pronto para o chroot de acordo com as instruções:

sudo chroot /mnt

E eu entendo isso:

chroot: failed to run command '/bin/bash': No such file or directory

Peço desculpas antecipadamente, mas não sei o suficiente sobre o Linux para descobrir o que está acontecendo aqui. Alguém poderia me ajudar, por favor? Levarei muito tempo para reinstalar tudo no meu servidor.

ATUALIZAÇÃO: Obrigado pela sua resposta. Quando eu entro

sudo pvs 

Eu recebo:

PV         VG         Fmt  Attr PSize PFree  
/dev/sda5  HOP-Server lvm2 a-   1.82t 136.00m

Então, eu entro

sudo lvdisplay /dev/HOP-Server

e consiga isto:

  --- Logical volume ---
  LV Name                /dev/HOP-Server/root
  VG Name                HOP-Server
  LV UUID                feUsjU-HFHi-WFre-322J-SlWF-0J1K-zpiTQX
  LV Write Access        read/write
  LV Status              NOT available
  LV Size                1.81 TiB
  Current LE             474993
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto

  --- Logical volume ---
  LV Name                /dev/HOP-Server/swap_1
  VG Name                HOP-Server
  LV UUID                tuJSFw-EKU4-oeLI-A934-srj2-DA2L-VqZtYr
  LV Write Access        read/write
  LV Status              NOT available
  LV Size                7.20 GiB
  Current LE             1843
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto

Isso é um pouco diferente do seu exemplo, mas presumo que devo entrar

sudo mount /dev/HOP-Server/root /mnt  **UPDATED**

Mas quando eu faço, eu entendo isso:

mount: special device /dev/HOP-Server/root does not exist

** UPDATE: ** Eu usei esta página para me ajudar a montar a partição do sistema de arquivos:

http://linuxwave.blogspot.com/2007/11/mounting-lvm-disk-using-ubuntu-livecd.html

Depois disso, consegui seguir o restante das instruções originais sem erros. No entanto, quando eu reinicio, as únicas opções são para iniciar duas versões do utilitário de teste de memória. Eu reiniciei o live CD novamente e segui as instruções novamente. Quando cheguei ao apt-get para o kernel, ele disse que está atualizado.

UPDATE: Ok, montei as partições novamente, e posso ver que em / root é um arquivo chamado initrd.img-3.2.0-56-generic. IIRC, esse é o kernel mais recente. Eu corri o update-grub, mas isso me deu o erro "não consigo encontrar um dispositivo para /".

UPDATE: Após outra pesquisa, encontrei isto:

http://sourceforge.net/apps/mediawiki/bootinfoscript/index.php?title=Boot_Problems:Cannot_Find_A_Device_For_boot/grub

Eu segui esse procedimento e não houve erros. No entanto, agora quando eu inicializo, eu entendo isso:

error: ELF header smaller than expected
grub rescue> 
    
por user217202 19.11.2013 / 08:16

1 resposta

7

Seu Ubuntu parece estar usando um LVM como sua raiz. A partição ext2 que você montou contém as necessidades básicas para tornar seu sistema capaz de inicializar e montar o lvm, o resto - incluindo bash - está armazenado lá.

Para encontrar o volume LVM contendo seus dados, você precisa do pacote lvm2 , que não está instalado em um sistema ativo. Assim, instale-o.

sudo apt-get install lvm2

Encontre o grupo de volumes que contém sua partição raiz listando todos os grupos de volumes.

sudo pvs

A saída deve se parecer com

PV         VG   Fmt  Attr PSize PFree  
/dev/sda2  vg1  lvm2 a--  1,64t 236,91g

A segunda coluna contém o nome do grupo de volumes, neste caso vg1 . Com isso, você pode obter informações sobre os volumes contidos nesse grupo emitindo

sudo lvdisplay /dev/vg1

A saída será parecida com

--- Logical volume ---
LV Path                /dev/vg1/lv1
LV Name                lv1
VG Name                vg1
LV UUID                kE8qXE-bI4u-NLzZ-u37A-wZfx-NtaU-57PqRj
LV Write Access        read/write
LV Creation host, time , 
LV Status              available
# open                 1
LV Size                1000,00 GiB
Current LE             256000
Segments               2
Allocation             inherit
Read ahead sectors     auto
- currently set to     256
Block device           254:0

Você está procurando o nome LV, neste caso lv1 . No caso de haver apenas um volume, esse deve ser o seu disco raiz. Caso contrário, monte-os todos e veja qual deles contém os dados do seu sistema.

Montar o volume é tão fácil quanto

sudo mount /dev/vg1/lv1 /mnt

Depois de fazer isso, convém continuar com as instruções do tópico encontrado.

Atualizar : Conforme mencionado nos comentários, como você está usando uma partição de inicialização separada ( /dev/sda1 ), você terá que montá-lo em /mnt/boot/ . A segunda resposta do tópico que você encontrou contém mais alguns detalhes sobre isso.

Atualização 2 : O erro mais recente geralmente indica que algo está errado com sua instalação do grub. Se você tiver acesso a uma GUI remota, tente usar o Reparo de inicialização . Se isso não ajudar ou você só tem um terminal, eu aconselho a criação de um novo tópico focado neste novo problema.

    
por drc 19.11.2013 / 08:41