コメントスパム対策のため、特定メールアドレスの入った突っ込みをお断りしています。
GRUB for DOS によって 2枚のSD+1枚のCFメモリカードのパーティションが合計4回破壊されました。
よって GRUB for DOS は出入り禁止、そうなると syslinux でDOSを起動する方法が限られるため syslinux も使用停止とします。
「パーティションとその切り方」や「マスターブートレコードの解析」を読むと推察がつきます。
ディスクの先頭1セクタ(512Byte)は MBR(マスターブートレコード)となっており、内訳は以下の通り。
重要なのは MBRそのものではなく、最初のパーティションが第2トラック(シリンダー0、ヘッド1)から始まること。つまり、
となること。通常のHDDにおける セクタの最大値は63なので 1トラック=63セクタとなりますが、壊れた SDメモリカードはセクタの最大値が 32 と定められており、1トラック=32セクタ。
つまり、GRUB for DOS のバカが セクタ33〜62 の領域に何か書いた可能性が高そうです。案の定 512×62を16進数にした7C00で検索してみると解説っぽい文書が出てきます。なにが Magic だ馬鹿野郎。
USB メモリ(Z:とする)に対して MBR の書き換え(-m)とパーティションのアクティブ化(-a)を行い、 ブートローダ本体(ldlinux.sys)を /boot に書き込みます。
syslinux -ma -d /boot Z:
ldlinux.sys の書き込み先は任意に選べますが、どのみち syslinux.cfg の置き場所が ルートディレクトリ、/boot/syslinux、/syslinux のいずれかになるので、ルートか /boot/ あたりが無難です。
弄るのはMBRだけなので フォーマットは基本的に不要(=データが消えない)ですが、 念のためバックアップを取ることをお勧めします。事実、起動中にmiceroSDが死んだので(涙)。
メモリカードに syslinux を入れるときは、PCMCIA またはUSBのメモリカードリーダ に入れてsyslinux コマンドを実行する必要があります。ノートPCにあるSDスロットでは、syslinux 自体が起動しません。
SDスロットに入れると SDメモリカードの MBR にアクセスできないためだと推測されます。
syslinux の起動方法は3種類。
このうち 2. および 3. に挙げた方式の正否は、USBメモリのパーティション構成がハードディスク互換(HDDモード)か、リムーバブルディスク互換(FDDモード)かによって変わりますし、更にPCからFDD/HDDどちらのモードと認識されるかによっても変わります。
一番確実なのは、Win98SE の DOS モードで起動して fdisk, format /s することです。
私の持っている ECS の AMD690GM-M2 は「USB機器から起動すると起動時に繋げているUSB機器にアクセスできる」というグレイトな機能がありましたので、複数のUSB機器を繋いでDOS起動→fdisk, format /s が可能でした。
そのほかの方法についてはもうサッパリ(参考:日本HP、USBブート推進協議会)。
メディア
フォーマット方法
PCでの認識(HDD/FDD)
イメージファイル指定での起動
GRUBを使った起動
(CF)
PCMCIAに繋いで Win98SEでフォーマット, sys → syslinux
HDD認識
起動成功、メモリ本体が C: に見える
起動成功
(SD)
PCMCIAに繋いで Win98SEでフォーマット, sys → syslinux
HDD認識
起動成功、メモリ本体にアクセスできず、Partition Magic で #105エラー
起動成功。#105エラーは変わらず
CF の Win98DOSで起動し、fdisk, format /s → syslinux
HDD認識
起動成功。メモリ本体は未確認
起動成功。Parition Magic エラー無し
(USB)
HPフォーマット → syslinux
HDD認識
−
起動成功
HPフォーマット → XPでクイックフォーマット → syslinux
FDD認識?
起動成功。メモリ本体は見えず。
copyで転送 したが、GRUB起動時に menu.lst の読み込みに失敗
HPフォーマット → XPでクイックフォーマット → Win98でsys → syslinux
HDD認識
起動成功。メモリ本体にアクセスできず、 Partition Magic で #108エラー
起動成功。#108エラーは変わらず
CF の Win98DOSで起動し、fdisk, format /s → syslinux
HDD認識
起動成功。メモリ本体は未確認
起動成功。Parition Magic エラー無し
(SDHC)
SDフォーマット → USB に繋いで copy で転送 → syslinux
HDD認識
起動成功。メモリ本体にアクセスできず、Partition Magic では #108エラー
DOS起動時に "Type the name of the Command Interpreter" (*1)
SDフォーマット → USBに繋いでXPでクイック/通常フォーマット → syslinux
FDD認識
syslinux 起動せず
−
デジカメでフォーマット → USBに繋いで syslinux
HDD認識
起動成功。メモリ本体にアクセスできず、Partition Magic では #108エラー
−
デジカメでフォーマット → USBに繋いでXPで通常フォーマット → syslinux
FDD認識
syslinux 起動せず
−
USBに繋いでHPフォーマット → XPでクイック/通常フォーマット copyで転送 → syslinux
FDD認識
起動成功。メモリ本体が B: となり、HDDとしては認識されない
GRUB起動時に menu.lst の読み込みに失敗
CF の Win98DOSで起動し、fdisk, format /s → syslinux
HDD認識
起動成功。メモリ本体は未確認
起動成功。Parition Magic エラー無し
(*1) 逆に言えば、syslinux→GRUB→io.sys 読み込みまでは成功しています。
パーティションエラーのせいで command.com の読取に失敗したと仮定すれば、Win98 の sysコマンドを使わずにシステムファイル(io.sys, msdos.sys, command.com)をコピーしても問題は無かった可能性があります。
つまり Windows98 DOS の動く環境が無くても Linux でパーティション切りなおし → フォーマット → システムファイルを普通にコピー → syslinux実行 で動くかもしれません。もしかしたら ms-sys 辺りが必要になるかもしれませんが。
例えばBG-Rescue Linux なら、syslinux.cfg の中身はこんな感じで、 loadlin、lilo、grub などの起動ツールと基本的に同じです。
LABEL bglinux KERNEL /boot/syslinux/BGRescue/vmlinuz APPEND initrd=/boot/syslinux/BGRescue/initrd.img root=/dev/ram0
モノによっては結構複雑だったりしますが、isoイメージファイルの中に isolinux.cfg というファイルがあれば参考に出来ます。
LABEL ping KERNEL /boot/syslinux/PING/kernel APPEND vga=normal devfs=nomount pxe ramdisk_size=55000 load_ramdisk=1 init=/linuxrc prompt_ramdisk=0 initrd=/boot/syslinux/PING/initrd.gz root=/dev/ram0 rw noapic nolapic lba combined_mode=libata ide0=noprobe nomce pci=nomsi irqpoll quiet
注意:PCによってはどうやっても起動できず、Loading boot sector で停止することがあります。
DOSにはカーネルが無いため、(1)の方法は使えません。
この場合は memdisk というプログラムでディスクイメージをロードするよう
syslinux.cfg に書いてやればOK。memdisk は syslinux を解凍すると memdisk ディレクトリの下にあります。
また、UNetbootinを使うと簡単に導入できます。
LABEL dosfd KERNEL /boot/syslinux/memdisk APPEND initrd=/boot/FDIMAGE/WIN98SEU.IMG
起動条件は、(恐らく)HDD認識またはFDDモードFDD認識であること。メモリ本体は前者で C:、後者で B: になります。
参考:memdisk
DOSにはカーネルが無いため、(1)の方法は使えません。
この場合は syslinux から GRUB for DOS を読んで、GRUB から起動します。
しかしSDメモリのパーティション破損が3回、いずれもこの方式での起動中にありました。
破損したのはSDまたはmicroSDメモリカード、1枚は時々 syslinux が起動せず、1枚は突然壊れました。とりあえず GRUB for DOS は出入り禁止とします。
/boot/syslinux/syslinux.cfg の内容: LABEL dosgrub KERNEL /boot/grub/grub.exe
/boot/grub/menu.lst の内容: title MS-DOS find --set-root /io.sys chainloader /io.sys
起動条件というか方法は、Win98 でフォーマットし sysコマンドで転送していること。
または HP のツールでフォーマットしていること。
その他の方法についてはさっぱり分かりません。FDDモードと認識されるとGRUB の起動に失敗し、通常の方法で システムファイル(io.sys、msdos.sys、command.com)をコピーしてもうまく行かないようです。
制限事項は以下の通り。
参考……とするには不確定情報の扱いが拙いものの、まあ実験乙:Palm84 某所の日記 2007-03-04 GRUB for DOS めも
Before...
削除Angelika Speck [削除http://payday-loans.georgetown-kentucky.com/i-need-a-loa..]
削除Leigh Deese [削除http://payday.moremarrowdonors.org/no-payday-loan.html n..]
削除Rena Melton [削除http://cialis.spaysandiego.com/what-is-the-best-way-to-t..]