web-dev-qa-db-ja.com

USBフラッシュドライブへのGrub 2のインストール

MultiBootISOs は、USBフラッシュドライブにGrubをインストールするためのツールです。 ISOファイルから起動し、USBにたくさんのISOを入れて、どれを起動するかを選択できるので、本当に気に入っています。

問題は、これはWindowsツールであり、コマンドラインから実行する方法がわからないことです。この方法でGrub(2)をインストールする方法も知りたいのですが、Grub Legacyの方が簡単なようです...

編集:私はツールを求めているわけではありません(そしてWindowsのツールではありません)。同じ効果を得るために実行しなければならないコマンドを知りたいのですが。私は今、Ubuntuを考えていますが、USBでISOを起動できる一般的な方法がある場合は、それが良いでしょう。

30
phunehehe

これがどのように行われるのか、気になった。 Pendrivelinuxサイトにはチュートリアルがありました これは、サイトが示唆するように、ライブCDではなくMint 9インストールからこれを行いました。

私が実行したターミナルでUSBドライブの場所を見つけることから始めましたdfそれはデバイスの場所を返しました

/dev/sdg1   /media/LINUXUSB

その後私は走った

Sudo su

そして、GRUB 2をインストールする

grub-install --no-floppy --force --root-directory=/media/LINUXUSB /dev/sdg1

さらに--forceを使用する必要がありましたが、サイトの例では使用していませんでした。それから私はやった

cd /media/LINUXUSB/boot/grub

このサイトには、USBドライブの/ boot/grubディレクトリにgrub.cfgのコピーをダウンロードするためのリンクがありました。リンクは

wget http://pendrivelinux.com/downloads/grub.cfg

その後、USBドライブのISOを反映するようにgrub.cfgを編集しました。

set timeout=10 set default=0

menuentry "Run Fedora" {
    loopback loop /Fedora13.iso
    linux (loop)/isolinux/vmlinuz0 boot=isolinux iso-scan/filename=/Fedora13.iso splash --
    initrd (loop)/isolinux/initrd0.img
}

menuentry "Run Ubuntu" {
    loopback loop /ubuntu-10.04-netbook-i386.iso 
    linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu-10.04-netbook-i386.iso splash --
    initrd (loop)/casper/initrd.lz
}

menuentry "Run Clonezilla" {
    loopback loop /clonezilla.iso
    linux (loop)/live/vmlinuz boot=live iso-scan/filename=/clonezilla.iso splash --
    initrd (loop)/live/initrd.img }

異なるisoで、vmlinuzとinitrdが異なるディレクトリにあることがわかりました。 3つすべてで起動プロセスを開始することができました。しかし、実際にロードするのはUbuntuだけです。他の2つがロードを完了するために必要なものがわかったら、後で追加します。私はこれらの3つだけの他のisoを試していません。

18
Steve Burdine

GRUB2ブートローダーの完全なチュートリアル は、GRUB2でマルチブート構成を開始するのに適した場所です。
GRUBを使い慣れている場合は、 5th または 6th セクションに直接進んでください。

GRUBを使用したマルチブートシステムのセットアップ に関するスーパーユーザーの質問もあります。
Ubuntu MultiOSBoot コミュニティページもあり、レガシーGRUBに固執する必要があります。

マシンがフラッシュドライブから起動できる限り、この手法はフラッシュドライブでも機能します。
私は 今しばらくの間フラッシュドライブで作業している です。

5
nik

私はようやく実際にUSBからFedora 18 isoを起動するように機能するスクリプトを見つけました: http://git.marmotte.net/git/glim/plain/Fedora18-fromiso

詳細はこちら: http://git.marmotte.net/git/glim/plain/README

0
valentt

リムーバブルディスク用のgrub.cfgを生成する方法を見つけるためにインターネットで何時間も費やしました。

最後に here のスクリプトに基づいて、作業スクリプトを作成しました(以下はgrub.cfgの内容です):

### inputs ###
set UUID_ESP="E8C0-B8AE"
set UUID_ISO="c11f533e-a298-4381-950a-5d6d1f7f5907"
### end ###


search --no-floppy --set=ESP --fs-uuid $UUID_ESP # the address of the ESP
set ESP=($ESP) # add parentheses
echo "The address of the ESP is $ESP"
search --no-floppy --set=ISO_PART --fs-uuid $UUID_ISO # the address of the ISO partition
set ISO_PART=($ISO_PART) # add parentheses
echo "The partition on the flash drive with the iso is $ISO_PART"
echo "the prefix is $prefix" # GRUB folder with modules
sleep 5

insmod efi_gop
insmod font

if loadfont $ESP/boot/grub/fonts/unicode.pf2
then
        insmod gfxterm
        set gfxmode=auto
        set gfxpayload=keep
        terminal_output gfxterm
fi

menuentry "Arch_linux_iso" {
        set ISOFILE="/archlinux-2019.10.01-x86_64.iso"
        loopback loop ${ISO_PART}${ISOFILE}
        linux (loop)/Arch/boot/x86_64/vmlinuz img_dev=/dev/disk/by-uuid/$UUID_ISO img_loop=$ISOFILE
        initrd (loop)/Arch/boot/intel_ucode.img (loop)/Arch/boot/AMD_ucode.img (loop)/Arch/boot/x86_64/archiso.img
}
0
user3804598