web-dev-qa-db-ja.com

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

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

12
Pandya

はい、メニューエントリを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 は、ファイルシステムイメージからデバイスを作成するために使用されます。そのためには、デバイスとイメージファイルを指定する必要があります。ここでは、(hd0,5)$isofileを使用しました。ここで、(hd0,5)は、ディスクの5番目のパーティションを表します。

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

  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 は、一時ルートファイルシステムをメモリにロードするためのスキームです。 ISOにinitrdのパスを入れます。
    • 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ファミリーでは異なる場合があります。 here から、さまざまなファミリ/ディストリビューションの構成を見つけることができます。

    注:一部のディストリビューションは、使用するアルゴリズム/圧縮に応じて、initrd.gzまたはinitrd.lzを使用します。

/etc/grub.d/40_customを編集した後、GRUBはupdate-grub2コマンドで更新する必要があります。再起動すると、追加したカスタムメニューエントリがGRUB screen。そして、GNU/LinuxディストリビューションのLive環境を使用できます。

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

15
Pandya