私はplop linuxを介してUbuntuのカスタムバージョンをインストールするために使用するISOファイルから作成されたCDを持っています
cdは正常に動作しますが、代わりにブータブルUSBドライブを使用したいと思います。dd コマンドを使ってブータブル USB を作成してみました
dd if=filename.iso of=/dev/sdb1 bs=4k
今、これはファイルをコピーしてUSBを起動可能にしますが、私はエラー “missing operating system “を取得します
Any ideas?
50 xsdf 2013-05-03
いくつかの研究の後、私は解決策を考え出しました、そして私はそれを一歩一歩進めていきます。問題は二つあった
USBフラッシュドライブを差し込んで、コマンドでマウントされているデバイスを判断します
sudo fdisk -l
今回は私の場合は/dev/sdc1だったので、それを例にします
デバイスのアンマウント
umount /dev/sdc1
必要かどうかはわかりませんが、念のためドライブをFAT32でフォーマットしてみました
sudo mkdosfs -n 'USB-Drive-Name' -I /dev/sdc -F 32
ISO は syslinux ではなく isolinux を使っていました。CDで動作することは知っていたので、ISOをハードドライブからBIOSに認識させるにはisohybridコマンドを呼び出す必要があることがわかりました
isohybrid filename.iso
このコマンドについては、こちらを参照してください。しかし、これが原因で “Missing Operating System “というメッセージが表示されていました
次のステップは iso をコピーすることです。私の二番目の問題はここにあり、デバイスではなくパーティション、sdc1にコピーしていました
sudo dd if=filename.iso of=/dev/sdc bs=4k
これで問題なく動作しているようですが、最後に修正してもらったフォーラムでは、デバイスを抜く前に以下のようにすることを推奨されていました
sync sudo eject /dev/sdc
58 xsdf 2013-05-07
これは、SanDisk USBスティック、またはFAT32でフォーマットされていないスティックでよく見られる問題です
もしどちらでもなければ、スティックパーティションの順番や syslinux.cfg ファイルに問題があることは間違いありません
3 Shouvik Sayef 2013-05-03
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
を使って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 ==
1 Yaroslav Nikitenko 2016-01-20
bootiso
ユーティリティ を使用することができます
bootiso -d /dev/sdb filename.iso
bootiso は選択されたデバイス /dev/sdb
が USB 経由で接続されているかどうかをチェックし、接続されていない場合は失敗します。また、システムに接続されているUSBドライブが1つでもあれば、USBデバイスを自動検出します
xsdf が指摘した問題を回避するために syslinux ブートローダをインストールしたい場合は -b
オプションを使ってください
bootiso -b -d /dev/sdb filename.iso
それをインストールするために
curl -L https://rawgit.com/jsamr/bootiso/latest/bootiso -O
chmod +x bootiso
0 Jules Sam. Randolph 2018-04-09