Grub2の興味深い機能:ISOファイルからの読み込み

実際、Unityを見たかったのです。 写真とビデオから-それは何のようにも思えません。 はい、それは問題です。 仮想マシンでは実行できません-3Dが必要です。 私自身はKDEshnikです。 ラップトップのメインOSはkubuntuです。 まあ、私はあなたが第二のシステムを置くことができると思います。 空きスペースはそうです。



わかった Nattyの画像をダウンロードし、書き込みますが、地獄です。 CD-ROMが機能していませんでした。 ラップトップはすでにかなり古いです。 BIOSにはフラッシュドライブからの起動もありません。 短いパニックの後、解決策が見つかりました。



grub2はISO 9660形式を理解し、ハードドライブにあるISOイメージから直接OSをロードできることがわかりました。 後で判明したように、すべてのシステムがこのようなイベントの変化に対応できるわけではありません。 多くの場合、何らかの理由でダウンロード時に混乱します。 幸いなことに、Ubuntuはそれらの1つではありません。



さあ、始めましょう。 まず、Grub2に新しいメニュー項目を追加します。 これを行うには、/ etc / grub.d / custom_40を編集して、ファイルの最後に次の行を追加します。



menuentry "Ubuntu Live" {

set root=(hd0,7)

loopback loop /ubuntu-11.04-desktop-amd64.iso

linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu-11.04-desktop-amd64.iso noeject noprompt --

initrd (loop)/casper/initrd.lz

}







そして、私たちはここで何をしましたか:

「set root」では、isoイメージが配置されているセクションを示します

「ループバックループ」では、isoファイルをマウントするループデバイスを作成します(たとえば、マウントマニュアルの「ループデバイス」セクションを参照してください(ループデバイスの種類がわからない場合)。

次の2行は、デバイスループのルート(ISOイメージ内のカーネルお​​よびinitrdファイルへのパス)に対するカーネルお​​よびinitrdイメージの位置を示しています。



誰かが繰り返してみようとする場合、留意してください:



1. set root =(hd0,7)で、7をシステムのisoイメージが置かれているマシンのパーティション番号に置き換えます。 たとえば、/ dev / sda1セクションでubuntu-11.04-desktop-amd64.isoをロードした場合、行はset root =(hd0,1)に変わります。

2. ISOをホームパーティションのルート ((hd0,7)にアップロードしました。イメージがフォルダーに表示される場合は、ルートを基準としたイメージへのフルパスを指定します。



grub2構成ファイルの更新:

update-grub







さらに、fdiskを使用して、将来の2番目のシステム用に新しいパーティションを作成し、再起動しました。



予想どおり、ブートメニューに新しい「Ubuntu Live」アイテムが表示され、すぐに選択されました。 ロード時にアドベンチャーは発生しませんでしたが、Unity Gnomeの代わりに私に会いました:-) nvidiaのFirewoodはディストリビューションに含まれていません。



インストールを開始します。 インストールを押します。 /、swap、/ homeのパーティションを選択した後、別のファイルが待っていました。 ユビキタスは、私がマウントされたパーティションを持っていると主張して、カットを続けることを拒否しました。 Ubuntuイメージでループデバイスを作成するために、grub2は最初にこのイメージが配置されているパーティションをマウントしました。 このセクションが、インストール中に何らかの変更があると主張する人たちの中にいないことは問題ではありません。Ubiquityインストーラーは断固としており、インストールは続行を拒否しました。



Googleの短い検索の後、これに遭遇したのは私が最初ではなかったことが判明しました。 この問題は、/ etc / mtabからマウントされたパーティション(私の場合は/ dev / sda7)の行を削除することで解決しました。 インストールを開始する前にこれを行う必要がありました。 その除去後、すべてが時計仕掛けのようになりました。 インストールが正常に完了しました。ビデオカードドライバーをインストールし、再起動後に... TA-DA。



画像



Ubuntuでの成功した経験の後、私はこのブート方法がどれほど汎用性があるかを見ることにしました。 彼との多くの配布がそれほどスムーズではないことを強制的に報告しました。

まず、grub2をメインシステム(ブートローダーを使用するシステム)にインストールする必要があります。 Grubおよびその他のブートローダーは、システムをISOからディスクにブートする方法を知りません。



問題は、この方法を使用してダウンロードするディストリビューションの開発者が、ISOファイルからダウンロードするオプションを明示的に提供する必要があることです。 Ubuntuでは、カーネルへのパスを示すgrub2構成ファイルの行を見ると、特別なパラメーターiso-scan / filenameがカーネルに渡されていることがわかります。これは、システムがISOファイルからロードされていることを明確に示しています。



Ubuntuベースのディストリビューション(Mint、Kubuntu、Mythubuntu、BackTrackなど)のISOファイルからのダウンロードは機能します。 GentooのISOファイル、SystemRescueCD、いくつかのあまり知られていないディストリビューション、Sidux、Grml、Xbmcからの読み込みがサポートされています。 また、この方法を使用して、initrdを解凍した後、メモリに完全に保存され、イメージ内のファイルを使用しない小さなディストリビューションをダウンロードすることもできます。 たとえば、CentOS、Debian(およびおそらく他の多くのディストリビューション)には、最低限のすべてを含むいわゆる「netinstall」イメージがあり、すべてのパッケージがネットワーク経由でインストールされます。



Fedoraは、この方法を使用してブートする方法を「知りません」(バグトラッカーのバグがハングし、この方向で作業が進行しています)。 また、この方法はArchとDebianではまだ機能しません。



All Articles