SSブログ

特集「失敗しないSCSIハードディスク選び'90」(月刊ASCII 1990年6月号4) [月刊アスキー廃棄(スクラップ)]

特集「失敗しないSCSIハードディスク選び'90」
ASCII1990(06)c01HDD扉_W520.jpg
当時HDDを導入して、ソフトをインストールするまでには結構手間がかかり、相応のスキルも必要だった
ASCII1990(06)c04HDD図解_W520.jpg
図をスクラップする。
ASCII1990(06)c04HDD磁気ディスクモータコントローラ_W511.jpg
ASCII1990(06)c04HDDヘッドは浮いている複数のヘッド_W518.jpg
ASCII1990(06)c04HDDアンプとサーボ_W520.jpg
コラム記事をスクラップする。
シッピングという用語が懐かしい。
Q:ハードディスクの電源をいきなり切ったら上司に怒られました.どうしてでしょう.
A:ハードディスクのヘッドは,回転すあるディスクによって起こる空気の流れでディスクからわずかに浮いています。こそのため、急に電源を切るとディスクの回転が止まり、ヘッドがディスク面にぶつかってしまいます。これがもとになってディスク面に傷が付くと,その位置にあったデータを読み出すことができなくなります。
 このような事故を避けるため,ハードディスクではデータの書き込みに使わない場所が決められていて,電源を切る前にヘッドをその位置に動かしておくことになっています.これを「シッピング」や「リトラクト」などといいます。
 ハードディスクの電源を切る前には,シッピング用のプログラムを起動する,STOPキーを押すなどしてください。ただし電源が切れると自動的にシッピングするハードディスクも一部ありますが,念のためにシッピングの操作は行なったほうがよいでしょう.


SCSI/SASIとは何のことか
 そもそも,SCSIやSASIとはどのような規格なのか,その素性を明らかにしよう.
 SASI,Shugart Associates System Interfaceの略で,アメリカのShugart社が同社のハードディスク用のインターフェイスとして開発したものだ.国内のマシンで使用しているのは,PC-9801シリーズのPC-9801-27インターフェイスボード,X68000,MSXなどである.
 一方のSCSIはSmall Computer System Interfaceの略で,ANSI(米国規格協会)がSASIを基にして規格化したもので,小型コンピュータでの周辺機器のアクセス方法を定めている.ハードディスクのインターフェイスとして有名だが,それ以外にもCD-ROM,光磁気ディスク,プリンタスキャナなどの入出力装置全般に共通して使えるような汎用インターフフェイスとしての規格だ。国内マシンではPC-9801シリーズのPC-9801-55インターフェイスのほか,FMRシリーズ,日立B16シリーズや,X68000の新機種などでSCSIが採用されている.

職場のPC-9801VM4で初めてSASIのHDDを使って、家ではPC-9801VX2でもSASIだった。SCSIを使ったのはPC-486GR3だった。SCSIが役に立ったと思ったのはMOを繋げたことだった。HDDを同時に複数台繋げて使うことはなかった。

懐かしい用語が出てきたのでスクラップする。SCSIドライブのロータリースイッチだ。
 ハードディスクのドライブには1台目用増設用の区別はなく,代わりに0~1の「SCSI ID」をドライブ識別用の番号として,ディスク本体にあるロータリースイッチなどで設定できるようになっている。複数のドライブを接続する場合は,このID番号が重複しないように設定しなければならない.
小さいマイナスの精密ドライバーで設定したように思う。自宅ではMOのとき使った。職場では複数台のHDD,MO,CD-ROMを繋ぎ注意して設定した。
パーティション管理を比較する
 55ボードや27ボードでは,1台のハードディスクをあたかも数台のドライブであるかのように分割して使用することができる。ディスクを分割して管理することを「パーティションに分ける」という.各パーティションにはMS-DOSなどのシステムを置いて,そのシステムからパソコンを起動することができる。また,データのみを置くパーティションも作成できる.
 27ボードでは1ドライブ当たりのパーティションの数が最大8個であったのに対して,55ボードでは16個と多くなっている。いずれの場合も,MS-DOSから同時にアクセスできるパーティションは4つまでだ。また,各パーティションの大きさも,27ボードが40Mbytesまでだったのに対し,55ボードでは128Mbytesまでに拡大された.これらの変更は,最大600Mbytesという大容量のハードディスクに対応するためには欠かせないものだ。

