web-dev-qa-db-ja.com

Ubuntu 12.04(Wubi)が起動しない-root.diskが破損している

ラップトップのWubiを介してUbuntu 12.04をインストールしています。何らかの理由で、起動時にUbuntuをクリックすると(ウィンドウまたはUbuntuを選択する必要がある場合)次の画面が表示され、grubカーソルが点滅し続けます。

Gnu grub version 1.99-21 Ubuntu 3.4 

Minimal bash-like line editing is supported. For the first Word, tab lists possible
command completions. Anywhere else tab lists possible device or file completions. 

grub>

この問題を解決し、Ubuntuを正常に起動するためにできることを教えてください。

3
user106237

Wubiがブートに使用する仮想パーティションであるroot.diskが破損する場合があります。これは、\ubuntu\disks\ディレクトリにあるファイルです。 Grub(wubildr内)がroot.diskをマウントできない場合、grubメニュー(root.diskに保存されている)を表示できず、さらに待機するためにgrubプロンプトにドロップします。命令。

root.diskの問題を突き止めるまで、grubプロンプトからできることは何もありません。また、NTFS破損がある可能性があります。たとえば、ハードシャットダウンまたは再起動を実行した場合など、かなり一般的です。場合によっては、理由は明確ではありません。

あなたがする必要があるのは、WubiをインストールしたドライブでWindowsからchkdsk /f(または/r)を実行することです。 C:\ドライブにインストールした場合、完全な再起動が必要になります。

Windows 7でchkdskを実行するには(最初のチェックボックスはchkdsk /fに対応し、2番目はchkdsk /rに対応します:

chkdsk on Windows7

プロンプトが表示されたら、コンピューターを再起動し、Windowsを起動してchkdskを完了し、「キーを押して」中止しないようにします。

その後、ubuntu\disks\ディレクトリをチェックして、root.diskがまだあることを確認します。場合によっては、ubuntu\disks\ディレクトリ自体が存在しなくなることがあります。どちらかが欠落している場合は、chkdskが破損ファイル/ディレクトリを\found.000\found.001などの名前の隠しフォルダにリカバリすることが多いため、それらを探す必要があります。これらはデフォルトで非表示で保護されたOSディレクトリです(Windows 7)ので、エクスプローラーには表示されません。コマンドプロンプトを使用するのが最も簡単だと思います。

これを行うには、CMD.EXEを右クリックし、[管理者として実行]を選択します。 \ubuntuディレクトリがあるドライブに移動し、隠し\found.???ディレクトリを検索します。

例えばroot.diskがない場合、サイズが5GBのファイルを探しています。インストールのサイズがわかっていれば役立ちます。この場合、15GBです

C:\>dir /a:h
C:\>cd \found.000
C:\found.000>dir
 Volume in drive C is OS
 Volume Serial Number is B4B7-99A8

 Directory of C:\found.000

19/07/2011  02:02 PM    15,000,000,000 file0000.chk
               1 File(s) 15,000,000,000 bytes
               0 Dir(s)  222,258,069,504 bytes free

C:\found.000>move file0000.chk \ubuntu\disks\root.disk
        1 file(s) moved.

\ubuntu\disksディレクトリ全体が欠落している場合、dir0000.chkという名前のディレクトリを探しているので、その中にroot.diskおよびswap.diskという名前が正しくあります。ディレクトリを元の場所に戻すことができます。

C:\>cd \found.000

C:\found.000>dir
 Volume in drive C is OS
 Volume Serial Number is B4B7-99A8

 Directory of C:\found.000

19/10/2012  04:51 PM    <DIR>          .
19/10/2012  04:51 PM    <DIR>          ..
19/07/2011  02:02 PM    <DIR>          dir0000.chk
               0 File(s)              0 bytes
               3 Dir(s)  222,258,069,504 bytes free

C:\found.000>dir dir0000.chk
 Volume in drive C is OS
 Volume Serial Number is B4B7-99A8

 Directory of C:\found.000\dir0000.chk

19/10/2012  04:51 PM    <DIR>          .
19/10/2012  04:51 PM    <DIR>          ..
24/02/2012  12:22 AM    <DIR>          boot
06/11/2012  09:28 AM    13,000,000,000 root.disk
15/11/2011  09:28 PM       268,435,456 swap.disk
               2 File(s) 13,268,435,456 bytes
               3 Dir(s)  127,904,968,704 bytes free

C:\>move dir0000.chk \ubuntu\disks
        1 dir(s) moved.

破損の程度によっては、すべてのケースで回復が保証されるわけではありません。 root.diskは、chkdskを実行する前に正しく配置され、実行後に削除される場合があることに注意してください。

参照: http://ubuntu-with-wubi.blogspot.ca/2011/08/missing-rootdisk.html

3
bcbc

私は同様の問題を抱えていたが、それはwubiではなかった。それはubuntuのデュアルブートインストールでした。以下は私を助けました:

Booting From grub

This is how to set the boot files and boot the system from the grub> Prompt. We know from running the ls command that there is a Linux root filesystem on (hd0,1), and you can keep searching until you verify where /boot/grub is. Then run these commands, using your own root partition, kernel, and initrd image:

    grub> set root=(hd0,1)
    grub> linux /boot/vmlinuz-3.13.0-29-generic root=/dev/sda1
    grub> initrd /boot/initrd.img-3.13.0-29-generic
    grub> boot
The first line sets the partition that the root filesystem is on. The second line tells GRUB the location of the kernel you want to use. Start typing /boot/vmli, and then use tab-completion to fill in the rest. Type root=/dev/sdX to set the location of the root filesystem. Yes, this seems redundant, but if you leave this out you'll get a kernel panic. How do you know the correct partition? hd0,1 = /dev/sda1. hd1,1 = /dev/sdb1. hd3,2 = /dev/sdd2. I think you can extrapolate the rest.

The third line sets the initrd file, which must be the same version number as the kernel.

The fourth line boots your system.

On some Linux systems the current kernels and initrds are symlinked into the top level of the root filesystem:

    $ ls -l /
    vmlinuz -> boot/vmlinuz-3.13.0-29-generic
    initrd.img -> boot/initrd.img-3.13.0-29-generic

So you could boot from grub> like this:

    grub> set root=(hd0,1)
    grub> linux /vmlinuz root=/dev/sda1
    grub> initrd /initrd.img
    grub> boot

ソース: http://www.linux.com/learn/tutorials/776643-how-to-rescue-a-non-booting-grub-2-on-linux/

1
Tanmay