稲川 史(ふひと) 様
求めているものを教えて頂き深く感謝します。
稲川 様のコードを,rd-vsn-1-lx24.c として
Linux-2.4.19上で,実効しましたところ
# ./rd-vsn-1-lx24 -f /dev/hdb1   <- Fat16:Win98, mounted
# VolumeID: 2ec5-56b8
# ------
# ./rd-vsn-1-lx24 -f /dev/hda5   <- Linux-2.4.19
# NO VolumeID
# ------
# ./rd-vsn-1-lx24 -f /dev/hda7   <- Linux-ext2-fs-data-only
# No Boot Signature!
以上の様な結果が得られました。
ext2fs では,特にVSNを設定しない限り,VSNデータは無い
ことが分かりました。 #これが普通でしょう。
それで,最後の部分に,
>         } else
>                 printf("NO VolumeID\n");
>  <=
>         exit(0);
<=
の部分に,R/W 版をと思い,wt-vsn-1-lx24.cとして
   printf(" ---- Now wt-vsn write your new VSN ----- \n");
   printf("If you do not wish to write new VSN, type ^C ...exit\n");
   printf("VSN format is 8 Hex characters like 1234-ABCD\n");
   printf("Pleade type New-Volume_Serial_Number: \")
の様に追加していましたが。。。
ここではたと,
やっぱり書きこむコードを追加した場合,
デバッグするということは,多分再起動が出来ないことも
起きるのではと思い,中断しました。
デバッグするには,別のパーティションを作成(用意)して
起動できなくて良い,TMPなLinuxをインストールして,
それをデバッグ対象に準備してからで無いと,
相当危険を覚悟しないといけない。
それに,私目にはライトするコード作成は,自信はない。

大体の方針としては,
u_char  boot-w [SECSIZE];
を別途用意して,情報をここに集め,
 fd = open(disk, O_RDONLY);
をRead/Write型でオープンしておく,
または一旦クローズして,O_WRITEONLY(?)で再オープンし,
(本当の記述は,includeファイルを調べますが)
boot-w[512] を書き戻す。
この結果を出すのには,パーションを用意する為の時間が
相当時間がかかるとおもわれますので,時間をください。
---
稲川 史(ふひと) さんの http://www.biwa.ne.jp/~fuhito/
 ~fuhito/rtmach/ (device_read_buffer()って何?)
は私目には分かりませんが,RT-Mach のページをみさせてもらい
私にとって,有用な情報がありました。
重ねて御礼申し上げます。
気になったことは,FreeBSD-3.xがRTOSの世界(RT-Mach)では
使われている(?),話題になっていることです。
(私目の場合FreeBSD-4.4以降です)
--
FM: H.Shiozaki
E-Mail: sios_hs@yahoo.co.jp