PC-9801VM4ではやらなかったが、SCSIを使ってHDDの容量が大きくなったら分割パーティションは必ずやっていた。
ファイル管理を比較する
 55ボードでは分割できるパーティションの数が増えたことは,前項で延べた通りだが,各パーティションをMS-DOSで使用する場合,パーティションの大きさによって,ファイル管理の効率が変わってくる.
 MS-DOSではパーティション内の全領域をクラスタ」という単位に区切って、個々のファイルへ割り当てている.このクラスタには一連の番号がついていて,「FAT(ファット:File Allocation Table)」という表のようなもので管理している.クラスタにつける番号のことを「FATエントリ」と呼ぶが,これのbit数の多少によって,管理できるクラスタの総数が決まってくる.
 27,55ボードの40Mbytes以下のハードディスクではFATエントリが12bitであったのに対し,55ボードで使用できる40Mbytesを超えるハードディスクでは,FATエントリのbit数が16になる.これにより,管理できるクラスタの総数が4096個から65536個に増える。同じ容量のパーティションなら,分割されるクラスタの数と各クラスタのサイズは反比例する.
 ディスク中ではどんなに小さいファイルでも,最低限クラスタのサイズだけ領域を消費する.このため,小さいファイルが多くあるようなディスクの使い方をしている場合,不用意にクラスタサイズが大きいと,ディスクの利用効率が悪くなる(図3)。
 この効果が特に大きいのは,40Mbytes付近のハードディスクである.27ボードでは原則として16bitFATは使えないので,40Mbytesを1つのパーティションとして確保すると,クラスタのサイズは16Kbytesになってしまう。同じ40Mbytesでも55ボードの場合は16bitFATとなり,クラスタサイズも2Kbytesと激減する.40Mbytesのハードディスクを使う限りでは、55ボードのほうが有利であるわけだ。


ASCII1990(06)c08HDD図3_W520.jpg



表2 パーティションサイズとFATエントリのbit数,クラスタサイズの関係
27ボードの場合
パーティションサイズ
(Mbytes)
FAT
(bit)
クラスタサイズ
(Kbytes)
1~5 12 2
6~15 12 4
16~30 12 8
31~40 12 16

55ボードの場合
パーティションサイズ
(Mbytes)
FAT
(bit)
クラスタサイズ
(Kbytes)
1~5 12 2
6~9 12 4
10~64 16 2
65~128 16 4

パーティションサイズには気を遣った。今とは違って保存するファイルは皆手作業して作ったものだからファイルサイズは小さいものばかりだった。保存できるファイル数を多くするよう気を遣った。

ASCII1990(06)c14HDD図1拡張フォーマット_W345.jpg
当時は図1ほどではないが複数のVersionのOSを入れてブート時に選んでいた。

拡張フォーマットとは何か
 ハードディスクのフォーマット方法には,標準フォーマットと拡張フォーマットがあるが,今後話を進めていく大容量SCSIハードディスクでは拡張フォーマットしか利用できない.以下フォーマットといえば,拡張フォーマットのことを指す.
 拡張フォーマットの特徴は,1つのハードディスクを,見かけ上複数のドライプに分割できることと,それぞれの区画(パーティションという)を別のOSに管理させることが可能になっていることだ。SCSI型HDDを利用する場合,MS-DOSVer.3.1以上,MS OS/2 Ver.1.0以上,N88-BASIC Ver.6.1以上,PC-UX Rel.3.0A以上が、この区画に載るようになっている(図1).逆に言うと,これらのOSは、共通の物理的条件のもとで動作するように設計されている。このためのいわば共通の土俵を作る作業を「物理フォーマットする」という.

