無用の用無 失敗の記録帳、こうすりゃよかったのね。

webは失敗回避の知恵でいっぱい。他人には無用の用ですら無い自己中心的な備忘録です。口頭だけでまだ無形な話もあります。

フロッピーの代わりにUSBメモリーやSDカードメモリーが使えるHcx2001(ゲーマーが引っ張る)

2012年05月27日 | Weblog
フロッピードライブを使う機会がほとんどなくなっている.そもそもフロッピーメディアが作られていない.一時は同等品を自分で作ることも考えたがフランスで既にやられていた.プロジェクト名はHxC2001フランス語のページで面食らうが.目的のリンク先はリストの最初だ.ただし英語で意味はHxC floppy エミュレータだ.元々はゲーム機にフロッピーをつけるプロジェクトだったらしいが,フロッピーの生産が停止したのでこちらの方も始めたようす.とにかくこんなことはゲーマーが熱心だし,デジタル機器は手順を間違えなければ誰が作っても動くから真似をするのが楽だ.と思っていたら日本のゲーマーはすでにこれを入手してPC-98で使えるアダプターまで自作していた.何とそのアダプターは日本の伝統工芸品,西陣織を支えたという.あっぱれ.のめり込んでとがっているゲーマーは必要にかられて無用と思われるものを作り出す.それがひょんな事で社会に役に立つ事がある.後を追いかける大勢は大抵はバカだが.まあ彼らが生きていけるだけの余裕のある社会でありたい.
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

フラッシュメモリーを長寿命にするためのfdiskの使い方 geometryには何がよいか色々調べた

2012年05月24日 | Weblog
追記の追記の追記
以下の記述はSLC,MLC,M=2の場合。TLC,8LCでは3層、多層の構造になるのでerase block sizeの計算が違ってくる。さてどうすればいいのか分からない?
追記の追記の追記のおわり
追記の追記
ここによると
linuxでSDカードのパーテション切り、フォーマット、アライメントを行う手順は
SDカードをアダプターを介してさして認識させる
そこで繋がれているSDをみつける(間違えるとやばいので十分確認する)
 df -h
以下のように表示されている(一例)
/dev/sdx /media/xxxx/IDyyyy/mmcblk0
それらしきものをみつけたらマウント解除
 umount /media/IDyyyy/mmcblk0 (tab補完を使う)
つぎにfdiskをかけてジオメトリーを変更するが、権限がないのでsuper userで行う。head sector数は255,63からあまり違わないものを選んで設定
su (then press enter, this enables super user mode, or admin)
fdisk -H 224 -S 56 /dev/sdx
 224=32x7, 56=8x7と(2の累乗)x7にとってある例
つぎにfdiskでパーティション境界を決まった位置に設定するためのコマンド
p (現在値を表示Print)
d (既存のパーティションを削除Delete、どのパーティションか聞かれるので1を、アライメントのためには最初から切り直す)
n (新しい New パーティションの作成, 基本Primalyパーティションをつくるのでpを選ぶ).
x (エキスパートモードにするeXpert)
b (データ領域の最初のパーティション1を選びセクター1から始める)
r (もとのモードに戻るreturn)
t (パーティションタイプをFAT32にするため,cを選ぶ)
x (またエキスパートモードにする)
b (データ領域をパーティション1の256セクター=1Mibからに設定する)
r (もとのモードにもどる)
w (変更をディスクに書き込む) 中止はquit

さらにデータ領域の開始をerase blockの整数倍にアライメントするには
mkfs.vfat -F 32 -s 32 -v /dev/mmcblk0p1 (パーティション1が対象)
表示される結果をみて FAT sizeを確認して
FAT size x FAT数(2が既定値) x 512(セクターサイズ) / erase block size =" erase block 数 小数部を繰り上げて整数にする。
(上のerase block 数が奇数なら+1、として偶数にする) x erase block" size=" データ領域の開始をアライメント境界に合わせるバイト数
FAT領域の最終値とのずれを予約領域としてとる。バイト数なので次のように予約領域セクター数Rにする 
( 境界に合わせるバイト数ーFAT領域の最終値)/512 = 予約領域sector数(R)
mkfs.vfat -F 32 -s 32 -R 256(一例) -v /dev/mmcblk0p1 (Rの値は上の式から計算したものにする)
WEBで見かけたものは
a SanDisk "Ultra" 64GB SDxC Class 10 "UHS-1"でR=50
追記の追記おわり
追記
easeusを使うのが一番楽かも(使いこなせてないので不明)
Partitioned to FAT32 using Easeus
追記終わり

