grub rescue / move folder

5

Eu fiz realmente um bobo

  

sudo mv / * / alguma_pasta

mova o comando no meu servidor remoto vm ubuntu 12.04

que moveu minha pasta de inicialização para

  

/ home /.../ somefolder / boot

Eu posso acessar essa pasta por meio de um terminal de navegador que me fornece resgate.

Como posso mover a pasta inteira de volta para o local raiz para inicializar normalmente?

Se isso for impossível, então, se eu inicializar a partir desse local, poderei atravessar pastas maiores que a pasta de inicialização, para pelo menos copiar meus arquivos via ssh?

UPDATE

Eu consigo fazer o seguinte

 grub rescue> set prefix=(hd0,1)/home/path_to_boot/boot/grub
 grub rescue> set root=(hd0,1)/home/path_to_boot/
 grub rescue> insmod normal
 grub rescue> normal

Que lança um menu com opções na escolha da inicialização do Ubuntu. Eu pressiono c para entrar no console e entrar no modo grub para emitir o comando linux.

grub> linux /home/path_to_boot/boot/vmlinuz-3.xx.x-67-generic
grub> initrd /home/path_to_boot/boot/initrd.img-3.xx.x-67-generic
grub> boot

Depois disso, fico preso em

  

(initramfs)

Neste ponto, não tenho acesso à pasta / home, apenas às pastas dentro de / home / path_to_boot / boot.

Alguma ideia de como proceder?

UPDATE 2

Entrei em contato com a empresa de servidores e recebi a opção de inicializar por meio de um CD ao vivo.

Com isso eu fiz um

  

gksudo nautilus

E consegui copiar meus arquivos.

Infelizmente, não consegui salvar meu sistema por meio do grub, mas consegui os arquivos de que precisava.

    
por Alexphys 29.07.2014 / 20:57

2 respostas

2

Se você tem acesso direto a esta máquina (talvez através desta coisa de popup de terminal de navegador (?)), você poderia tentar carregar seu kernel e o initramfs e inicializá-lo.

Isso não trará o seu sistema novamente (porque o processo de inicialização não depende apenas do / boot), mas você pode entrar em um shell.

Se você tiver acesso total ao GRUB, isso pode funcionar:

linux /<path>/boot/vmlinuz<...>
initrd /<path>/boot/initrd<...>

Como você não especificou um sistema de arquivos raiz (via root=... ) - porque atualmente você não tem um sistema usável -, seu sistema executará um shell busybox diretamente do initramfs.

Este prompt (initramfs) é um shell completo. Você precisa criar uma pasta - execute mkdir /rootfs ). Então você precisaria montar seu sistema de arquivos raiz ( mount -o rw /dev/<...> /rootfs ) e chroot dentro dele ( chroot /rootfs /bin/bash ).

Depois, você pode montar seus outros sistemas de arquivos ( mount -a ). Então você é capaz de fazer o que quiser.

Disclaimer: Esta é - como a questão também é - um post do Super Usuário.

    
por YtvwlD 30.07.2014 / 00:34
0

De acordo com o manual , não há comandos de operação de arquivos no GRUB (além de ls ). Bem, é um gerenciador de inicialização, afinal, não é um gerenciador de arquivos.

Como o seu diretório raiz não está na raiz da sua partição, não acho que seja possível fazer o boot do Linux corretamente. Você pode usar o comando normal para acessar o menu de boot original e editar sua entrada de boot para que o GRUB possa encontrar seu kernel, mas não acredito que você possa especificar um subdiretório específico como raiz do seu sistema.

    
por kraxor 29.07.2014 / 21:49