web-dev-qa-db-fra.com

dossier de sauvetage / déplacement grub

J'ai fait une bêtise

Sudo mv/*/some_folder

commande de déplacement sur mon serveur distant vm ubuntu 12.04

qui a déplacé mon dossier de démarrage vers

/home/.../somefolder/boot

Je peux accéder à ce dossier via un terminal de navigateur qui me permet de récupérer.

Comment puis-je déplacer l'intégralité du dossier à la racine afin de démarrer normalement?

Si cela est impossible, si je démarre à partir de cet emplacement, pourrai-je accéder aux dossiers situés plus haut que le dossier de démarrage, afin de pouvoir au moins copier mes fichiers via ssh?

UPDATE

Je parviens à faire ce qui suit

 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

Ce qui lance un menu avec des options pour choisir le démarrage d'Ubuntu. J'appuie sur c pour accéder à console et passer en mode grub afin d'émettre la commande 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

Après cela, je reste coincé

(initramfs)

À ce stade, je n'ai pas accès au dossier/home, mais uniquement aux dossiers de/home/path_to_boot/boot.

Des idées comment procéder?

UPDATE 2

J'ai contacté la société de mes serveurs et j'ai eu la possibilité de démarrer via un cd live.

Avec ça j'ai fait un

gksudo nautilus

Et réussi à copier mes fichiers.

Malheureusement, je n’ai pas pu sauvegarder mon système via grub, mais j’ai eu les fichiers dont j’avais besoin.

5
Alexphys

Si vous avez un accès direct à cette machine (peut-être via ce popup du terminal de navigateur (?)), Vous pouvez essayer de charger votre noyau et le initramfs et de le démarrer.

Cela ne fera pas réapparaître votre système (car le processus de démarrage ne dépend pas uniquement de/boot), mais vous pouvez accéder à un shell.

Si vous avez un accès complet à GRUB, cela peut fonctionner:

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

Comme vous n'avez pas spécifié de système de fichiers racine (via root=...) - car vous n'en possédez pas actuellement -, votre système exécutera un shell busybox directement à partir du fichier initramfs.

Cette invite (initramfs) est un shell complet. Vous devez créer un dossier - exécutez mkdir /rootfs). Ensuite, vous devez monter votre système de fichiers racine (mount -o rw /dev/<...> /rootfs) et le chroot dedans (chroot /rootfs /bin/bash).

Ensuite, vous pouvez monter vos autres systèmes de fichiers (mount -a). Ensuite, vous pouvez faire ce que vous voulez.

Clause de non-responsabilité: Ceci est - tout comme la question aussi - un message croisé de Super User.

2
YtvwlD

Selon le manuel , il n'y a pas de commande d'opération de fichier dans GRUB (à l'exception de ls). Eh bien, c'est un chargeur de démarrage après tout, pas un gestionnaire de fichiers.

Étant donné que votre répertoire racine ne se trouve pas dans la racine de votre partition, je ne pense pas qu'il soit possible de démarrer Linux correctement. Vous pouvez utiliser la commande normal pour accéder au menu de démarrage d'origine et modifier votre entrée de démarrage afin que GRUB puisse trouver votre noyau, mais je ne pense pas que vous puissiez spécifier un sous-répertoire spécifique comme système. racine.

0
kraxor