物理フォーマットする
 MS-DOS(Ver.3.3以上)をフロッピーから起動し,format/hコマンドでハードディスクのフォーマットコマンドを呼び出す.いくつかメニューが現われるが,このうち「装置の初期化」が,物理フォーマットの指定に当たる.
 ここで我々は「物理セクタ長は256bytesにしますか,512bytesにしますか」という質問に突き当たる。結論から言うと,この長さによって今後の動作に支障をきたすという可能性は,まずない.当編集部で実験した限りでは動作速度の差は表われなかったし,ディレクトリ上に作成可能なファイル数も同じである。
 256bytesセクタを利用する主な理由には,N88-BASICを利用する場合が挙げられる.MS-DOSもMSOS/2も,物理セクタは256/512のどちらでも構わないのだが,N88-BASICは256bytesにしか対応していない.
 一方,512bytesにした場合の利点は,1台のHDDを最大16個に分割できることである(256bytesにした場合には8個までとなる)。ただ,MS-DOSが同時に利用できる区画は4つまでだ。5つ以上に分割した場合,4つを超える部分については一時的に休眠状態にセットすることになり,特別な用途を想定しない限り,5つ以上の分割をすることはあまり意味がないだろう.
 結局たいして気にするほどのことでもない.そもそもHDDによっては256または512どちらかでしか利用できないものもある(もちろんこのような製品はマニュアルにその旨明記されている).

論理フォーマット=領域確保を行なう
 物理フォーマットがすんで,下準備が終了したら、次はいよいよDOSの導入である.これは,「領域確保」のメニューで行なう。確保する容量と,先頭シリンダ番号を聞かれるが,先頭シリンダ番号は自動的に空きエリアの先頭が選ばれるので、普通は直接数値を入力する必要はない。システムの転送については,少なくとも最初のエリアには転送しておかないとハードディスクから起動できなくなるから,「転送する」を選択する.  むしろ問題なのは,ディスクを分割するかどうかするとしたらどのように分割するか,ということである.この点については次項で触れることにして,まずは手順を解説することにする.
 領域の確保が終了したら,HDDは利用可能になっている(一度リセットしないと有効にならないが)。フォーマットメニューを終了する前に,「マップ」メニューで状態を見て(画面1),きちんと確保しまた領域が存在するか,状態がアクティブになっているか,ドライブからの起動が可能になっているかを確かめる.

不良セクタを登録する
 HDDは,製造上の問題で、どうしても磁性体のコーティングにムラが生じてしまうことがあるという。この場合,読み書きに問題の生じるセクタ(不良セクタ,スキップセクタなどという)が発生することになる.これを放置していては危険なので,このセクタを使用不可能として登録したり,こっそり別の余っている部分(多くのHDDでは,不良セクタのための「代替領域」が用意されている)に割り当てたりすることができる。代替領域がないHDDでも、不良セクタとして登録しておけば、以後そこをDOSがアクセスしないようになる.
 MS-DOS Ver.3.3にはHDUTLという付属ソフトがあり,不良セクタの検索/代替作業を行なってくれる(画面2)不良セクタは通常,最初から存在しているものなので、フォーマットが完了したらソフトなどを組み込む前に,不良セクタ処理はぜひ行なっておきたい。HDDメーカーが専用のプログラムを提供していることもある.
 また,HDDは容量が大きいだけに,無節操にファイルを詰め込んでいると,後で自分でもいやになるほどぐちゃぐちゃになってしまう。最初からビジョンを持ってディレクトリを作るようにしたい.


ASCII1990(06)c15HDD画面1-2_W520.jpg
使えるようにするまで手間がかかった。

ハードディスクの分割の勧め
 MS-DOS Ver.3.3Bでは,最大128Mbytesまでの領域を1ドライブとして認識することができる。1つのドライブに何でも入っているのは確かに便利だが,いくつかの理由から,HDDは複数のドライブに適当に分割して利用することをお勧めしたい.
