ハードディスクに保存されているISOファイルから起動するにはどうすればよいですか?


12

起動可能なCD / DVDまたはライブUSBを作成/書き込みでき、そこから起動/インストールできることを知っています。しかし、現在GNU / Linuxを実行していて、ハードディスクにインストールしたい別のGNU / LinuxのISOファイルがある場合、ハードディスクからISOから直接起動して、そのGNU / Linuxオペレーティングシステムを試してインストールできますか? ?

回答:


15

はい、メニュー項目をGRUBブートローダーメニューに追加することでこれを実現できます。

を編集して/etc/grub.d/40_custom、カスタムGRUBメニューエントリを追加できます。

カスタムメニューエントリの例

 exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.  

menuentry "Trisquel ISO" {
        set isofile="/Operating_Systems/Trisquel_7.0_i686/trisquel_7.0_i686.iso"
        loopback loop (hd0,5)$isofile
        linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile quiet splash
        initrd (loop)/casper/initrd
}

指示と説明:

  1. このコマンドsetは、ISOファイルのパスを変数(ここでは)に格納するために使用されますisofile

  2. loopbackファイルシステムイメージからデバイスを作成するために使用されます。そのためには、デバイスとイメージファイルを指定する必要があります。ここでは、ディスクの5番目のパーティション(hd0,5)$isofile(hd0,5)表すを使用しています。

    • 注意点:において(hd0,5)
      1 番目の数字は、デバイスから始まる番号を表し0(ここで:0 = 1 番目のデバイス)と
      2 番目の桁から始まるパーティション番号を表し1(ここでは5 = 5 番目のパーティション)。
      つまり/dev/sda5
    • そして、変数$isofileはISOファイルのパスを持っています。それで、ようやくになり(hd0,5)/Operating_Systems/Trisquel_7.0_i686/trisquel_7.0_i686.isoます。
    • 詳細については、次のWebサイトを参照してください。デバイスファイルを指定する方法

  3. linuxコマンドは、ファイルからLinuxカーネル(vmlinuz)をロードするために使用されます。LinuxカーネルのパスをISOに入れます。

    • ISOの内容を読み取り/抽出して、カーネルの例のパスを取得します。

       $ 7z l trisquel_7.0_i686.iso | grep vmlinu
       2014-10-29 21:41:43 .....      5841680      5841680  casper/vmlinuz
       2014-11-03 00:45:09 .....      5844176      5844176  casper/vmlinuz.netinst
      

      なので、/casper/vmlinuzここで使用されました。

  4. initrd コマンドは、Linuxカーネルイメージの初期RAMディスクをロードし、メモリ内のLinuxセットアップ領域に適切なパラメータを設定するために使用されます。

    • initrdは、一時的なルートファイルシステムをメモリにロードするためのスキームです。のパスをinitrdISOに入れます。
    • ISOのコンテンツを読み取り/抽出して、次のパスを取得しますinitrd

      $ 7z l trisquel_7.0_i686.iso | grep initrd
      2014-11-03 00:45:19 .....     16851900     16851900  casper/initrd
      2014-11-03 00:45:09 .....      9398592      9398592  casper/initrd.netinst
      
  5. などの追加パラメーターはboot=casper iso-scan/filename=$isofile noprompt noeject、GNU / Linuxディストリビューションに固有であり、Linuxの別のファミリーによって異なる場合があります。ここから、さまざまなファミリ/ディストリビューションの構成を見つけることができます。

    注:一部のディストリビューションではinitrd.gzinitrd.lz使用されるアルゴリズム/圧縮が使用されます。

編集後/etc/grub.d/40_customupdate-grub2コマンドでGRUBを更新する必要があります。再起動すると、GRUB画面に追加したカスタムメニューエントリが表示されます。また、GNU / LinuxディストリビューションのLive環境を使用することもできます。

ISOからのインストールを実行するために、インストーラーはマウントされたパーティションをアンマウントする必要がある場合があります。つまり、別のシステムがにマウントされている/isodeviceとしますumount -l /isodevice


うわー、感動しました...新しいOSのインストールには、パーティションの再フォーマットが含まれることが多く、ISOファイルが格納されているパーティションが含まれている可能性があるため、不可能だと思いました。
ワイルドカード

サンプルはGRUB2を使用します。Centos 6はGRUB1(grub legacy)を使用しており、上記の例は機能しません。
Ikrom
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.