GParted 、 CloneZilla 、 Boot-Repair 、 buntu 14.04 32 bit のようなライブISOファイルがたくさんあります... /opt
にダウンロードされ、古いBIOSマシンでは、単にそれらをgrubメニューに追加して起動することができました。 :-)
現在、UEFIマシンがあり、BIOSマシンに関する情報がすべて見つかります。
これらのISOファイルをgrubから起動する手順は何ですか?
私はちょうど私が必要なスティックを見つけることができないので、これらを常にUSBスティックに「焼く」ことにうんざりしています。 ) :-(
さて、ISOファイルをgrubに追加するための基本は、UEFIでもBIOSマシンでも同じです:/etc/grub.d/40_custom
を編集し、menuentry
アイテム(この例ではGPartedを使用)を下部に追加しますファイル:
menuentry "GParted Live ISO" {
}
ここで、ISOを保存したディレクトリを含む変数を追加します(これまでのところ、これは良いことです:BIOSマシンとの違いはありません)。
menuentry "GParted Live ISO" {
set GPartedISOFile="/opt/Live-ISOs/gparted-live-0.31.0-1-AMD64.iso"
}
私のマシンのルートにディレクトリを作成するのが好きではないので、/opt
を使用してこれらを保存しています。 Linux File System Hierarchy に従って、とにかくオプションのソフトウェアが存在するはずです。
loopback
変数を追加する前に、ファイルがどのハードディスクに保存されているかを確認する必要があります。したがって、df --output=source /opt/Live-ISOs/gparted-live-0.31.0-1-AMD64.iso | tail -1
を実行し、マシン上の出力は/dev/sdb2
です。
ただしgrubは(hdX、Y)表記とthisはUEFIマシンとBIOSマシンの違いの出番です!ここでマシンを再起動します grubメニューに移動します を押します C:これにより、 以前とは異なるコマンド でgrubコマンドプロンプトが表示されますが、必要なのはls
のみです。
私のマシンでは、出力は次のとおりです。
(hd0) (hd1) (hd1,gpt3) (hd1,gpt2) (hd1,gpt1) (hd2) ... (hd3) ...
え? 4ドライブ? 3つしかありません! BIOSの(hd1,4)
行ではなく、UEFIの(hd1,gpt3)
と(hd0)
にはパーティションがありません!
明らかに、NVRAMの一部がストレージとして使用され、(hd0)
として表示される場合、1からドライブの番号付けを開始する必要があります!ISOファイルの起動時に検索すると、0から番号付けを開始する必要があります(BIOSマシンでは、これはalways trueですが、必ずしもそうではありません一部のUEFIマシン!)
したがって、マシンのISOファイルが(hd2,gpt2)$GPartedISOFile
(2番目のドライブ/dev/sdb2
、2番目のパーティションhd2
)であったため、loopback
の値はgpt2
になります。
menuentry "GParted Live ISO" {
set GPartedISOFile="/opt/Live-ISOs/gparted-live-0.31.0-1-AMD64.iso"
loopback loop (hd2,gpt2)$GPartedISOFile
}
もう1つの違いは、BIOSマシンのlinux
とinitrd
がUEFIマシンのlinuxefi
とlinuxefi
と呼ばれることです。これにより、最終結果が得られます。
#!/bin/sh
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 "GParted Live ISO" {
set GPartedISOFile="/opt/Live-ISOs/gparted-live-0.31.0-1-AMD64.iso"
loopback loop (hd2,gpt2)$GPartedISOFile
linuxefi (loop)/live/vmlinuz boot=live components config findiso=$GPartedISOFile ip=frommedia toram=filesystem.squashfs union=overlay username=user
initrdefi (loop)/live/initrd.img
}
そこで、そのファイルを保存し、grubを次のように更新します。
update-grub
上記のすべての後、再起動して、 grubメニューに移動します 、GParted Live ISO
を選択すると、USBスティックを再び探す必要なくISOを簡単に起動できます!
menuentry "CloneZilla ISO (Works)" {
set ISOFile="/opt/Live-ISOs/clonezilla-live-20170905-zesty-AMD64.iso"
loopback loop (hd2,gpt2)$ISOFile
linuxefi (loop)/live/vmlinuz boot=live components config findiso=$ISOFile ip=frommedia toram=filesystem.squashfs union=overlay
initrdefi (loop)/live/initrd.img
}
別の方法は、次のように40_customに設定ファイルを追加するだけです:
menuentry 'Live ISOs on SSD' {
configfile (hd0,3)/ISO/livecdimage.cfg
}
menuentry 'Live ISOs on HDD (boot on SSD)' {
configfile (hd1,3)/ISO/livecdimage.cfg
}
これは、ISOを更新するときにSudo update-grub
を実行することを常に忘れてしまうためです。上記のエントリを変更する必要はありません。live_cdimage.cfgは、40_customと同じ形式ですがヘッダー行はなく、ISOパーティションの/ ISOフォルダーにあります。
Toramを別のブートパラメータとして追加し、Nvidiaを使用するシステムではnomodesetブートパラメータを追加します。ただし、多くの場合、/ isodeviceをアンマウントする必要があります。
Isodevice unmount ISOをアンマウントできません https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1155216
Sudo umount -l -r -f /isodevice
そして、これは私のlivecdimage.cfgファイルの一部です
# livecdimage.cfg
# Add this to 40_custom to load this file:
# menuentry 'Live ISOs' {
# configfile (hd1,3)/iso/livecdimage.cfg
#}
# Add iso names to livecdimage.cfg
#for i in `ls *.iso`;do echo "# "$i>>livecdimage.cfg; done;
menuentry "Ubuntu 16.04.4 xenial AMD64" {
set isofile="/ISO/ubuntu-16.04.4-desktop-AMD64.iso"
loopback loop (hd0,3)$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile toram
initrd (loop)/casper/initrd.lz
}
menuentry "Ubuntu 18.04 Bionic AMD64" {
set isofile="/ISO/bionic-desktop-AMD64.iso"
loopback loop (hd0,3)$isofile
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile toram
initrd (loop)/casper/initrd.lz
}
# spacer line
menuentry " " {
set root=
}
menuentry "Reboot" {
reboot
}
menuentry "Halt" {
halt
}
mkusb MULTIBOOT HACK
Mkusbは、BIOSとUEFIの両方の機能を備えているため、カスタムブートドライブプロジェクトの優れた基盤となります。
このハックは、Windowsインストーラーを含む複数のISOファイルを起動し、grub2メニューを備えています。
ほとんどのOSのGrub2メニュー項目は、Google検索を使用して利用でき、この回答の範囲を超えています。
永続的なUSBドライブを作成するときは、mkusbのデフォルトを使用します。
疑わしい場合はmkusb永続性のデフォルトを使用します。パーティションサイズは後で調整できますが、時間がかかります。
インストール後のDUSコンソール。
パーティションの変更前にGParted。
変更後のGparted-sdb4、ISO9660 OSパーティション、およびsdb5、ext2 casper-rwパーティションを、永続性ファイル用のFAT32パーティションで上書きします。
永続パーティション-各OSに一意の名前のフォルダーを作成します(永続性が必要です)
永続フォルダー-casper-rwファイルとオプションのhome-rwファイルを各永続フォルダーに追加します。 home-rwファイルは、casper-rwファイルの名前を変更することで作成できます。 home-rwファイルは、フルインストールの別のホームパーティションのようなもので、バージョンのアップグレード後に再利用できます。
NTFS usbdataパーティションにISOファイル用のフォルダーを作成します。
ISOフォルダーにいくつかのISOを追加します。
grub.cfgの場所
Grub.cfgを編集して、ISOファイルをループマウントします。含める:persistent persistent-path=/<persistent-folder-name>/
永続性が必要な場合。
Sudo parted -ls/dev/sdb
Sudo lsblk -f/dev/sdb
Windowsインストーラーが必要な場合は、おそらくmkusbの「Windowsインストーラーの抽出」機能から始めるのが最も簡単です(手動でWindows ISOをTARに抽出する必要がありました)。
インストール後、ISO用のフォルダーを作成し、必要に応じて永続化用のフォルダーを作成します(上記の手順と同様)。
/boot/grub/grub.cfgを編集してISOをループマウントし、永続フォルダーを指定します。
(Windows ISOファイルをループマウントする方法を見つけていません)。
上記をUSBスティックとして使用する場合、Windows専用コンピューターに保存されているISOを起動するために使用できます。内蔵ドライブにはGrubは必要ありません。
iSOをgrubメニューに追加して、そこから起動します。
grml-rescueboot
をインストールしますターミナルを開き、次を入力します。
Sudo apt install grml-rescueboot
/boot/grml/
に移動します同じ端末で次を入力します。
Sudo mv ~/Downloads/<filename.iso> /boot/grml/
同じ端末で次を入力します。
Sudo update-grub
/boot/grml
から古いISOファイルを削除することを忘れないでください。
リファレンス: Grub2 ISOブートに関するUbuntuヘルプ
お役に立てれば
SIMPLE mkusb ISO multibooter
マルチパーシスタンスが必要ない場合は、mkusbフラッシュドライブでオペレーティングシステムISOをマルチブートするのは簡単です。
Mkusbを使用して、選択したデフォルトOS https://help.ubuntu.com/community/mkusb を使用して永続USBドライブを作成します。
Usbdataパーティションsdx1にISOという名前のフォルダーを作成します。
起動するISOをこのフォルダーに追加します。
メニューエントリを/sdx3/boot/grub/grub.cfgに追加して、ISOをループマウントします。
サンプル:
menuentry "Ubuntu-18.04 64-bit ISO" {
set root=(hd0,1)
set isofile="/ISOs/ubuntu-18.04-desktop-AMD64.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile splash --
initrd (loop)/casper/initrd.lz
}
menuentry "GParted 64-bit ISO" {
set root=(hd0,1)
set isofile="/ISOs/gparted-live-0.31.0-1-AMD64.iso"
loopback loop $isofile
linux (loop)/live/vmlinuz boot=live union=overlay username=user config components noswap noeject toram=filesystem.squashfs ip='' nosplash findiso=$isofile splash --
initrd (loop)/live/initrd.img
}
menuentry "Clonezilla 64-bit ISO" {
set root=(hd0,1)
set isofile="/ISOs/clonezilla-live-2.5.5-38-AMD64.iso"
loopback loop $isofile
linux (loop)/live/vmlinuz boot=live live-config nolocales edd=on nomodeset ocs_live_run=\"ocs-live-general\" ocs_live_extra_param=\"\" ocs_live_keymap=\"\" ocs_live_batch=\"no\" ocs_lang=\"\" vga=788 ip=frommedia nosplash toram=filesystem.squashfs findiso=$isofile splash --
initrd (loop)/live/initrd.img
}