web-dev-qa-db-ja.com

GRUBレスキュー/移動フォルダー

私は本当にばかげた

Sudo mv/*/some_folder

リモートサーバーvm ubuntu 12.04で移動コマンド

それは私のブートフォルダをに移動しました

/home/.../somefolder/boot

このフォルダーにアクセスするには、ブラウザー端末を使用してgrubレスキューを提供します。

正常に起動するために、フォルダ全体をルートの場所に戻すにはどうすればよいですか?

それが不可能な場合、この場所から起動すると、少なくともssh経由でファイルをコピーするために、起動フォルダよりも高いフォルダに移動できますか?

UPDATE

私は何とかして

 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

Ubuntuブートを選択する際のオプションを含むメニューを起動します。 cを押してコンソールに入り、grubモードになって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

その後、私は動けなくなる

(initramfs)

この時点では、/ homeフォルダーにはアクセスできず、/ home/path_to_boot/boot内のフォルダーにのみアクセスできます。

どのように進めるのですか?

UPDATE 2

私はサーバー会社に連絡し、ライブCDから起動するオプションを入手しました。

それで私はやった

gksudo nautilus

そして、私のファイルをコピーすることができました。

残念ながら、grubを使用してシステムを保存することはできませんでしたが、必要なファイルを取得しました。

5
Alexphys

このマシンに直接アクセスできる場合(おそらく、このブラウザターミナルのポップアップ(?)を介して)、カーネルとinitramfsをロードして起動することができます。

これによりシステムが再び起動することはありません(ブートプロセスは/ bootに依存するだけではないため)が、シェルに入ることができます。

GRUBへのフルアクセスがある場合、これは機能する可能性があります。

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

ルートファイルシステムを(root=...経由で)指定していないため(現在使用可能なものがないため)、システムはinitramfsからbusyboxシェルを実行します。

この(initramfs)プロンプトは完全なシェルです。フォルダーを作成する必要があります-mkdir /rootfs)を実行します。次に、ルートファイルシステム(mount -o rw /dev/<...> /rootfs)をマウントし、その中にchroot(chroot /rootfs /bin/bash)する必要があります。

その後、他のファイルシステム(mount -a)をマウントできます。その後、あなたは何でもしたいことができます。

免責事項:これは-質問と同様に-スーパーユーザーからのクロスポストです。

2
YtvwlD

manual によると、GRUB(lsを除く)にはファイル操作コマンドはありません。結局のところ、これはブートローダーであり、ファイルマネージャーではありません。

ルートディレクトリはパーティションルートにないので、Linuxを正しく起動させることはできないと思います。 normalコマンドを使用して元のブートメニューに移動し、ブートエントリを編集してGRUBがカーネルを見つけられるようにすることができますが、システムとして特定のサブディレクトリを指定できるとは思わないルート。

0
kraxor