小さなファイルは小さな区画へ
 HDDがクラスタという単位で管理されていることは前章で述べた。従来のSASI型HDDの場合,31Mbytes以上のドライブでクラスタサイズが16Kbytesにもなりかなりの無駄が生じることは類書でも指摘している.
 今回扱うSCSI型HDDでは,64Mbytesまでは2Kbytes,128Mbytesまでが4Kbytesなので、事態はSASIの場合ほど深刻ではない.とはいえ2Kbytes以下の小さいファイルがたくさんできることが分かっているような場合では,HDDサイズを64Mbytes以下にしたほうがいいのは明らかだ.

システムパーティションの考え方
 HDD起動用に小さい領域(1~3Mbytes程度)を用意しておき,そこにはシステム関係のファイルだけを転送する,というHDD管理法がある。ワープロだの表計算だの文書ファイルだのは,別に大きな区画を用意してそちらに格納するのである(図4)。
 このメリットは,システムのバージョンアップに容易に対応できることである.たとえば,先日エプソンからMS-DOS Ver.4.01が発表されたが,現在MS-DOS Ver.3.3が入っているHDDのシステムを入れ替えようとする場合,普通はいったんディスク内容を保存して,システムをフォーマットし直す必要がある(sysコマンドが利用できない)。ところが,システムパーティションを採用している場合では、システムの区画だけを解放し、新しいDOSに領域を与えればすむ.他の,システムと関係のないファイルに手をつけずにすむわけだ.

プログラムとデータは分けて,バックアップ用ドライブを作る
 ワープロと同じディレクトリに文書を入れる人はいないだろうが,同じドライブに入れている人は少なくないだろう.一般にアプリケーション本体はマスターディスクが手元にあるわけだから、もしクラッシュしても再度インストールすればすむ.しかし,自分が書いた文章,描いたグラフィック,作った音楽データ,BBSのダウンロードデータなどは,失われると泣くに泣けない。こうしたものは,別のドライブに分けて管理するのが賢明だ.主な利点として,プログラム用ドライブのFATが壊れても,データドライブのファイルには影響がないことや、HDDをバックアップする際にデータドライブだけを保存すればいいので時間と手間が省けることが挙げられる.

ASCII1990(06)c16HDD図4システムパーティション_W332.jpg
自分で作ったデータを失ったときのショックは大きい。しかし、ネットからダウンロードしたデータならまたダウンすれば良いので手間はかかるが許容範囲だ。

後で泣かないための定期保守
 HDDというのは、クラッシュを経験するまで自分だけは大丈夫と思っているものだ。二度と還らないデータを悔やんで泣く前に,日常の定期保守をきちんと行ないたい.
 バックアップする本当になくなったら困るファイルやプログラムは,フロッピーなどにバックアップをとるべきである.HDDの内容をFDDに落とすためのツールも存在するが,HDD容量が100Mbytesといった大きさになってくると,必要なものだけバックアップするという方針で臨むのが現実的だ。
 まず、上述したように,バックアップが必要なドライブとそうでないドライブを分けてしまうという方法がある.こうすれば,バックアップが必要なドライブ容量は比較的小さくてすむから、1ドライブをフルバックアップするソフトも実用的に使える.
 フルバックアップ用には,オーシャノグラフィII(マイクロデータ)が有名だ。こちらはフロッピー1枚のバックアップ時間が30秒程度と高速であることのほか,デイリーバックアップといって,最後のバックアップ以後に更新されたファイルだけをバックアップする機能もある。
 ただ,フロッピーに何が保存されているのか分からないのはやはり不安である.心理的に安心できるのは,オーソドックスだが圧縮ツールを使ってディレクトリごとにファイルにして保存する方法だ。単純にコピーするよりもフロッピーの枚数が少なくてすむし、新しく作られたファイルだけを追加することも可能だ。圧縮率で定評のあるものとしては,LHarc(Yoshi氏によるフリーウェア)やpkzip(pkware社のシェアウェア)がある.
 このほかMS-DOS SOFTWARE TOOLSには,コピーコマンドを大幅に拡張した「ud」というツールがある。ディレクトリ構造を保存したままファイルを書き出し,フロッピーがいっぱいになれば入れ替え指示が出る。新しく作られたか,更新されたファイルだけをコピーする機能もある.