ここからがもとの記述
webで調べると消去サイズ(erase block size)より小さい書き込みブロックサイズで書き込むと書き込み倍率=消去サイズ÷書き込みサイズの回数だけ既に書き込まれている領域に消去のための書き込みが追加して行われるので書き込み回数で表現されている寿命は実質短くなるということだ。さらに初めて書き込む場合にはこの事前の消去が不要なので書き込み速度は一番速いが、既存の書き込みデータを保存するために一度別の領域に書き込んでから新しいデータを追加して書き込むということが行われるので書き込み速度が低下する.フラッシュメモリの寿命をできるだけ保ちながら使うためには書き込み倍率をできるだけ小さくしてやればよい。そののgeometryがいくつかある。しかし消去ブロックサイズは公表されていないのでwebで最適といわれる書き込みブロックサイズは色々違っている。古い情報ではイレーズブロックサイズは128kなので、そうしたときの書き込みブロックサイズを決めるgeometryつまりhead sector (cylinder)数は以下のようになる。
Header Sector WEB
イレーズブロックサイズを128Kとして
 -S 56 -H 224 (128K) TEDさん
-S 4 -H 16 flash memoryにダメージ
-S 64 -H 32 disklessfun
-S 32 -H 32 DSL
-S 62 -H 248 もどこかでみた

イレーズブロックサイズ(erase block size)とは、何かと調べると
flash memory ではビット毎に書き込むのではなくそれを集めたブロック単位で書き込むために、そこに既に書き込まれている情報は一旦は消去する必要がある。その消去のサイズは技術進歩により一定の値に止まっていない。ブロックサイズは一括して書き込むための単位でこれが消去サイズより小さいと、1ブロックを書き込む毎に 書き込み倍率=(消去サイズ)÷(書き込みブロックサイズ)回だけ書き込みが行われるのでフラッシュメモリーの寿命が短くなる。この対策が上のようなwhite or black listがある理由である。しかしflash memory毎のerase sizeは公開されてはいない。

HDDに書き込む時、バイト単位で書き込むと効率がわるいので512バイトを1セクターにまとめて一度に書き込む。これは書き込まれる側のHDDでアクセス時間がかかるので書き込む側のOSが対応してきた処理だ。
最近になりHDDの書き込み密度が高くなり、一度に書き込むセクターのバイト数を4Kに拡大したのがAFTだ。OSが今まで通り1セクタが512バイトでは効率が悪いのでwindows7からはAFTを効率よく使うことができるようになった。したがってNTFSで使うならM$まかせでよい。(フラッシュメモリーではNTFSをつかうメリットはない。データ圧縮ぐらいだがフラッシュコントローラが行ってくれているはず)
SSDではコントローラが入っているので意識しなくてもよいが、USBメモリやSDカードなどをFAT32で長寿命で使うためにはMBR、BPBやFATとRDEが固定されたサイズなのでこれの終わりをerase block sizeの整数倍にする。これらの領域のあとのユーザーが書き込むデータの実体部分はerase block sizeの境界をまたがないように設定できる。FAT32ならファイル構造がすべて公開されているので、mkfs.vfatをつかってerase block sizeと境界とを合わせることができる。

formatのパラメータは FAT32 なら F 32 (、 FAT16 なら F 16)

いつもお世話になるまりもさんのところにあるCHS変更プログラムを使えばerase sizeさえ分かればwindowsが一律で決めるよりは寿命を長くすることができるだろう。

