[HOME]  [リストへもどる]
一括表示

  microSD FAT書き換え - 文太 08/10/16-17:15 No.3325
  ┗ Re: microSD FAT書き換え - としき 08/10/17-14:33 No.3328
   ┗ Re^2: microSD FAT書き換え - 文太 08/10/17-15:40 No.3329
    ┗ Re^3: microSD FAT書き換え - 文太 08/10/17-16:34 No.3330
     ┗ Re^4: microSD FAT書き換え - としき 08/10/17-18:54 No.3331
      ┗ Re^5: microSD FAT書き換え - 文太 08/10/18-01:02 No.3333
       ┗ Re^6: microSD FAT書き換え - 文太 08/10/18-23:17 No.3336

(3325) 3325microSD FAT書き換え  投稿者:文太   2008/10/16(木) 17:15
   コメント数 1

としきさん、どうもどうもです。m(__)m

 とりあえず新規スレッドとしてみました。すぐ降参する可能性もあるのだけど。

> 適切なツールさえ入手できれば、それほど難しくはありません。
 とはいえ…。さてさて。

 いや、まず、モバのDos環境構築手順というのから考え直さなくちゃいけな
いからです。僕はDos化をA:ドライブ=SDね、で行っていたので、そこに
NECO 入れてもしょうがないわけで、Windows 行くしかないか、と思ったり…。
 とにかく、Aドライブ=SD以外の場所でDos化させました。ここまで、で
す。

 いちおう以下にさらっとレスさせていただきますね。

> 5段階で表すと作業性自体は簡単な方から2番目くらいだと思っています。
 難易度、5段階で下から2番目ね。 上のとおり、Windowsでやれないとその前
があったりするのだけど。

> 書き換え可能な範囲ですが、生DOSで使える最大のクラスタサイズは32KBです。
> 512MBのドライブでは、クラスタサイズは8KB〜32KBの範囲が現実的です。

 了解。せめて8KBを目指します。561MBもあるといっても、先日書いた
とおり、46バイトのファイルが4600バイトくらい消費してたのじゃ、あん
まりだ。辞書ファイル(100メガぐらい)を入れればお得感は確かにあろうが
…。
 とはいえ、あの700個のファイルを、たとえば、整理する気はないの?>自分。
あ、あります。す、すいません。m(__)m

> ということで、以下、方法の『概要』を紹介。
 宜しくお願いいたします。

> 必要なツールとして、ディスクエディタというものがあればこれ1つで行けます。
> DOSで動くフリーウェアとしてはNECOが有名ですね。多分、モバ上でも動くで
> しょう。
 ただ今、neco.docを解析中。

 なんだけど、先に進む前に、いちおうプログラムの確認。えーと、プランとし
てはモバでDドライブ(ラム・ドライブです) でDos化して、そこから neco
を立ち上げ、Aを対象に FAT の書き換えをしようと思っています。 書き換えに
成功したらAのデータは全部なくなりますよね。新たにフォーマットしたりカー
ドの初期化(モバでの言い方)をしたのと同じく。そして、このカードをXPで
chkdsk する。よきにはからってもらったら、データを入れる。
 こんな手順になりますよね。
 (ただ今自分がタヌキになっている自覚はあります。そんなに簡単じゃないよ、
と。ま、駄目もとな話ですから。)

> 書き換えるのは、全部で約4ヵ所くらい。
> まず、IPLというのかな、一番先頭の0セクタめ、ここを2ヵ所。
> 多分、2バイトで済むはず。
> また、FAT領域が拡張されるので、これを適切に変更します。これも2ヵ所かな。
> きちんとやるのであれば、個所は2ヵ所といってもバイト数では多量にいじる必
> 要があります。でも、安直にやるのであれば、計8バイトくらい書き換えてから
> 安全のために一旦カードを抜き差しし、その後でchkdskをかければchkdskの方で
> よきにはからってくれます。ちょっとエラーを吐きますけどね。(★)

 このあたりのNECOでの手順を、手取り足取り的にお教えいただけますでしょう
か。いちおう、NECOの操作法については自宅学習しておりますので。今、起動は
しました。これから、念のため(役に立たないはずだが、復活フォーマット系ツ
ールを入手に走ります)。

> なお、オプションとして、IPLをもう1ヵ所書き換えてもいいかもしれないけ
> ど、詳細は省略。実際に手を出す場合には御質問ください。

 はい、すぐ手を出してみたいのですが。宜しくお願いします。


