web-dev-qa-db-ja.com

Grubだけを持っているときにUbuntuをロードするにはどうすればよいですか?

だから、最新のカーネルでUbuntuをアップグレードしました。しかし、アップグレード後、Ubuntuを再起動した後は、GRUBしか取得できません。 GRUBだけを持っているときにUbuntuを再度ロードするにはどうすればよいですか?

Wubiを使用してUbuntuをインストールしました。

助けてくれてありがとう

11
Joshua Partogi

Grubを使用する

grubプロンプトが表示され、システムとカーネルがまだパーティションにインストールされている場合は、grub.cfgを使用せずに「手動で」システムを起動できます。これは、ライブメディアから実行されるgrubでも機能します。このため、grubには基本的なコマンドが含まれており、これを使用してパーティションを見つけ、システムを起動できます。

find /vmlinuz

これにより、(hd0,0)のようなパーティションが得られます。 lsコマンドを使用して、パーティションを探索し、使用可能なカーネルを確認することもできます。 searchコマンドも同様に機能します。 tab completionを使用することもできます。

set root=(hd0,1)

もちろん、parition identifierをfindが示したものに置き換えてください。

linux /vmlinuz root=/dev/sda1
initrd /initrd.img

常に一緒に使用する必要があるペアであるカーネルイメージとinitrdイメージを選択します。幸いなことに、Ubuntuは作業ディレクトリとinitrdを指すシンボリックリンクのペアをルートディレクトリに作成します。 /dev/sda1を、Linuxカーネルが使用するスキームのパーティションの表現に置き換える必要があることに注意してください。大体、(hd0,1)/dev/sda1に対応しています。 (hd0,2) corresponds to/dev/sda2;(hd1,1)は/dev/sdb1に対応します。

boot

これにより、選択したパーティションから選択したカーネルが起動します。システムの起動に成功したら、それを使用してgrubを復元できます。 ここ

Wubiでグラブ

上記は、Ubuntuが定期的に、つまり独自のパーティションにインストールされていることを前提としています。記述の際、Wubiを使用しました。つまり、「Lupin」と呼ばれる手法を使用して、Windows(NTFS)パーティション上の大きなfileにインストールしました。プロセスはより複雑ですが、これが原理的に機能しなかった理由はありません。 Wubiインストールに基づくgrub.cfgの内容は次のとおりです。

insmod part_msdos
insmod ntfs
set root='(hd0,msdos5)'
search --no-floppy --fs-uuid --set be300f9c300f5ab3
loopback loop0 /ubuntu/disks/root.disk
set root=(loop0)
linux /boot/vmlinuz root=/dev/sda1 loop=/ubuntu/disks/root.disk
initrd /boot/initrd.img

これを特定のケースに適応させる必要があります。 10.10インストールから取得したこのスニペットでは、searchコマンドがファイルシステムのUUIDまたは識別子を使用してルートパーティションを検索します。代わりに--file --set /ubuntu/disks/root.diskを使用できます( here は公式ドキュメントです)。このgrub構成は、NTFSパーティション上の「パーティションファイル」loop0の内容を表す/ubuntu/disks/root.diskという仮想ディスク-"ループバックデバイス"を作成します。少しの試行錯誤で、この作業を行えるようになるはずです。

16
loevborg