(syslinuxのusbkey.txtの勝手訳)
Cはシリンダ(cylinder)Hはヘッド(HEAD)Sはセクタ(SECTOR)の略です。
作業は linuxで行います
1)USB-HDモードを試す
BIOSで選ぶUSBメモリーからの真当な(BIOSが不出来なものでないとして)起動モードは"USB-HDD"。このモードはUSBメモリにかかれているC/H/SジオメトリがBIOSが予想しているものと一致していなくてもよい唯一のもの。USBメモリをHDドライブとするジオメトリには規定はなく、またbiosごとに仮定しているジオメトリがまちまちだ。C/H/S=?/255/63,や ?/16/63 。したがって、どんな時にも起動する唯一のモードは"USB-HDD"となる
いくつかのBIOS(特にある時期のAward BIOS)では"USB-HDD"モードで起動できない事が報告されている。
2)USB-ZIPモードを試す
BIOSでUSB-ZIPモードを選んでも止まってしまうことがある。USBメモリのジオメトリがZIP-Driveのジオメトリに合ってないことを意味している
zip-drive(100 MB と250 MBでも)のジオメトリ(C/H/S)はH:64、S:32で第4パーティションを使う(HDでは第1パーティションを使う。FDではパーティションを作らない)。100 MBのものは C:96で、250MBのものはC:239である。シリンダー数(C)は容量により変える。例えば、USBメモリをlinuxのシステムに挿して
次のメッセージがでたら
usb-storage: device found at 4
Vendor: 32MB Model: HardDrive Rev: 1.88
Type: Direct-Access ANSI SCSI revision: 02
SCSI device sda: 64000 512-byte hdwr sectors (33 MB)
シリンダー数は 64000/(64*32) = 31.25 シリンダ; 丸めて C:31である。
syslinuxからダウンロードして手に入るスクリプト"mkdiskimage"がusbメモリをZIP形式で初期化するために使える。そのためには、シリンダー数を正しく計算し(上の例では31)、もしUSBメモリが
/dev/sda にいるなら(ここでは sdaがUSBメモリだとして話をしている。もし間違えたらドライブを初期化することになり回復不可能なので十分注意すること)、次のスクリプトを走らす
mkdiskimage -4 /dev/sda 0 64 32
ここで 0はメモリ容量を自動的に決めることを意味し、-4はパーティション4を使ってZIPディスクと同じように見せかけることを意味する。
次に以下のように syslinuxを起動しブートセクタを書き込む
syslinux /dev/sda4
その後 /dev/sda4 をマウントして、ファイルをコピーする。
これで usb-zip起動するusbメモリがつくれる
追記
Intel Desktop board (PhoenixBIOS)の場合
パーティションを切らなければ(FD扱い)syslinuxを利用してのブートは容易.(grubからのブートは成功しない)
パーティションを切った場合(syslinux/doc/usbkey.txtを参照),ブートエラーが発生.
BIOSで"USB Mass Storage Emulation Type"を "Auto"から"Fixed Disk"(HD扱い)に変更で解消.
Cはシリンダ(cylinder)Hはヘッド(HEAD)Sはセクタ(SECTOR)の略です。
作業は linuxで行います
1)USB-HDモードを試す
BIOSで選ぶUSBメモリーからの真当な(BIOSが不出来なものでないとして)起動モードは"USB-HDD"。このモードはUSBメモリにかかれているC/H/SジオメトリがBIOSが予想しているものと一致していなくてもよい唯一のもの。USBメモリをHDドライブとするジオメトリには規定はなく、またbiosごとに仮定しているジオメトリがまちまちだ。C/H/S=?/255/63,や ?/16/63 。したがって、どんな時にも起動する唯一のモードは"USB-HDD"となる
いくつかのBIOS(特にある時期のAward BIOS)では"USB-HDD"モードで起動できない事が報告されている。
2)USB-ZIPモードを試す
BIOSでUSB-ZIPモードを選んでも止まってしまうことがある。USBメモリのジオメトリがZIP-Driveのジオメトリに合ってないことを意味している
zip-drive(100 MB と250 MBでも)のジオメトリ(C/H/S)はH:64、S:32で第4パーティションを使う(HDでは第1パーティションを使う。FDではパーティションを作らない)。100 MBのものは C:96で、250MBのものはC:239である。シリンダー数(C)は容量により変える。例えば、USBメモリをlinuxのシステムに挿して
次のメッセージがでたら
usb-storage: device found at 4
Vendor: 32MB Model: HardDrive Rev: 1.88
Type: Direct-Access ANSI SCSI revision: 02
SCSI device sda: 64000 512-byte hdwr sectors (33 MB)
シリンダー数は 64000/(64*32) = 31.25 シリンダ; 丸めて C:31である。
syslinuxからダウンロードして手に入るスクリプト"mkdiskimage"がusbメモリをZIP形式で初期化するために使える。そのためには、シリンダー数を正しく計算し(上の例では31)、もしUSBメモリが
/dev/sda にいるなら(ここでは sdaがUSBメモリだとして話をしている。もし間違えたらドライブを初期化することになり回復不可能なので十分注意すること)、次のスクリプトを走らす
mkdiskimage -4 /dev/sda 0 64 32
ここで 0はメモリ容量を自動的に決めることを意味し、-4はパーティション4を使ってZIPディスクと同じように見せかけることを意味する。
次に以下のように syslinuxを起動しブートセクタを書き込む
syslinux /dev/sda4
その後 /dev/sda4 をマウントして、ファイルをコピーする。
これで usb-zip起動するusbメモリがつくれる
追記
Intel Desktop board (PhoenixBIOS)の場合
パーティションを切らなければ(FD扱い)syslinuxを利用してのブートは容易.(grubからのブートは成功しない)
パーティションを切った場合(syslinux/doc/usbkey.txtを参照),ブートエラーが発生.
BIOSで"USB Mass Storage Emulation Type"を "Auto"から"Fixed Disk"(HD扱い)に変更で解消.