予防策を講じる
 HDDの事故の中でも「システム管理領域」の事故は深刻である.HDDの場合、ファイルがどういう形でディスク内に格納されているか,といった内容は,「ディレクトリ領域」と「FAT」に集中管理されているので,ここが壊れるとちょうどファイルがみんななくなってしまったような状態になるのである.
 Norton Utilities(ソフトウェアジャパン)には,frというコマンドがあり,FATとディレクトリ領域をディスクの空き領域にコピーすることができる.したがって,autoexec.bat内にこの作業を記述しておけば,frコマンド実行時までのHDD内容が,かなりの確度で復帰できることになる.数十秒でできる作業にしては大きな安心が得られる(図5).
 手塩にかけて育てた辞書が壊れるのも困ったものだ。辞書は頻繁にアクセスされるだけに,事故も比較的起こりやすい。幸いたいていのFPでは,辞書のメンテナンスツールを持っているから,それを利使用してユーザー単語をファイル化しておこうユーザー単語ファイルによる単語入力ができないものでは,辞書そのものを圧縮して保存しておきたい。

それでも運悪く壊れてしまったとき
 HDDのクラッシュといってもさまざまな程度がある.
 まず,ソフトウェアの暴走やバグなどで,FATに軽微な矛盾が生じる場合がある.起こりやすいエラーとしては,ファイルの途中が途切れてしまったり,その残りの部分が孤立してしまうというものだ.これはchkdskコマンドでもエラーが報告される.
 この復旧は,chkdskコマンドで一応の解決ができることがある.chkdsk/fとすると,ファイルを異常のある部分までで打ち切って正常なファイルにし,同時に,孤立してしまった部分をファイルにしてくれる(図6).
 ディスクの一部が物理的に壊れてしまった場合はもう少し厄介だ。これはchkdskコマンドでは検出できないので,たまたまその領域をプログラムがアクセスして,システムが「読めない」などのエラーを返すのを見て、物理的な障害が発生したな、と推測するしかない。読めないファイルが特定できたら,recoverコマンドが利用できる。「recoverファイル名」と入力すると,そのファイル中の読めないクラスタに「破損クラスタ」マークがなされ,その前後をつないでくれる.破損クラスタは再生できないが,それはあきらめるしかない.
 FATが大きく壊れてしまうような事故は,そうそうあることではないが,起こった場合のダメージは大きい。前述の「fr」でFAT/ディレクトリ領域が保存されていれば,とりあえずそれを利用することでかなりの復旧は見込める(それでもセーブ時以降の変更分については保証されない)。
 重症の場合では,ディスクエディット機能のあるソフトウェア(エコロジー2,ファイルマスター2,nuなど)で中を見て回ることになる.そこから必要なものを拾い集めるのは、根気のいる作業ではあるが不可能ではない.グラフィックデータや音楽データのように目で見て分からないものはかなり絶望的だが,テキストファイルなら何とかなることも多い。また,MS-DOS SOFTWARE TOOLSのnomoreを使えば、ディスクの未使用になっている領域をすべてファイルにすることができるので、最悪の場合は,そのファイルをエディタで読み込んでデータを探すという手段もある。


ASCII1990(06)c17HDD図5FATとディレクトリ_W334.jpg
ASCII1990(06)c17HDD図6chkdskコマンドでエラーが出るときは_W520.jpg
PC-9801VM4のとき既にHDDのエラーを何回も経験した。当時のHDDは良くエラーを起こした。バックアップは常日頃行っていた。
その後雑誌等でハードディスクが飛んで原稿がなくなり泣いてしまったというライターの記事を読むと気の毒には全く思わず、そのライターをただバカにした。なぜ、大多数の人間はコンピュータを信用するのだろうかと思った。「コンピュータで出した答えです」と言われたらまず疑う。アルゴリズムは正しいのか、プログラムにバグがなかったのか、入力データは正確か。それらの担保がないものは信用できない。



nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。