web-dev-qa-db-ja.com

GRUBエラー:不明なファイルシステム

Win7とubuntuのデュアルブートであった古いラップトップドライブをSSDに交換しました。

USBアダプターを介して古いドライブを接続し、そこから起動したいと思います。

しかし、これが出てきます:

unknown filesystem
grub rescue>

古いドライブからプログラムが必要なため、時々起動する必要があり、それらのソフトウェアを新しいドライブにインストールしたくありません。ドライブの交換に時間がかかるので、USBから起動したいと思います。

どうすればこれを修正できますか?

4
Ali

最も便利な方法は、古いドライブをSSDにコピーすることだと思います。仮想化も方法であり、USBディスクを「生の」画像に変換してフルスクリーンで実行します(USB3でうまく機能します)。

それ以外の場合は、grubから起動する必要があります。可能であれば、そのためのメニューエントリを追加できます。

ポリシェルの問題

以下をテストするために、Windows 7 Home Premium(残念ながら他のライセンスはありませんでした)を単一のオペレーティングシステムとしてインストールしました。

次に(Windows 7から)パーティションを縮小して、Fedora18用に十分なスペースを解放しました。

その時点で、Fedora 18 DVD(デスクトップ、Xfce)から起動し、ハードディスクにインストールしました。インストーラーは「Fedoraをインストールするのに十分なスペース!」を見つけ、自動パーティション分割を使用し、デフォルトでデュアルブートに設定しました。

両方のシステムが正しく起動しました。

その時点で、(Windowsから)F18パーティションを削除し、空き領域をフォーマットしました。

再起動すると、次のようになりました。

GRUB loading.
Welcome to GRUB!

error: unknown filesystem.
Entering rescue mode...
grub rescue> _

ランニング

ls

3つのWindowsパーティションが見つかりました(最初のパーティションはWindows 7によって作成され、ある種の100Mbサービスパーティションです。ブートがmsdos1またはmsdos2のどちらであるかわからない;私が作成したものは現在msdos3)。

(hd0) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1) (fd0)

したがって、必要なGRUB2コードが存在するLinuxパーティションは失われます。また、Grub2は明らかに「ブラインドブート」(つまり、セクターレベルの既存のパーティション上のブートローダーへのチェーンロード)を実行できません。したがって、何でもできるようにするには、元のGRUB2ファイルが必要です。つまり、別のGRUB2インストールが必要です。

したがって、別のコンピューターから、このツールをダウンロードします。これは、実際にはGRUB2リカバリインストールです: http://www.supergrubdisk.org/super-grub2-disk / (これは12 Mb ISO)を起動可能なUSBに配置するか、CDに書き込みます。

そして、そこから起動します。メニューが表示されたら、「オペレーティングシステムの検出」に移動します。 Windowsパーティションが表示され、起動できるはずです。

残念ながら、完全なWindows OSでもシステムディスクがロックされ、その変更が妨げられるため、Windowsを起動し、すぐにF8を押して、ディスクのロックを解除した状態でメンテナンスモードに入る必要があります。

もちろん、この時点でのより迅速な方法は、元のWindows DVDをまだ持っているか、友人にWindowsリカバリCDを作成してもらい、Grub2リカバリCDの代わりにそれから起動して これらに従うことです。ステップ (Windows 8の場合、自動修復があります)。

Windows 7のブートメニューに入ると、最初のメニュー項目(「ブート修復」、インストールは英語ではなかったと思います)は、Windowsのブートを妨げる可能性のあるもの(「データやドキュメントが失われることはありません」)を自動的に探しました。 )。次に、システムの復元を実行するオプションも提供されましたが、これは拒否しました。システムは正常であり、回復する必要があるのはブートローダーであり、偶数ではありませんシステムの復元で。

数分後、ブート修復オプションが惨めに失敗しました(Windows 8が良くなることを願っています)。

そこで、グラフィックモードで再度起動し、bootsect.exeをグーグルで検索し(最初の2つのリンクでスパイウェアをダウンロードさせようとしました。適切なファイルは約95 Kbでした)、ディスクにダウンロードし、F8を使用してリカバリツールで再起動しました。コマンドプロンプトを開いた後、ダウンロードしたBOOTSECT.EXEバイナリを見つけました。だから私は走った

BOOTSECT /nt60 SYS /mbr

その後、再起動します(リカバリCDを取り外した後)。

システムは問題なくWindows 7の元のGUIに入りましたCHKDSKがあった間、多くのディスクアクティビティで最初に長い待機を除いて静かに走っていると思います)

USBからの起動

これは動作が保証されていません。これは、USBデバイスがGRUB起動時にどのように表示されるか」によって異なるためです。 BIOSプロンプトからのUSBでは不十分な場合があります

USBディスクがhd0の場合、それ自体がhd0として「認識」されたため、少なくともgrubローダーを変更する必要があります。今でもそうですが、hd0は別のディスクになっているので、grubは間違った場所で物事を探しています。

上記のコマンドは、hd0ではなくhd1、2 ...などであることを除けば、まだ機能する可能性があります。ただし、まったく保証されていません。しかし、あなたは幸運になるかもしれません。

root (hd2,1)
chainloader +1
boot

SSDの内容によっては、 はるかに複雑なセットアップ 、BIOSレベルでのディスクの交換(ハードウェアEFIサポートが必要)、さらにはSSD自体の非表示が必要になる場合があります。

最初の試みとして、USBがhd2として表示されることを期待して、USBマウントポイントでイメージを見つけ、そこからイメージを起動してみます。

root (hd2,1)
find /                       <-- press "Tab"
kernel <path to kernel>
initrd <path to initrd>
boot 

上記の ここ の小さなチュートリアルを見つけることができます。

