LiveCDからupdate-grubを実行するにはどうすればよいですか?


62

さて、私は何か愚かなことをしました。Grubエントリをクリーンアップしようとして、誤ってすべてのLinuxカーネルをGrubから削除しました(これらはまだハードドライブ上にあります)。ですから、明らかに、GrubはUbuntuを起動する方法を提供してくれません。Windowsを正常に起動できますが、Ubuntuもリストされていません。

ですから、「sudo upgrade-grub」を何らかの方法で実行して、Ubuntuをリストに戻したいだけです。LiveCDから起動できますが、一度そのコマンドを実行するにはどうすればよいですか?(ちなみに、私のUbuntuインストールはsda5にあります。)


これは、わずか2日間ago-それをやった...完璧に動作opensource-sidh.blogspot.in/2011/06/...
Nirmik

このスレッドでポイントしたいのは-12.10でupdate-grubがgrub <2.0では動作しないということです!- ... supergrub-CDで救助をしなければならなかった-私自身は、先週末には、GRUBインストールしてから更新-GRUBを持つ12.10の私のインストール(梨OS 7.0.1)が働いていなかったアップしくじった
dschinn1001

回答:


81

grubブートローダーは表示されるが、メニューが空であると言っているので、grubを再インストールする必要はないと思います。これを実現するには、Live CDを使用して、ハードディスクから関連するパーティションをマウントし、マウントされたディレクトリにchrootし、update-grubを実行します。

「インストールせずにUbuntuを試す」を選択して、Live CDで起動します。

起動したら、ターミナル(ctrl-alt-t)を開き、Ubuntuパーティションを/ mntにマウントします。Ubuntuパーティションは/ dev / sda5であると想定していますが、これは自分で決定する必要があります。これを行うのに助けが必要な場合はお知らせください:

sudo mount /dev/sda5 /mnt

次に、必要ないくつかのディレクトリをマウントします。

sudo mount --bind /dev /mnt/dev
sudo mount --bind /sys /mnt/sys
sudo mount --bind /proc /mnt/proc

また、別のUbuntuブートパーティションがある場合(最近はあまり一般的ではありませんが、そうなる場合があります):

sudo mount /dev/sdaX /mnt/boot

ブートパーティションがあるかどうかはどうすればわかりますか?

Ubuntuパーティションをマウントしたら、を開き /mnt/etc/fstabます。のエントリが表示された場合は、/bootそれが指しているデバイスをメモします(/dev/sda4おそらく?)。これは、マウントする必要があるものです。

これらがマウントされたら、chrootを実行して、マウントされたディレクトリをルートパーティションとして使用し始めます。

sudo chroot /mnt

あなたは得るでしょう#/プロンプトを。最初に行うことは、正しい/bootディレクトリを使用していることを確認することです。/boot/grubそこにあるファイルに移動して見てください。多数の.modファイルとgrub.cfgファイルがあるはずです。ディレクトリが空の場合、これは実際のbootディレクトリではないため、続行しないでください。上記を見て、追加のbootディレクトリをマウントする必要があるかどうかを判断する方法を確認してください。

あなたはそれを確認したら/boot/、それはつまり、正しいファイルが含まれている正しい場所、種類:

sudo update-grub

これにより、メニューエントリで/boot/grub/grub.cfgファイルが再構築されます。

次に、chrootを終了します。

exit

この時点で、物事が正しく更新されたことを確認することができます。このため、cd /mnt/boot/grubgrubのファイルがそこにあることを確認します。多数の.modファイルとgrub.cfgが必要です。grub.cfgにはUbuntuカーネルのエントリが必要です。grub.cfgのみが表示され、.modファイルが表示されない場合、これは正しいブートディレクトリではないことを意味します。別のブートパーティションをマウントする方法については上記を参照してください。

ファイルシステムをアンマウントします。

sudo umount /mnt/dev
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/boot #Only if you mounted it earlier
sudo umount /mnt/

そして、再起動すると、Grubメニューが復元されます。


3つのマウントコマンドを実行しようとすると、「マウントポイント/ mnt / devが存在しません」またはそれぞれに対応するものが表示されます。
ケリー

Ubuntuは/ dev / sda5にインストールされていますか?その場合、Ubuntuインストールのツリーが表示され、そこに表示さsudo mount /dev/sda5 /mntれるはずcd /mntです。dev、sys、procが必要です。そうでない場合は、間違ったパーティションをマウントしている可能性があります。これを確認できますか?ありがとう!
roadmr