(★)の箇所は、以下のようにXPのUSB接続カード・リーダーでやれることを
確認した。

c:\>chkdsk f:
ファイル システムの種類は FAT です。
ボリューム シリアル番号は 48F5-7046 です
ファイルとフォルダを検査しています...
ファイル システムのチェックが終了しました。問題は見つかりませんでした。

  507,019,264 バイト : 全ディスク領域
        8,192 バイト : 1 個の隠しファイル
      778,240 バイト : 93 個のフォルダ
  191,619,072 バイト : 2,003 個のファイル
  314,613,760 バイト : 使用可能ディスク領域

        8,192 バイト : アロケーション ユニット サイズ	???
       61,892 個     : 全アロケーション ユニット
       38,405 個     : 利用可能アロケーション ユニット


chkdsk /F ですね、使うのは。
  /F              ディスクのエラーを修復します。


 OKです。準備完了!

NECO's Disk EXaminer : NDEX.EXE ver.1.35 (c) 1991,1996 By SEIN
Max 7115 directory entries.
////////////////////////////////////////////////////////////////
         General Infomation Report
////////////////////////////////////////////////////////////////
Drive           :  A          | Volume label    : 
Bytes/Sector    :         512 | Sectors/Cluster :     16
FAT number      :           2 | Sectors/FAT     :    242
Max RootDir     :         512 | Sectors/RootDir :     32
Total Size      :   507019264 ( 61892 Clusters)
Used  Size      :   192405504 ( 23487 Clusters)
Bad Sectors     :           0 (     0 Clusters)
Free  Size      :   314613760 ( 38405 Clusters)
Directories     :          93 | User's files    :       2004
System files    :           0 | LFN Entries     :          9
Start Sector    : 1stFAT = 1 2ndFAT = 243 Root= 485 Data  = 517
////////////////////////////////////////////////////////////////
         File check Report
////////////////////////////////////////////////////////////////
ERROR is not found  :) 
////////////////////////////////////////////////////////////////
         Missing FAT chain Report
////////////////////////////////////////////////////////////////
Missing FAT chain is not found.
////////////////////////////////////////////////////////////////
         Fragment Report
////////////////////////////////////////////////////////////////
Fragment files    :         10 /       2097 (files)
Fragment clusters :         82 /      23487 (clusters)
Fragment ratio    :          0% 
Gap clusters      :         75 (clusters)
Gap ratio         :          0% 
NECO.EXEに戻ります。
何かキーを押して下さい


      - No.3325 -    このTreeへ           [リストへもどる] pre

(3325) 3328Re: microSD FAT書き換え  投稿者:としき   2008/10/17(金) 14:33
参照先:http://www.hinocatv.ne.jp/~toshiki/
    3325 番 文太 さんへのコメント    コメント数 1

え〜と。
率直に言って、文太さんがどういう事をやりたいのかがよくわかっていません。
例によって、今日は宿直明けで読解力が落ちているだけかもしれませんが。

> > 書き換え可能な範囲ですが、生DOSで使える最大のクラスタサイズは32KBです。
> > 512MBのドライブでは、クラスタサイズは8KB〜32KBの範囲が現実的です。
>  了解。せめて8KBを目指します。561MBもあるといっても、先日書いた

ということで、8KBクラスタを目指すのかなと思ったのですが、

> c:\>chkdsk f:
(略)
>         8,192 バイト : アロケーション ユニット サイズ	???

あるいは

> NECO's Disk EXaminer : NDEX.EXE ver.1.35 (c) 1991,1996 By SEIN
(略)
> Bytes/Sector    :         512 | Sectors/Cluster :     16

既に8KBクラスタになっているので、これ以上、何をどうするのやら。それと
も、32KBクラスタにして、空き容量増加を目標としているのでしょうか。

もう一つ、

> とおり、46バイトのファイルが4600バイトくらい消費してたのじゃ、あん

私が単に読み落としただけなのかもしれませんが、これがどこにかいてあるのか
もわかりませんでした。

>  なんだけど、先に進む前に、いちおうプログラムの確認。えーと、プランとし
> てはモバでDドライブ(ラム・ドライブです) でDos化して、そこから neco
> を立ち上げ、Aを対象に FAT の書き換えをしようと思っています。 書き換えに
> 成功したらAのデータは全部なくなりますよね。新たにフォーマットしたりカー
> ドの初期化(モバでの言い方)をしたのと同じく。そして、このカードをXPで
> chkdsk する。よきにはからってもらったら、データを入れる。
>  こんな手順になりますよね。

