web-dev-qa-db-ja.com

GRUBレスキュー->そのようなパーティションはありません

コンピューターに大きな問題があります...

Windowsパーティションを削減し、再起動するとエラーメッセージ "no such partition"が表示されます。

さらに、BIOSにアクセスできないため、ライブUSBまたはライブCDで起動するように起動順序を変更することは不可能のようです。

コマンドラインlsは以下を提供します:(hd0) (hd0,1) (hd0,2) (hd0,3)

リカバリウィンドウパーティション(1と思う)、ウィンドウパーティション、Linuxパーティションがあります。

それでも、コマンドラインls (hd0,1)ls (hd0,2)および(hd0,3)はエラーメッセージを表示します: "nknown filesystem"なので、これ以上ブートを設定できません。

何かアイデアはありますか?

8
user300385

grub rescue>プロンプトは、GRUB 2にgrubフォルダーの検出に失敗した、grub.cfgファイル、および/または関連モジュールがあることを示します。ユーザーがgrubフォルダーへのパスを提供し、必要なモジュールをロードし、適切なブートコマンドを提供できるように、レスキュープロンプトが表示されます。 grub rescue>プロンプトの一般的な理由は、grubフォルダーへの誤ったパスです。プロンプトの理由には、特定のシステムまたはパーティション操作の後のGRUB 2の更新の失敗、grubfolderの場所の不適切な指定、/のlinuxまたはinitrd.imgシンボリックリンクの欠落、または失敗したインストール。 grub rescue>プロンプトから正常に起動するには:

  1. Grubfolderが存在し、必要なGRUB 2個のファイルとモジュールが含まれている必要があります。
    2。 set prefixコマンドを使用して適切なパスを設定する必要があります。 多くのGRUB 2つのコマンドは、正しいパスが設定されるまで機能しません。 grubfolderへのパス(通常は/ boot/grub)が正しくない場合、不明なコマンドまたはファイルが見つかりませんというメッセージが表示される可能性があります。
  2. 必要なモジュールをロードする必要があります。 「linux」モジュールがロードされるまで、カーネルはロードできません。
  3. Linuxカーネルとinitrd.imgを見つけてロードする必要があります。

あなたの場合、grubフォルダとgrub.cfgは利用可能ですが、対応するモジュールがロードされていないか、サイズ変更中に破損しているため、OSのパーティションをマウントできないためアクセスできません。ロードするモジュールについてgrubを完全にロードするか、プレフィックスを設定する必要があります。そのためには、次の手順を実行します。

  1. set prefix=(hdX,Y)/boot/grub
    前に決定した値を使用します。例:Ubuntuシステムがsda5にある場合は、次を入力します:set prefix=(hd0,5)/boot/grub
    あなたの場合、最も可能性が高いのは(hd0,3)です
  2. set root=(hdX,Y)
    正しいX、Y値を確認し、Enterキーを押します。例:Ubuntuシステムがsda5にある場合は、次を入力します:set root=(hd0,5)
  3. insmod normal
    通常のモジュールをロードします。
    モジュールがロードされても、メッセージは表示されません。モジュールのロードに失敗した場合、フルパスを試してください:insmod (hdX,Y)/boot/grub/normal.mod
  4. normal機能が強化された通常のGRUB 2モードに移行します。モジュールがロードされても、メッセージは表示されません。モジュールがロードされると、UP/DNキーを使用したHELP、TAB補完、およびコマンド呼び出しが利用可能になります。
  5. set(オプション)現在の設定を確認します。
  6. insmod linux linuxモジュールをロードします。通常、エラーメッセージは、パスが正しくないことを意味します。
  7. configfile /boot/grub/grub.cfg。これにより、すべてのOSを起動できる構成ファイルがロードされます。
5
totti

elsewhere で述べたように、正しいコマンドはls (hd0,1)/です。ファイルシステムの内容がリストされるかどうかを確認してください。

grubでシステムを手動でロードするには

Vmlinuzとinitrd.imgが(hd0,3)/に存在しない場合、Linuxを起動する正確な場所を指定する必要があります。そのため、grubで(vmlinuzとカーネルバージョンをセットアップに合わせてください)>

set root=(hd0,3)
linux (hd0,3)/vmlinuz root=/dev/sda3 ro

または(hd0,3)/ vmlinuzが存在しない場合:

linux (hd0,3)/boot/vmlinuz-2.6.32.25-generic root=/dev/sda3 ro

それから

initrd (hd0,3)/boot/initrd.img 

または(hd0,3)/initrd.imgが存在しない場合:

initrd (hd0,3)/boot/initrd.img-2.6.33-25-generic 
boot

詳細は こちら をご覧ください。

2
noleti