LiveCDを再起動しましたが、今回は動作しているようです。私は注意していましたが、最初は間違ったことをタイプしたに違いありません。とにかく、私は今リブートしています...そしていや、何も変わっていません。GrubメニューにはまだUbuntuがありません。
ケリー

「sudo mount / dev / sda5 / mnt」を実行してから「cd / mnt」を実行すると、dev、sys、およびprocが表示されます。
ケリー

1
あなたは、命の恩人です:)これをありがとう。魅力のように働いた。
ereOn

14

Live CDから起動します。

ヒットAlt+ Ctrl+ Tターミナルを開き、次のコマンドを実行します:

sudoマウント/ dev / sda5 / mnt

GRUB2ブートローダーをインストールします。

sudo grub-install --root-directory = / mnt / dev / sda

これ/dev/sdaは、Ubuntuパーティションではなく、ハードディスクそのもの/dev/sda5です。

Ubuntuパーティションをアンマウントして、コンピューターを次のように再起動します。

sudo umount / dev / sda5; sudo reboot

複数のOSがインストールされている場合、次のようにOSを再検出します。

sudo update-grub

それでおしまい!


1
削除のフラグが設定された鉱山-同じことを2回ポイントしない
23 93 26 35 19 57 3 89

感謝しますが、それはうまくいきません。Grubを再インストールしますが、再起動してもまだ更新されていないため、UbuntuのインストールはGrubに表示されません。どういうわけか、LiveCDからのように、再起動する前にGrubを更新する必要があります。
ケリー

@Kelley Ubuntuのインストールはsda5にありますか?を実行して確認できsudo fdisk -lます。Ubuntuのインストールでは*/ dev / sdxxの後になります。
バスハラトシャルビ

はい、sda5にあります。ただし、*はWindowsパーティションであるsda2の後にあります(これは、Grubメニューで唯一の選択肢であるため、ブートできた最後のパーティションです)。
ケリー

Chroot。他の答えを読んでください。
っぽい

1

その問題に対する私の解決策は:

  1. http://www.supergrubdisk.org/category/download/supergrub2diskdownload/super-grub2-disk-stable/からsupergrub2diskをダウンロードし ます。
  2. ペンドライブに置き ますhttp://www.supergrubdisk.org/put-super-grub2-disk-into-an-usb-pendrive-as-an-iso-image-from-windows/
  3. supergrub2diskがインストールされたペンドライブからコンピューターを起動します
  4. Ubuntuにログインします
  5. https://help.ubuntu.com/community/Boot-RepairからUbuntuのBoot-Repairを取得します

最速のソリューションではないかもしれませんが、私にとっては最も簡単なソリューションでした。


1

このソリューションは、はるかに簡単であることを除き、roadmrの答えとまったく同じです。

  1. AntiX Live CDを起動します。
  2. メニュー>アプリケーション>システムツール>ブート修復
  3. 「GRUB構成ファイルの修復」を選択します(このオプションはupdate-grubを実行します)
  4. / bootが存在するドライブ/パーティションを選択します
  5. 終了したら再起動します。

私の特定の場合、「GRUB Bootloaderの再インストール」で修正されました。デュアルブートwindows / linuxセットアップがあります。Macrium 7を使用して、ドライブのクローンをファイルに作成しました。次に、そのファイルを新しいドライブに復元します。新しいドライブに復元した後、左上にカーソルが点滅する黒い画面が起動します



-1

すべての偉大な助けてくれてありがとう!しかし、最終的には何も機能しないようでした。また、別の/ homeパーティションがあるため、データを失うことなくUbuntuを再インストールできました。私はまだプログラムを再インストールしていくつかの設定を行う必要がありますが、この時点ではすべてがうまくいくようです。


1
どうにかしてそれを解決したことを知って喜んでいますが、chrootingはうまくいくはずでした、そして、私は最良の解決策を検討します。
マヘシュ

はい。なぜ機能しなかったのかはわかりませんが、答えは素晴らしかったです(そして、私はそれを支持しました)。あなたたちは多くの助けを提供しました、そしておそらく答えは誰かがこの問題を乗り越えるのを助けるでしょう。
ケリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.