御理解の通りです。

> > なお、オプションとして、IPLをもう1ヵ所書き換えてもいいかもしれないけ
> > ど、詳細は省略。実際に手を出す場合には御質問ください。
>  はい、すぐ手を出してみたいのですが。宜しくお願いします。

実はですねぇ、こちらの方はクラスタサイズ変更とは独立して変更する事が可能。
うまく設定できれば、ほんの僅か、たぶん数十KBですが、確実に総容量の増加
に寄与させる事ができるのです。ちょっと計算が面倒なんですが。でも、NDEXの
結果もつけていただいた事ですし、あとで私の方で計算してみましょう。
なので、こちらの方は、きちんと解説します。が、別途。これから仮眠に入って、
頭がすっきりすれば今夜中、ちょっと無理なら明日以降。

      - No.3328 -    このTreeへ    コメント元:3325 へ [リストへもどる] pre

(3325) 3329Re^2: microSD FAT書き換え  投稿者:文太   2008/10/17(金) 15:40
    3328 番 としき さんへのコメント    コメント数 1

としきさん、どうもどうもです。

> 率直に言って、文太さんがどういう事をやりたいのかがよくわかっていません。
> 例によって、今日は宿直明けで読解力が落ちているだけかもしれませんが。

 お気持ち分かります。でも読解力のせいではありません。レポートが矛盾して
いるからです。
 やりたいことは、  もちろん現在16KBクラスタになっている(と思しい)
microSD を8KBクラスタに変更することです。
 ただ、「現在16KBクラスタ」が怪しいのです。怪しくないと僕は思うのだ
けど。しかし、レポートにより、「怪しい」「わからん」ととしきさんが仰る気
持ちは分かります。

> >  了解。せめて8KBを目指します。561MBもあるといっても、先日書いた
> ということで、8KBクラスタを目指すのかなと思ったのですが、

 そうです。8KBを目指したい。

> > c:\>chkdsk f:
> >         8,192 バイト : アロケーション ユニット サイズ	???
> 既に8KBクラスタになっているので、これ以上、何をどうするのやら。

 これ、XPの chkdsk の結果なのです。「???」を付けたのは「はて?」と
思った僕です、もちろん。USB 接続のカードリーダ接続時。でも現実と違うと思
う。もっとも、モバには chekdsk はないし、SEIN さん作の NECO シリーズ付属
の chkdsk 互換品である NDEX は、chkdsk /F な機能をもっていないので、どっ
か他で chkdsk /F をやれる環境を探さなくてはいけないのかな…。(先走ってる、
分かりづらい。すいません)


 ま、とにかく、モバで「df.exe」した結果、「ndex」した結果が以下です。D
ドライブはラムドライブ、Aが microSD の入ってるドライブです。 16KBク
ラスタになってしまっているでしょう? こっちが本当だろうと思っているわけ
です。
 一番正確にクラスタサイズを表示させられる道具って何でしょうか?

------------ D drive = RAM -----------------------------------
Drive           :  D          | Volume label    : MS-RAMDR.IVE
Bytes/Sector    :         512 | Sectors/Cluster :      4
FAT number      :           1 | Sectors/FAT     :     10
Max RootDir     :          64 | Sectors/RootDir :      4

(dfの結果)
1クラスタのセクタ数 : 4 
1セクタのバイト数   : 512 
--------------------------------------------------------------

------------ A drive = microSD -------------------------------
Drive           :  A          | Volume label    : 
Bytes/Sector    :         512 | Sectors/Cluster :     16
FAT number      :           2 | Sectors/FAT     :    242
Max RootDir     :         512 | Sectors/RootDir :     32

(dfの結果)
1クラスタのセクタ数 : 16 
1セクタのバイト数   : 512 
--------------------------------------------------------------


> もう一つ、
> > とおり、46バイトのファイルが4600バイトくらい消費してたのじゃ、あん
> 私が単に読み落としただけなのかもしれませんが、これがどこにかいてあるのか
> もわかりませんでした。

 数字が違うもの、これは分かりませんよね。申し訳ありません。読み込んで=
読み通してというのも、あんまりだ。すいません。
 #3320「Re: クラスタサイズ」の発言を意図していました。