linuxのfdiskのexpert modeでH Sの変更
寿命を長くするlinuxのファイルシステムについて勉強しておこう
またファイルシステムのブロックサイズが4kBならusb memoryのread-modify-writeのerase block sizeにアライメントをとるようにfdiskで切り直すと書き込み速度が向上する.

erase block sizeがわからないときblock sizeはどの値が最適か?調べるには書き込みスピードの変化を見ればよいだろう。block sizeがerase sizeより小さくなると遅くなるはずだ。そして書き込み倍率も最小値より大きくなるので、寿命が早まることになる。block sizeを大きくするとファイルの末尾に平均でblock sizeの半分の未使用分がでるので、つかえる容量が減ってしまうペナルティが生じる。
 
fdiskのパラメータでさらに大きな消去ブロックサイズもある。最近の最近の大容量のSDにはerase block sizeが4Mibもあるらしい
容量が4G以下のSDなら書き込みブロックサイズには以下のものが選べるだろう
Cylinder size(シリンダーサイズ)x sector size(セクタサイズ 512)x倍率
2048k (512 x 4k)
-S 32 -H 128
1024k (256x4k)
-S 16 -H 128
-S 32 -H 64
512k (128x4k)
-S 8 -H 128
-S 16 -H 64
-S 32 -H 32
256k (64x4k)
-S 4 -H 128
-S 8 -H 64
-S 16 -H 32
-S 32 -H 16
古いSDは以下のパラメータ
128k (32x4k)
-S 2 -H 128
-S 4 -H 64
-S 8 -H 32
-S 16 -H 16
-S 32 -H 8



コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

windowsXPの漢字コードはCP932

2012年05月17日 | Weblog
字化けではまった
日本語 Windows ユーザーの多くは、Xp の漢字コードを Shift-JIS だと信じている
まさにこれ正解はCP932だ.
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

3.11以降の地殻変動分布を見て次の震源を予想する

2012年05月13日 | Weblog
国土地理院の発表する3.11以前と以後のGPSによる観測で得られた本震による移動量は最大が牡鹿半島であった.自然界では結果と原因が分からない時がある.牡鹿半島の先にプレートのすべりの固着部(アスペリティ)があったのかあったから半島になったともいえる.もし逆なら今度の関東東海地方の地震の震源になるアスペりティは銚子の沖合い,伊豆半島の沖合い御前崎の沖合い志磨半島の沖合いなど太平洋に突き出た地形の所かもしれない.
 リアス式海岸は地殻が固くてプレートとともに引き込まれるときにボロボロと崩れる陸地で,他の部分は卵や貝の殻を割るときのように扇型に割れる陸地であるのかもしれない.すると志磨半島の陸地の固さが三陸海岸ににている事になる.
 福島の浜通り,中通り,会津盆地は太平洋側から押された褶曲地形で,おなじように伊良湖崎,伊勢湾,琵琶湖,若狭湾は太平洋側から押された褶曲地形の間の凹みと見えてくる.こんな荒っぽい予想でもM9レベルの地震の震源はあたっているのかもしれない.
 2000年以前からの地殻変動の大きさで判断すると福島原発の次に地震に遭いそうな原発は玄海のようだ.
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

HDDのトラブル発生時に頼りにするサイト

2012年05月09日 | Weblog
windows7で起動できないトラブルで助けに呼ばれるとドキドキする.windows98SEやwindows2000なら落ち着いていられる.極まれにしか起きないので経験の無さが原因だ.その時頼りにするサイトを探してみた.

いたや氏のサイト
http://itaya.corso-b.net/index.html
とあるVIPの自作PCwiki
http://www19.atwiki.jp/vippc2/
まりも氏のページ(FDSK HDD partition alignment)
usb memoryをformatすると寿命が短くなることを聞いたのでこれでもどす
http://hp.vector.co.jp/authors/VA012947/
testdisk非公式ヘルプ
http://uiuicy.cs.land.to/testdisk/tdisk01.html
現実的な Linux のバックアップ方法
http://japan.internet.com/linuxtoday/20071109/4.html
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする