grub-install を使用せずに grub ファイルを取得する場所

grub-install を使用せずに grub ファイルを取得する場所

私は特殊な状況にあります。内蔵 CD ドライブのない MacBook Pro を持っていて、MacOS X (最小限のセットアップ) と Linux (メイン システム) の両方がインストールされています。Ubuntu 12.04 へのクロス アップグレード中に grub を台無しにしてしまったため、/boot/grub ディレクトリは基本的に空になっています。つまり、ラップトップで Linux を起動できなくなり、grub rescue に入ることしかできなくなりました。

通常、レスキュー CD または USB スティックから起動するだけなので問題はありませんが、残念ながら MacBook Pro ではこれができません (reFIT をインストールして起動しようとしましたが失敗し、マニュアルには Apple の EFI ファームウェアではこの状況に対処できないと記載されています)。

ただし、MacOS X からは、Linux パーティションへの書き込みアクセスがまだあります。/boot/grub フォルダーに必要なファイルを追加する方法を見つけようとしていますが、今のところうまくいきません。Ubuntu 12.04 の ISO イメージには EFI フォルダーが含まれていますが、これは私が探しているものではありません。代わりに、Ubuntu 12.04 の grub バージョンの normal.mod ファイルが必要です。grub インストール後にこれを抽出するために Ubuntu 12.04 の仮想マシンをセットアップする他のマシンがないので、この問題を解決する方法についてのアイデアをここで求めています。

追記: 以前、内蔵 CD ドライブがまだ動作していたときに Linux をインストールしました。現在は動作していません。

答え1

実行している Grub のバージョンを知っておくと役に立ちます。Grub1 と Grub2 には、実際には多数の (多くの場合、厄介な) 違いがあります。ここで関係する主な違いは、/boot/grub/menu.lst ファイル (grub1) と /boot/grub/grub.cfg ファイル (grub2) のどちらがあるかです。

これらは、コンピュータを初めて起動したときに Grub メニューに表示される内容を制御するファイルです。通常の状況では、更新スクリプトが処理するため、これらを手動で編集する必要はありませんが、おっしゃるとおり、この状況ではそれは不可能です。したがって、これらのファイルをバックアップし、適切なカーネル バージョンに合わせて手動で編集してください。これらのファイルの 1 つを修正するだけでは不十分な場合は (おっしゃるとおり、/boot/grub はほとんど空なので)、別のマシンまたはドライブに同じバージョンの ubuntu をインストールし、内容をコピーします。うまくいけば、構成が十分に類似しているため、起動できるはずですが、これが機能するという保証はありません。

何をするにしても、ファイルを編集または置換する前に必ずバックアップしてください。

答え2

正常に動作する CD ドライブを備えた別のマシンにアクセスできる場合は、Knoppix などの Linux ディストリビューションで起動可能な USB を作成できます。その後、CD からマシンを起動し、GRUB を修正できます。

関連情報