> 84 USR.DEF			#●84バイトのUSR.defなるファイルがある
> 1クラスタのセクタ数 : 16 	#●似たのがゴロゴロいっぱいある。
> 1セクタのバイト数   : 512 
> な環境だと8192(16*512)bytes喰っているってことですよね。
>  (本音)あああぁ、もったいないなぁ。ちくしょう。

 「約100倍も喰っている」、「約99%の無駄が生じている」と言いたかっ
たわけです。だいたい合ってますよね。
 そんなちっちゃなファイルがごろごろしてる環境なら、16KBクラスタから
8KBクラスタにしたいって、いちおう合理的な要望ですよね。

> > > なお、オプションとして、IPLをもう1ヵ所書き換えてもいいかもしれないけ
> 実はですねぇ、こちらの方はクラスタサイズ変更とは独立して変更する事が可能。

 いえ、クラスタサイズを変更したいのです。上のような環境なら実質512M
Bが2倍の量として使えることになりますので。数百の増加は、ま、いいです。

 ま、もっとも要らないものを整理するのが現実的という気も大いにしてますけ
れど。


      - No.3329 -    このTreeへ    コメント元:3328 へ [リストへもどる] pre

(3325) 3330Re^3: microSD FAT書き換え  投稿者:文太   2008/10/17(金) 16:34
    3329 番 文太 さんへのコメント    コメント数 1

 失礼いたしました。

>  やりたいことは、  もちろん現在16KBクラスタになっている(と思しい)
> microSD を8KBクラスタに変更することです。

 XPの chekdsk も NDEX も df も間違っておりませんでした。512*16=8182。
すでに8KBクラスタになっておりました。きゃっ! m(__)m
 なので、84バイトのファイルが 8098 バイトの無駄を出すのは仕方がないの
だ、と諦めます。撤退。m(__)m

      - No.3330 -    このTreeへ    コメント元:3329 へ [リストへもどる] pre

(3325) 3331Re^4: microSD FAT書き換え  投稿者:としき   2008/10/17(金) 18:54
参照先:http://www.hinocatv.ne.jp/~toshiki/
    3330 番 文太 さんへのコメント    コメント数 1

あと1〜2時間は寝るつもりだったのが、電話のベルの音に叩き起こされてしま
いました。親戚からのものだったので、怒るわけにもいかん。

> だ、と諦めます。撤退。m(__)m

了解しました。
一応、#3323で私が書いたことですが、

> ただ、#3299で文太さんが書かれているカードのうち、64MB以下のものに関しては
> クラスタサイズ縮小の余地があります。

もし、小容量のカードでチャレンジする気になったらまた言って下さい。
なお、#3328に書いた、ちょっとだけ増えるかもしれないといった容量ですけど、
今回の512MBのカードの場合、運が良くても16KB(2クラスタ)分、運が悪ければ
8KBしか増えないという事がわかりましたので、あえて手を出す事も無いと思いま
す。

      - No.3331 -    このTreeへ    コメント元:3330 へ [リストへもどる] pre

(3325) 3333Re^5: microSD FAT書き換え  投稿者:文太   2008/10/18(土) 01:02
    3331 番 としき さんへのコメント    コメント数 1

としきさん

 ま、どうでもいい話ですけれど。
 けっこう本気でのけぞったので。ほんとに。
 自分の無知にも驚いた、うーん、別にこれには驚いてないな…、ほんとは。
毎度のことなので。
 相変わらず俺の人生は発見に満ちているなぁ!(興奮のビックリマーク、かな?)


> ただ、#3299で文太さんが書かれているカードのうち、64MB以下のものに関しては
> クラスタサイズ縮小の余地があります。

 後日検討します。その価値があるのかもしれないので。


> ◆20MB ATA flash card (no brand)※最も古く、愛着もある。高かった。
> 1クラスタのセクタ数 : 2			★素直な倹約家
> 1セクタのバイト数   : 512			★uf2がよろしい
> 
> ◆32MB CF HagiwaraSysCom	※何かのおまけ。遅い! すごく遅い。
> 1クラスタのセクタ数 : 2			★きっちりやってる。
> 1セクタのバイト数   : 512			★uf2。でも遅いから…。
> 
> ◆64MB CF SanDisk		※普通に使うなら君か
> 1クラスタのセクタ数 : 4			★元々富豪なわけで
> 1セクタのバイト数   : 512			★uf4がよろしいようで

 すいません、再掲です。意味が分かった。NTFSだっけ、XPのファイル管
