起動可能なCD/DVDまたはライブUSBを作成/書き込みでき、そこから起動/インストールできることを知っています。しかし、現在GNU/Linuxを実行していて、ハードディスクにインストールしたい別のGNU/LinuxのISOファイルがある場合、ハードディスクからISOから直接起動して、そのGNU/Linuxオペレーティングシステムを試してインストールできますか? ?
はい、メニューエントリを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
}
説明と説明:
コマンド set
は、ISOファイルのパスを変数に保存するために使用されます。ここではisofile
。
loopback
は、ファイルシステムイメージからデバイスを作成するために使用されます。そのためには、デバイスとイメージファイルを指定する必要があります。ここでは、(hd0,5)$isofile
を使用しました。ここで、(hd0,5)
は、ディスクの5番目のパーティションを表します。
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
を使用しました。
initrd
コマンドは、Linuxカーネルイメージの初期RAMディスクをロードし、適切なパラメータを設定するために使用されますメモリ内のLinuxセットアップ領域。
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
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
を実行できます。