だから、最新のカーネルでUbuntuをアップグレードしました。しかし、アップグレード後、Ubuntuを再起動した後は、GRUBしか取得できません。 GRUBだけを持っているときにUbuntuを再度ロードするにはどうすればよいですか?
Wubiを使用してUbuntuをインストールしました。
助けてくれてありがとう
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を復元できます。 ここ 。
上記は、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
という仮想ディスク-"ループバックデバイス"を作成します。少しの試行錯誤で、この作業を行えるようになるはずです。