1
LSerni

iSOからUbuntuを最初に起動します。

1.UbuntuパーティションとGrubモジュールを含むフォルダーを見つけます。

正しいモジュールをロードできるように、モジュールを含むGrubフォルダーを配置する必要があります。このフォルダーは、Ubuntuの初期インストール時に作成されたものであり、Ubuntuパーティションに配置する必要があります。このフォルダーは通常、(hdX、Y)/ boot/grubまたは(hdX、Y)/ usr/lib/grub/i386-pcのいずれかにあります。既存のUbuntuパーティションとモジュールフォルダーを見つけます。

ls                               # List the known drives (hdX) and partitions (hdX,Y)
ls (hdX,Y)/                      # List the contents of the partition's root
ls (hdX,Y)/boot/grub             # Normal location of the Grub 2 modules.
ls (hdX,Y)/usr/lib/grub/i386-pc  # Alternate location of the Grub 2 modules.
  • ls-すべての既知のドライブ(hdX)とパーティション(hdX、Y)を返す必要があります
  • ls(hdX、Y)/-パーティションのルートディレクトリの内容を表示する必要があります。
  • 「エラー:不明なファイルシステム」が表示された場合、これはUbuntuパーティションではありません。
  • これがUbuntuパーティションの場合、lost + found /、home /、boot /、vmlinuz、initrd.imgなどのUbuntuフォルダーが表示されます。このアドレスを次のコマンドの最初の部分として使用します。
  • ls(hdX、Y)/ boot/grub-数十の* .modファイルを表示する必要があります。これはあなたが探しているフォルダです。
  • モジュールが見つからない場合は、別の場所を試してください:ls(hdX、Y)/ usr/lib/grub/i386-pc

2.モジュールをロードします。

set prefix=(hdX,Y)/<path to modules>
  • このコマンドは、Grubモジュールを含むフォルダーを正しく指している必要があります。アドレスは、モジュールを表示した前のセクションのアドレスである必要があります。

例:

set prefix=(hd0,5)/boot/grub 
set prefix=(hd1,1)/usr/lib/grub/i386-pc
  • モジュールのロード:

    insmod linuxinsmodループバックinsmodiso9660 insmod fat#ISOがfat16またはfat32でフォーマットされたパーティションにある場合。 insmod ntfs#ISOがNTFSフォーマットのパーティションにある場合。 insmod nftscomp#パーティションでNTFS圧縮が使用されている場合。よくわからない場合はロードしてください。

  • 「ファイルが見つかりません」エラーは、プレフィックス内のパスが正しくないか、特定のモジュールが存在しないことを意味します。プレフィックス設定は、setコマンドで確認できます。適切なパスを使用して「setprefix = "」コマンドを再実行します。

3. UbuntuISOファイルを見つけます。

  • Lsコマンドの組み合わせを使用して、UbuntuISOイメージを見つけます。

4.ループバックデバイスを作成します。ループバックループ(hdX、Y)//

  • 例:

    ループバックループ(hd1,1)/path/to/ubuntu-10.04.1-desktop-i386.iso

5.Linuxカーネルとinitrdイメージをロードします。

set root=(loop)

linux /casper/vmlinuz boot=casper iso-scan/filename=/<ISO-name.iso> noprompt noeject

initrd /casper/initrd.lz
  • ISOまたはファイル名へのパスが正しくない場合、ブートはBusyBox画面で停止し、「/ dev/sr0を開けません:メディアが見つかりません」というメッセージを生成します。
  • 注:ISOファイルが/フォルダーにない場合は、iso-scan/filename =エントリにパスを含めます。 2番目の例を参照してください。

  • 例:

    linux /casper/vmlinuz boot=casper iso-scan/filename=/ubuntu-10.04.1-desktop-i386.iso
    
    linux /casper/vmlinuz boot=casper iso-scan/filename=/my-iso/ubuntu-10.04.1-desktop-i386.iso
    

6.起動します。

  • それはそれであるはずです。コマンドがメッセージ/エラーなしで実行された場合、コマンドは入力されたとおりに受け入れられました。起動する時が来ました:

boot

詳細情報 ここ

起動後にこれを実行します::

here は同じ問題の投稿であり、以下のように解決されます。

1.Sudoマウント/ dev/sdaX/mnt

ここでsdaXはブートパーティションです。このようにSudoblkidでリストを取得できます。

/dev/sda1: LABEL="Windows XP" UUID="96A4390DA438F0FB" TYPE="ntfs" 
/dev/sda3: LABEL="Ubuntu 11.04" UUID="b61fcae3-7744-45b4-95b9-7528d50a3652" TYPE="ext4" 
/dev/sda5: LABEL="Se7en" UUID="A2DC9D71DC9D4109" TYPE="ntfs" 
/dev/sda6: LABEL="Development" UUID="DEB455A1B4557CC9" TYPE="ntfs" 
/dev/sda7: LABEL="EXTRA" UUID="D8A04109A040F014" TYPE="ntfs" 
/dev/sda8: LABEL="SONG" UUID="46080FCD080FBAC7" TYPE="ntfs" 
/dev/sda9: LABEL="BACKUPS" UUID="766E-BC99" TYPE="vfat" 

注:sdaXはLinuxパーティションである必要があります。

2 .Sudo grub-install --boot-directory=/mnt/boot /dev/sda

3 .Sudo update-grub

0
mumair

最初に試すことができます:

grubレスキュー> ls
(hd0)(hd0,1)
grubrescue> insmod ext2
grubrescue> insmod msdos
エラー:ファイルシステムが不明です。

その後、調査する必要があります

http://www.gnu.org/software/grub/manual/multiboot/multiboot.html

- http://rzr.online.fr/q/grub

0
rzr