理システムだと、例の84バイトの usr.def  が(何者だかいまだ知れず)、4
KBなのよ。これが512MBなCFあるいはSDにいくと8KBになってしま
うわけなのね。最初のミスに気づかなかったら、16KB!!(当時32KBと
言っていた)

 はい、先ほど、FDも偶然調べました。512バイトです。セクタ1つぶん。
最小単位。遅いわけだ。ふう。ぎゅうぎゅうに入ってるファイルを全部消そうと
したら(テキストファイルでいくつ?  500個くらい?)、format したほう
が速かった!

 512MBのメモリって、FD512枚ぶんだとイメージしてた。もちろん、
100MBのリーダーズの辞書を5つ入れれば、それに近い数字を出せるのだろ
うけど、おい、そんなのモバで使うくらいなら、電子辞書にしろ、ずっと速いぞ、
となる。

 上の「20MB ATA flash card」が「使い勝手いいねぇ」と長年思わせてくれて、
「64MB  CF SanDisk」に、「お前ほんとに大きいのかよ」と感じさせられてた理
由が、体感できて、そして納得がいきました。「32MB CF HagiwaraSysCom」が遅
いのも仕方ないか、とも。

 うーん、勉強になりましたよ。まったく、ほんとに。
 vzdef マクロ群の平均サイズを awk で出してやって(*.doc  もある)、「あ
はははは、整理せい! どうでもいいのは結合せい!」とやるのは明日以降。
 きっとやらねーぞ、こいつ、計算だけして。

 99%が無駄になるのをほっておいたら、どうしようもないよねぇ。辞書入れ
る? また言ってる?! お世話になりました。またご面倒をおかけしました。

 あきろさんと konno さんにも、感謝の一言。いやあ、ハッケン。参りました。


 追伸:もちろん、 (やっぱりほんとに microSD はアクセスが速いので)追加
で3つ注文してしまった。ちいちゃくて使わないものはアーカイブして結合して
しまう予定なので(嘘だ!)、512を4つで、一生まかなえます。m(_B_)m



      - No.3333 -    このTreeへ    コメント元:3331 へ [リストへもどる] pre

(3325) 3336Re^6: microSD FAT書き換え  投稿者:文太   2008/10/18(土) 23:17
    3333 番 文太 さんへのコメント

>  vzdef マクロ群の平均サイズを awk で出してやって(*.doc  もある)
 の件。

 別にうんざりする結果を求めなくてもよいのに…。


Dir |Lsed "s/,//g;/DIR/d" |Jgawk "NF==6{print}" $
|Jgawk "{t+=$5}; END{printf(\"%%-.3f%%\",t/NR/8192*100)}"

(1) Dir リスト(cmd.exe@XP)
(2) sizeの「,」を取り、<DIR>行削除
(3) フィールドが6個ないもの(dirコマンドのヘッダ、フッタなど)削除
(4) size ($5)の合計を出して、NR (number of records = ファイルの数)で割り、
  クラスタサイズ(ここでは8192)で割って、パーセント表示のため100倍。
  書式制御は、「左詰め小数点以下3桁まで」指定(%は環境変数など色々ある)。

C:\DEF>Dir |Lsed "s/,//g;/DIR/d" |Jgawk "NF==6{print}"$
|Jgawk "{t+=$5}; END{printf(\"%%-.3f%%\",t/NR/8192*100)}"
58.302%

 ああ、8KBクラスタってそれほど悪いものでもないですね、きっと常識的に
考えて。

 もう少し常識的なファイル群環境で。

C:\UTOOL\MAN>Dir |Lsed "s/,//g;/DIR/d" |Jgawk "NF==6{print}"$
|Jgawk "{t+=$5}; END{printf(\"%-.3f%\",t/NR/8192*100)}"
64.280%

 うん、考えていたよりずっといいや。8KBクラスタ万歳って言ってもいいです
ね。512MB=¥500、万歳というか、信じられないよ、って感じ。
 残る課題は、オアポケい負けないフォント環境。うーん、読めればいいじゃん、
っていうの強いのです。

追伸:「Die Hard 4.0」を観ました。Freddieはとしきさん! 好き。


      - No.3336 -    このTreeへ    コメント元:3333 へ [リストへもどる] pre