Linux ユーザの多くは自分の PC に複数の OS をインストールしているようで す。これは主に、ハードウェア設定用のプログラムが他の OS ( DOS や 各種 Windows )でしか動かないためであることが多いようです。そこで、 このような OS をどのように扱えばよいかについて一章を設けました。
DOS がオペレーティングシステムの名に値するかどうかの議論はひとまず置い ておきますが、いずれにしても DOS がディスク操作に関しては非常に原始的 なものであることは確かです。特に問題になるのは、 DOS のいくつかのバー ジョンでは大きディスクを扱う際に重大な障害が生じる可能性があることです。 Large Drives mini-HOWTO を読んでおくと良いでしょう。 DOS は低位の トラックの領域に置いておくとシアワセになれます。
DOS は小さなドライブ向けに設計されてきたものですので、ファイルシステム (FAT)も洗練されたものではありません。 FAT で大きなドライブを扱お うとすると、あてがわれるブロックのサイズは巨大なものになってしまいます。 また FAT ではブロックのフラグメンテーションが起こりやすく、しばらく使 うとシークが頻繁に生じるようになり、実効的な転送速度が低下してしまいま す。
フラグメンテーションに対する一つの解はデフラグメントプログラムを定期的
に動作させることですが、これを行う前にはデータをバックアップし、ディス
クをベリファイして置くことを強くお勧めします。 DOS の全てのバージョン
には chkdsk
というディスクを検査するプログラムが付属しています。
また最近のバージョンには scandisk
というもう少し良いプログラムも
あります。デフラグメントを行うプログラムもたくさんあります。バージョ
ンによっては DOS にも defrag
というツールがあります。 Norton
Utilities には多くのディスクツールが一緒に付属してきます。
デフラグの際には hidden 属性を持ったファイルが邪魔になることがあります。 ベンダによってはこのファイルをコピー防止のキーに使っており、これを他の ディレクトリに移動するとソフトが動かないようにしている場合があります。 従って最近のデフラグツールでは hidden 属性を持ったファイルは移動しない ようにしており、結果としてデフラグメントの効率が低下してしまっています。
DOS はシングルタスク、シングルスレッド、その他いろいろな面に関してシン グルですから、複数のドライブを使ってもほとんどメリットはありません。 ただし RAID をビルトインでサポートしたドライブコントローラを利用する場 合は例外です。
join
や subst
といった、複数ドライブ用の設定ユーティリティも
いくつか存在しますが、ほとんどの場合には役に立ちません。最近のバージョ
ンでは削除されたものもあるようです。
最後に。 DOS に関して手を入れられるところはほとんどありませんが、少な
いながら例外もあります。多くのプログラムでは高速な一時領域を必要としま
すが、良くできたプログラムでは TMPDIR
や TEMPDIR
といったよ
うな環境変数を参照します。これら分離したドライブに設定しておくと良いで
しょう。 autoexec.bat
などで以下のように設定します。
SET TMPDIR=E:/TMP
速度の向上だけでなく、フラグメンテーションが減る効果も期待できます。
前節で挙げた点は Windows にも当てはまります。ただし Windows95 ではより 良いディスク管理が行われており、 SCSI のドライブでもその性能を引き出す ことができています。
まずロングファイルネームがサポートされたことが挙げられます。これを
Linux から利用するには vfat
ファイルシステムを用いてパーティショ
ンをマウントします。
最も重要なのは、新しいファイルシステムである FAT32
が導入されたこ
とです。これによって大きなドライブをよりよく扱うことができるようになり
ました。ただ現時点ではこのファイルシステムを扱うユーティリティは非常に
少ないです(NT 4.0 にもありません)。 Linux で FAT32
を扱えるよう
にするドライバも、もうしばらくで安定したものが出てくるでしょう。アップ
デートに注意しましょう。
ディスクのフラグメンテーションは依然解決していません。この問題は、大き なプログラムをシステムにインストールする直前・直後にデフラグメントツー ルを行うことである程度回避することはできます。私はこの方法を採用してい ますが、満足の行く結果が得られています。
Windows はスワップドライブを使います。これを別のドライブにすると、ある 程度の性能向上が期待できるでしょう。スワップ領域を複数のオペレーティン グシステムの間で共有する方法に関する mini-HOWTO もあるようです。
OS/2 には ext2fs
のパーティションを読むことのできるドライバがある
そうです。特記することはそのくらい。
NT はもう少し本格的なシステムです。名前もマーケティング向け(New Techonology!)ですね。 NT ではソフト的なストライピングといったような、 より洗練された設定をすることができます。コントロールパネルのドライブマ ネージャをチェックしてください。私自身は NT を気軽に扱うことができる立 場にいないので、詳細に関する記述は先のことになります。
最近一つ重要な欠点が acahalan@cs.uml.edu
から報告されています。
(以下は Usenet ニュースへのポストを整形しています)
NT ディスクマネージャには重大なバグがあり、複数の(一つ以上の?)拡張 パーティションを扱うとディスクを破壊してしまいます。 Microsoft はこの 問題を解決したプログラムを彼らの web サイトで配布しています。詳細に関 しては knowledge base のページから検索してください。(この問題は拡張パーティションを使ってい る Linux ユーザにも影響します。)
Sun OS と Solaris の関係については少々混乱があるようです。単刀直入に言
うと、 Solraris は Sun OS 5.x に過ぎません(Openwindows 等の付属パッケー
ジはありますが)。Solaris を使っているなら uname -a
とすれば現在
のバージョンがわかります。混乱の理由の一部は以下の点にあります。 Sun
Microsystems は以前は BSD 系の OS を使っており、それによそから集めたり
自分達で作ったりしたものを併せて配布していました。 Sun OS 4.x.y までは
このような形でしたが、その後彼らは「将来戦略の選択」をした際に、オフィ
シャルな Unix である System V の Release 4 へ切り替えることを決定した
のでした。こうして Sun OS 5 が誕生しました。この決定には多くの人々が不
満を感じました。 Sun OS 5 にもいくつかのソフトが追加され、 Solaris とい
う名前で販売されるようになりました。現在のバージョンは 2.5.1 beta です。
おそらく多くの Linux ユーザに取って馴染み深い OS でしょう。しかしファ
イル構造は FSSTND とは大きく異なっていますので、ディスク配置を行なう際
には伝統的な構造に従う必要があります。 man hier
することによって
このディレクトリ情報が得られます。 man ページの通例に従って記述は簡潔
なものですが、出発点としてはよいものです。もしそれでもディレクトリ構造
に関して迷うことがあったら、そのディレクトリはルートに近いところに置い
てしまうのが良いでしょう。
Solaris には Openwindows の下で動くできの良いインストールプログラムが 付属しています。これを用いると CD-ROM からシステムをインストールする前 にディスクのパーティション分割とフォーマットが行なえます。ただ、あまり 分割を多くしすぎるとエラーが(しかも 1 倍速の CD-ROM からのインストー ルが長々と続いた後に...)起こります。筆者は実際このような目にあい、そ の時はまず一台のドライブにインストールしてから他のドライブへ内容を移す ことで回避しました。
デフォルトの設定はなかなかよくできたものですが、スワップドライブの指定 に関してはおかしなところがあります。公式マニュアルではスワップを複数の ドライブに指定することを薦めていますが(Linux でもそうですね)、デフォ ルトではひとつのドライブだけを使うようになっています。この点は即刻改良 されるべきだと思います。
Sun OS 5 は一時領域向けに特化したファイルシステム tmpfs
を持って
います。これは RAM ディスクを洗練させたものであり、普通の RAM ディスク
と同様、電源が落ちると内容は失われます。容量が厳しくなると仮想ドライブ
の一部はスワップアウトされ、結局一時ファイルがスワップパーティションに
保存されることになります。 Linux にはこのようなファイルシステムはあり
ません。以前議論されていましたが、意見は分かれていたようです。ご存じの
ことがありましたら筆者までコメントを送って下さい。