isohybrid
は必ずしもうまくいくとは限りません。例えば、FreeDOS で .iso を持っていたのですが、isohybrid はそこにある重要なファイルを見つけることができませんでした (私が使っていた syslinux がそこに置くべきだったのか、それとも他の何かが置いてあったのかはわかりません)。ここでいくつかの代替案を提案します。
1) GRUB のような別のブートローダをインストールする。これは ここ で説明しています。
“USBスティックの最初のパーティションをFAT32とし、そのパーティションを/dev/sdy1とする” (私のFedora Coreにはgrub2
があったので、コマンドを少し変更しました):
# mkdir -p /mnt/usb ; mount /dev/sdy1 /mnt/usb
# grub2-install --target=i386-pc --recheck --debug --boot-directory=/mnt/usb/boot /dev/sdy
# grub2-mkconfig -o /mnt/usb/boot/grub2/grub.cfg
# optional, backup config files of grub.cfg
# mkdir -p /mnt/usb/etc/default
# cp /etc/default/grub /mnt/usb/etc/default
# cp -a /etc/grub.d /mnt/usb/etc
# sync; umount /mnt/usb
2) FreeDOSのwikiにはGRUBとsyslinuxを使った複合的な方法が載っています こちら (grub>
がどうやって起動したのか理解できませんが - 私はその段階まではUSBから起動できませんでした)。
3) ここ は参考になる投稿です - ‘command.com, kernel.sys, syslinux.cfg, ldlinux.sys, fat32lba.bss ファイルがドライブのルートにあり、MBR とブートセクタが書き換えられていない限り、ドライブは起動可能なままです。
4) ここでは syslinux ブートローダで起動可能な .iso ファイルを生成する方法が説明されています。isohybridすら使っていません。残念ながら参考になりませんでした(syslinux のせいかもしれません)。
5*) wine
を経由してwindowsのプログラムを使用します。rufusを試してみましたが、デバイスを見つけることができませんでした。
残念ながらこの問題は解決できず、私のデバイスは起動できませんでしたが、これが他の方(USBにlinuxではなくlinuxをインストールしたい方)の参考になれば幸いです。私の場合は、chtaubeで生成されたusbイメージで問題なく動作しましたので、これらの方法が正しいと思います。
UPD: 3番目の方法は本当にうまくいきました(カスタムインストールファイルのための修正付き)。
UPD2: (リンクを修正)。isohybrid
の問題は、おそらくiso上のisolinux.binのバージョンと私のシステムのバージョンが違っていたからだと思います。genisoimage
を使って、 ここ のように0x6&を使ってisoを再コンパイルしました。
genisoimage -l -r -J -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -c isolinux/boot.cat -o fd11new.iso fd11new
いくつかの問題もありました。
cp /boot/extlinux/*.c32 fd11new/isolinux/
extlinux --install /boot/isolinux
== end UPD2 ==