web-dev-qa-db-ja.com

GRUBレスキューを使用して移動した.modファイルを回復する

私は愚かなことをしました... Ubuntu 10.04(Lucid Lynx)が GRUB 2に切り替わり、大量の* .modファイル(カーネルモジュール)が/boot/grubに置かれたことを忘れました。私はそれらが誤ってそこに置かれたサウンドトラックファイルであると思い、それらを移動しました。言うまでもなく、次の再起動はトラウマでした。私は今までに見たことのない何かを提示されました...「グラブレスキュー>」プロンプト。

Fixing GRUB error:“ error:unknown filesystem” の助けを借りて、しかし、私は回復することができました...

  • GRUB rescueには、「cd」、「cp」、または「ls」のバリエーションを除く他のファイルシステムコマンドがないことがわかりました。
  • そのため、最初にvmlinuzファイルと他のブートイメージファイルを含む/bootディレクトリを持つパーティションを見つける必要がありました...(失敗した試行のメモリからの概算、明確にするために空白行として、docsalvageによって2014-07-10を追加)

    grub rescue>  ls  
    (hd0,4) (hd0,3) (hd0,2) (hd0,1)  
    
    grub rescue>  ls (hd0,4)/boot
    ... some kind of 'not found' message
    
    grub rescue>  ls (hd0,3)/boot
    ... some kind of 'not found' message
    
    grub rescue>  ls (hd0,2)/boot
    ... grub ... initrd.img-2.6.32-33-generic ... vmlinuz-2.6.32-33-generic 
    
  • パーティション/bootvmlinuzファイルvmlinuz-2.6.32-33-genericを含む(hd0,2)ディレクトリが見つかりました。

  • 次に、「grub rescue>」プロンプトから手動で起動しました。次のコマンドは...

    • パーティション/boot(hd0,2)ディレクトリを使用するようにrootを設定します。
    • カーネルモジュールlinuxをロードします。
    • カーネルイメージvmlinuz-2.6.32-33-genericを使用するようにそのモジュールを設定します。
    • イメージinitrd.img-2.6.32-33-genericを使用するには、initrd(ini​​tialize RAM disk)を設定します。
    • Linuxを起動します。
  • grub rescue>  set root=(hd0,2)/boot  
    grub rescue>  insmod linux  
    grub rescue>  linux (hd0,2)/boot/vmlinuz-2.6.32-33-generic root=/dev/sda2
    grub rescue>  initrd (hd0,2)/boot/initrd.img-2.6.32-33-generic  
    grub rescue>  boot  
    
  • これは起動してBusyBoxプロンプトをクラッシュさせ、いくつかの基本的なファイルシステムコマンドがあります。

  • 次に、*。modファイルを/boot/grubディレクトリに戻しました...

    busybox>  cd /boot  
    busybox>  mv mod/* grub
    busybox>  reboot
    
  • 再起動は成功しましたが、それは大変な作業でした。

もっと簡単な方法はありますか?

33
DocSalvager

いいえ。grub rescue;を使用して、システムの状態から回復する最も簡単な方法を見つけたと思います。これは、システムを起動するのに十分な機能を提供する非常に最小限のシステムです。

ところで、.modファイルを見つけてinsmod linuxを実行しなければ、linuxコマンドは失敗するはずです。

前述したように、他の唯一の方法は、「壊れた」システムにchrootしてからLive CDを起動し、grub2を再インストールすることです。

5
StarNamer

GRUB loading stage 1.5 error 15などのブートエラーを支援する一般的および基本的な手順をいくつか示します(たとえば、Windowsを別のディスクドライブにインストールした後)。

  1. LiveDVD(Ubuntuデスクトップディスクなど)で起動します。

  2. ターミナルを開き、次のコマンドを使用してgrub設定を書き直します。

    • Sudo mount /dev/sdXY /mnt
    • Sudo grub-install --root-directory=/mnt /dev/sdX

ここで、/dev/sdXはUbuntuがインストールされているディスクであり、/dev/sdXYはUbuntuがインストールされているディスク上のパーティションです。つまり、/dev/sdXYには/bootなどが含まれます。

fdisk -lを使用して、Ubuntuのインストール場所を確認します。

7
lamas

システムをアップグレードしたときに同じ問題が発生しました。

次の簡単な手順をお勧めします。

  1. UbuntuのライブCDまたはライブUSBでシステムを起動します。
  2. ターミナルを開き、コマンドSudo add-apt-repository ppa:yannubuntu/boot-repair && Sudo apt-get updateを実行します
  3. 次に、コマンドSudo apt-get install -y boot-repair && boot-repairを実行してブート修復をインストールします

  4. インストール後にブート修復を起動します。たとえば、メニューからSystem->Administration->Boot-Repair(Ubuntu 10.04のみ)を使用し、指示に従います。

    問題を把握して修正するには、15〜20分かかる場合があります。

詳細については、リンクにアクセスしてください https://help.ubuntu.com/community/Boot-Repair

4
Harsh
  1. Live CDを起動します

  2. ターミナルを開く(CTRL + ALT + T)

  3. 次のコマンドを入力します。

Sudo fdisk -l

Ubuntuパーティションを見つけます(最初のパーティションの場合は/ dev/sda1になります)

Sudo mount /dev/sda1 /mnt

Sudo mount --bind /sys /mnt/sys

Sudo mount --bind /proc /mnt/proc

Sudo mount --bind /dev /mnt/dev

Sudo chroot /mnt

Grub2を再インストールします

Sudo apt-get install --reinstall grub2
4
nastys

ライブCDを起動し、ハードドライブをマウントし、rootとしてnautilusを開き、それらのファイルを/ bootにコピーできます。

0
nastys