web-dev-qa-db-ja.com

GRUBレスキューが「ブート修復」でエラー「不明なファイルシステム」で失敗する

システムクラッシュ(ハードリスタートが原因)の後、Ubuntu linuxが起動せず、現在表示されています:

error: uknown filesystem
grub rescue>

私が試したソリューション:

grub rescue>ls
(hd0) (hd0,msdos5) (hd0) (hd0,msdos1)
grub rescue>ls (hd0,msdos5)
error: uknown filesystem
grub rescue>ls (hd0,msdos1)
error: uknown filesystem

だから、Linuxファイルシステムをリスト/見つけることができません、、、、

Ubuntu Live USBにインストールされたBoot Repairを試してみることにしましたが、推奨される修復ボタンはなく、-詳細オプションはありませんでした。 BootInfoサマリーの作成というボタンが1つだけありました

最新バージョンのUbuntuのライブバージョンとLinux Secure RemixでBootRepairを試しましたが、どちらもUSBで焼いたLIVEエディションです-同じ結果です。

また、Linux Secure Remix上のOS-Uninstallerは、OSが見つからない/インストールされていないことを示しています。

別のPCで同じLinux Secure Remixを試しましたが、少なくとも推奨される修復があります。だから私は問題が私のHDDまたはMBRにあると思う。

いくつかの応答の後、私は試しました

root@ubuntu:/home/ubuntu# Sudo fdisk -l

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xebd671ce

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   302815231   151406592   83  Linux
/dev/sda2       302817278   312580095     4881409    5  Extended
/dev/sda5       302817280   312580095     4881408   82  Linux swap / Solaris

Disk /dev/sdb: 8021 MB, 8021606400 bytes
110 heads, 46 sectors/track, 3096 cylinders, total 15667200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x04030201

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *       10392    15667199     7828404    b  W95 FAT32

root@ubuntu:/home/ubuntu# Sudo mount /dev/sda1 /mnt
mount: you must specify the filesystem type

root@ubuntu:/home/ubuntu# blkid
/dev/loop0: TYPE="squashfs" 
/dev/sda5: UUID="ce99d1c7-16fd-4b60-b0af-af6a14b8bdbe" TYPE="swap" 
/dev/sdb1: LABEL="DANAIL" UUID="4ED6-708D" TYPE="vfat" 

Ext3、ext4、vfat、autoの異なるタイプを試しましたが、結果はすべてのタイプで同じです:

root@ubuntu:/home/ubuntu# Sudo mount -t ext4 /dev/sda1 /mnt
mount: wrong fs type, bad option, bad superblock on /dev/sda1,
       missing codepage or helper program, or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

root@ubuntu:/home/ubuntu# dmesg | tail
[ 2424.052221] SQUASHFS error: Can't find a SQUASHFS superblock on sda1
[ 2620.531816] EXT4-fs (sda1): VFS: Can't find ext4 filesystem
[ 2626.204025] EXT3-fs (sda1): error: can't find ext3 filesystem on dev sda1.
[ 2626.208650] EXT4-fs (sda1): VFS: Can't find ext4 filesystem
[ 2626.208938] FAT-fs (sda1): bogus number of reserved sectors
[ 2626.208943] FAT-fs (sda1): Can't find a valid FAT filesystem
[ 2626.209377] SQUASHFS error: Can't find a SQUASHFS superblock on sda1
[ 2635.692959] EXT2-fs (sda1): error: can't find an ext2 filesystem on dev sda1.
[ 2644.614887] FAT-fs (sda1): bogus number of reserved sectors
[ 2644.614894] FAT-fs (sda1): Can't find a valid FAT filesystem

root@ubuntu:/home/ubuntu# mount
/cow on / type overlayfs (rw)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
/dev/sdb1 on /cdrom type vfat (ro,noatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
/dev/loop0 on /rofs type squashfs (ro,noatime)
none on /sys/fs/Fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
gvfsd-Fuse on /run/user/ubuntu/gvfs type Fuse.gvfsd-Fuse (rw,nosuid,nodev,user=ubuntu)

最後に、解決策は、壊れた/dev/sda1システムでfsckを実行することであることがわかりました。問題はgrubではなくファイルシステムにあります。それが、grubがファイルシステムを見ることができない理由です。ありがとうございました!

3
timer0x01

これは可能な解決策ですが、ルートパーティションがさらに破損しないように、使用しないでください。コマンドの実行:fsck -t ext4 /dev/sda1このプログラムは、破損したファイルシステムでエラーを検索して修復しようとします。 ext4を実際のファイルシステムに置き換えます。ファイルシステムを知っている必要があります。そうしないと、パーティションがさらに破損します。詳細については、 this thread を参照してください。


この質問には答えがありますが、私のために働いた問題を解決する別の方法があります。手順は、この痛いビデオで説明されています: http://www.youtube.com/watch?v=ZcbTgMKpVHQ つまり、Grub2を修復するのではなく、完全に再インストールします。

このビデオは見るのがとてもつらいので、以下の手順をリストします(ビデオを見るのがどれだけ苦痛であるかに関係なく)

  1. Ubuntuのライブセッションを開始します。このビデオは、私がlive-usbを使用したライブCDを使用しています。 live-usbには、ハードドライブと同じバージョンのUbuntuがあることを確認しました。
  2. ルートパーティションがマウントされた場所を見つけます。ビデオでは、ユーザーはnautilusを使用して、マウントされた各ドライブをナビゲートします。数字と文字の長い文字列でマウントされました。この場合は、次の手順に従ってパーティションを再マウントしてください。それ以外の場合は、手順5に進みます。
  3. ctrl + alt + Tで端末を起動し、mountコマンドを使用してパーティションの名前を見つけます。
  4. パーティションをマウントします。メディアフォルダーに新しいフォルダーを作成します。 Sudo mkdir /media/ubuntu。次に、そのフォルダにパーティションをマウントします。 Sudo mount /dev/sdxx /media/ubuntuここで、xx of sdxxはステップ3で決定されます。
  5. 次のディレクトリを、ライブcd/usbのルートディレクトリからUbuntuのバージョンのルートディレクトリのディレクトリにバインドします。ディレクトリは、devprocおよびsysです。次のコマンドを使用してください。

    Sudo mount --bind /dev /media/ubuntu/dev
    Sudo mount --bind /sys /media/ubuntu/sys
    Sudo mount --bind /proc /media/ubuntu/proc
    
  6. ルートディレクトリをubuntuパーティション上のものに変更します。 Sudo chroot /media/ubuntu/

  7. 上記を実行した後、Grub2を再度インストールすると、ライブcd/usbのルートディレクトリではなく、ubuntuのディストリビューションのルートディレクトリにインストールされます。それでは、Sudo grub-install /dev/sdxを実行してください

そして、それがlive-cd/usbを使用してgrubを修正する方法です。このメソッドは、youtubeユーザーcrazytechzoneによって開発されました。

2
Nil

parted -l出力は、ブートパーティションが/ dev/sda1であることを明確に示しています。これは、grubを修正するための一部のNice GUIアプリケーションでは認識されない場合があります。

最も簡単な解決策は、コマンドラインからgrubを再インストールすることです。 このページ で指定されたコマンドに従ってください。すぐに起動して実行できるはずです。ページが/dev/sda1を使用している場合は常に/dev/sdaxを使用することを忘れないでください。

1
Bhavin Doshi