次のページ 前のページ 目次へ

7. 他のオペレーティングシステム

Linux ユーザの多くは自分の PC に複数の OS をインストールしています。 これは主に、ハードウェア設定用のプログラムが他の OS (DOS や 各種 Windows) でしか動かないためであることが多いようです。 そこで、このような OS をどのように扱えばよいかについて一章を設けました。

7.1 DOS

DOS がオペレーティングシステムの名に値するかどうかの議論は ひとまず置いておきますが、 いずれにしても DOS がディスク操作に関して 非常に原始的なものであることは確かです。 特に問題になるのは、 DOS のいくつかのバージョンでは大きいディスクを扱う際に 重大な障害が生じる可能性があることです。 Large Disk HOWTO を読んでおくと良いでしょう。 各種の問題を避けるには DOS は低位トラック領域に置いておくと良いでしょう。

DOS は小さなドライブ向けに設計されてきたものですので、 ファイルシステム (fat) も洗練されたものではありません。 FAT で大きなドライブを扱おうとすると、 あてがわれるブロックのサイズは巨大なものになってしまいます。 また FAT ではブロックのフラグメンテーションが起こりやすく、 しばらく使うとシークが頻繁に生じるようになり、 実効的な転送速度が低下してしまいます。

フラグメンテーションに対する一つの解は、 デフラグメントプログラムを定期的に動作させることですが、 これを行う前にはデータをバックアップし、 ディスクをベリファイしておくことを強くお勧めします。 DOS のすべてのバージョンには chkdsk というディスクを検査するプログラムが付属しています。 また最近のバージョンには scandisk というもう少し良いプログラムもあります。 デフラグメントを行うプログラムもたくさんあります。 バージョンによっては DOS にも defrag というツールがあります。 Norton Utilities は多くのディスクツールを集めたもので、 ディスク向け以外にも色々なツールが付属してきます。

デフラグの際には hidden 属性を持ったファイルが邪魔になることがあります。 ベンダによってはこのファイルをコピー防止のキーに使っており、 これを他のディレクトリに移動すると ソフトが動かないようにしている場合があります。 したがって最近のデフラグツールでは hidden 属性を持ったファイルは移動しないようにしており、 結果としてデフラグメントの効率が低下してしまいます。

DOS はシングルタスク、シングルスレッド、 その他いろいろな面に関して「シングル」ですから、 複数のドライブを使ってもほとんどメリットはありません。 ただし RAID をビルトインでサポートした ドライブコントローラを利用する場合は例外ですが。

joinsubst といった、 複数ドライブ用の設定ユーティリティもいくつか存在しますが、 ほとんどの場合は役に立ちません。 最近のバージョンでは削除されたものもあるようです。

DOS に関して手を入れられるところはほとんどありませんが、 少ないながら例外もあります。 多くのプログラムでは高速な一時領域を必要としますが、 良くできたプログラムでは TMPDIRTEMPDIR といったような環境変数を参照します。 これら分離したドライブに設定しておくと良いでしょう。 autoexec.bat などで以下のように設定します。


SET TMPDIR=E:/TMP
SET TEMPDIR=E:/TEMP

速度の向上だけでなく、フラグメンテーションが減る効果も期待できます。

DOS の fdisk プログラムでは、 複数の primary パーティションを削除するのが難しい、 という報告もあるようです。 この場合は Linux のレスキューディスクから起動し、 Linux の fdisk でシステムを修理してください。

DOS には代替品があることも知っておくと良いでしょう。 もっとも有名なのは CalderaDR-DOS です。これは Digital Research の DR-DOS の直系の子孫です。 より使われている DOS にはない、 多くの機能 (マルチタスクや長いファイル名など) を備えています。

他にもフリーなものとして Free DOS があります。これは開発中のプロジェクトです。 一緒に使えるフリーなユーティリティもたくさんあります。

7.2 Windows

前節で挙げた点は Windows にも当てはまります。 ただし Windows95 ではより良いディスク管理が行われており、 SCSI のドライブでもその性能を引き出すことができています。

ロングファイルネームがサポートされたことは大きいですね。 これを Linux から読むには vfat ファイルシステムを用いてパーティションをマウントします。

ディスクのフラグメンテーションは依然解決していません。 この問題は、大きなプログラムをシステムにインストールする直前・直後に デフラグメントツールを使えばある程度は回避できます。 筆者はこの方法を採用していますが、満足の行く結果が得られています。 使っていないファイルを削除して解放領域を大きくとると、 デフラグメントの効果はさらに高くなります。

Windows はスワップドライブを使います。これを別のドライブにすると、 ある程度の性能向上が期待できるでしょう。 スワップ領域を複数のオペレーティングシステムの間で共有する方法に関する mini-HOWTO もあるようです。

TEMPDIR を指定する、というテクニックは Windows でも有効ですが、 すべてのプログラムがこの設定を見てくれるわけではありません (もちろん見てくれるプログラムもあります)。 各種コントロールファイルでの設定情報を閲覧するには sysedit が便利です。 これはたくさんのファイルをオープンし、編集もできます。 ファイルの中のひとつ、 autoexec ファイルに TEMPDIR の設定を追加できます。

一時ファイルのほとんどは /windows/temp ディレクトリに 保存されます。これを変更するには、もう少々テクニックが必要です。 これには regedit を使います。これは強力なコマンドで、 システムを不愉快な状態にしてしまうこともできます。 もっと正確に言うと、そのままの Windows よりも もっとずっと不愉快な状態にしてしまう能力があります。 「レジストリデータベースのエラー」が、 この悪いニュースを伝えるメッセージです。 また多くのプログラムでは、それぞれ独自の一時ディレクトリを定義しており、 これがシステム中に散らばっていることも覚えておいてください。

スワップファイルを分離されたパーティションに置くのは良いアイディアで、 ずっとリスクも低いです。 ただしこのパーティションは他のどんな用途にも用いないようにしてください。 たとえ空いているように見えても、です。

現在では ext2fs パーティションを Windows から読むことも可能になりました。 FSDEXT2 でパーティションをマウントするか、 Explore2fs と呼ばれるエクスプローラ風のツールを使います。

7.3 OS/2

OS/2 には ext2fs のパーティションを読むことのできるドライバがあるそうです。 Matthieu Willm による、OS/2 用の ext2fs Installable ファイルシステムは ftp-os2.nmsu.edu, Sunsite, ftp.leo.org, ftp-os2.cdrom.com. などにあります。

IFS には読み書き両方の機能があります。

7.4 NT

NT はもう少し本格的なシステムです。 名前もマーケティング向け (New Techonology!) ですね。 NT ではソフト的なストライピングといったような、 より洗練された設定ができます。 コントロールパネルのドライブマネージャをチェックしてください。 筆者自身は NT を気軽に扱える立場にいないので、 詳細に関する記述は先のことになります。

最近一つ重要な欠点が acahalan@cs.uml.edu から報告されています。 (以下は Usenet ニュースへのポストを整形しています)

NT ディスクマネージャには重大なバグがあり、 複数の (一つ以上の?) 拡張パーティションを扱うと ディスクを破壊してしまいます。 Microsoft はこの問題を解決したプログラムを 彼らの web サイトで配布しています。 詳細に関しては knowledge base のページから検索してください。 この問題は拡張パーティションを使っている Linux ユーザにも影響します)

最近では Explore2fs を用いれば、 NT から ext2fs パーティションを読めるようになりました。

7.5 Windows 2000

Windows NT に関する多くの点は、その子孫である Windows 2000 にも当てはまります。 しかし現執筆時では、 先に紹介したバグが修正されたかどうか筆者は知りません。

Windows 2000 は、その祖先と同様に RAID 機能を持っていますが、 少なくとも RAID Toolbox 社, によれば、バンドルされている RAID には何か欠けたところがあるようで、 彼らは自分たちで商用の代替版を作ったようです。

7.6 Sun OS

Sun OS と Solaris の関係については少々混乱があるようです。 単刀直入に言うと、 Solaris は Sun OS 5.x に過ぎません (Openwindows 等の付属パッケージはありますが)。 Solaris を使っているなら uname -a とすれば現在のバージョンがわかります。 混乱の理由の一部は以下の点にあります。 Sun Microsystems は以前は BSD 系の OS を使っており、 それによそから集めたり自分達で作ったりしたものを併せて配布していました。 Sun OS 4.x.y まではこのような形でしたが、 その後彼らは「将来戦略の選択」をした際に、オフィシャルな Unix である System V Release 4 (SVR4) へ切り替えることを決定したのでした。 こうして Sun OS 5 が作成されました。 この決定には多くの人々が不満を感じました。 Sun OS 5 にもいくつかのソフトが追加され、 Solaris という名前で販売されるようになりました。 現在は release 7 で、ごく最近 2.6 から更新されて最新版になりました。 バージョン番号には大きなジャンプがありますが、 実際にはマイナーな部分のアップグレードに過ぎません。 でもマーケティング的には大きく飛躍したようです。

訳注: 2002 年現在 Solaris 9 がリリースされています。

Sun OS 4

おそらく多くの Linux ユーザに取って馴染み深い OS でしょう。 最後のリリースは 4.1.4 ですが、各種のパッチが出ています。 しかしファイル構造は FSSTND とは大きく異なっていますので、 ディスク配置を行なう際には伝統的な構造に従う必要があります。 man hier することによってこのディレクトリ情報が得られます。 man ページの通例のごとく、記述はぶっきらぼうなものですが、 出発点としてはよいでしょう。 もしそれでもディレクトリ構造に関して迷うことがあったら、 それは高位に置いてしまえば良いでしょう。

Sun OS 5 (Solaris)

Solaris には Openwindows の下で動くできの良いインストールプログラムが付属しています。 これを用いると CD-ROM からシステムをインストールする前に、 ディスクのパーティション分割とフォーマットが行なえます。 ただ、あまり分割を多くしすぎるとエラーが (しかも 1 倍速の CD-ROM からのインストールが長々と続いた後に...) 起こります。 筆者は以前働いていたところで実際このような目にあい、 その時はまず一台のドライブにインストールしてから 他のドライブへ内容を移すことで回避しました。

デフォルトの設定はなかなかよくできたものですが、 スワップドライブの指定に関してはおかしなところがあります。 公式マニュアルではスワップを複数のドライブに指定することを勧めていますが (Linux でもそうですね)、 デフォルトではひとつのドライブだけを使うようになっています。 この点はすぐにでも改良されるべきだと思います。

Sun OS 5 は一時領域向けに特化したファイルシステム tmpfs を持っています。これは ufs に比べてずっと高速ですが、 再起動するとデータは消えてしまいます。

現時点での筆者の意見は「注意せよ!」です。 Solaris 2.0 で /tmp に大きすぎるファイルを作ってしまうと、 "out of swap space" のカーネルパニックを起こすことがあります。 起こったことに関する証拠は RAM ディスクにあるので、 電源を切ったときに他のデータと一緒に失われてしまいます。 さらに悪いのは、 ユーザ空間のプロセスがこのカーネルパニックを引き起こすことが できるらしいことです。 この問題が解決されるまでは tmpfs は使わないことです。 少なくとも自分の首がかかっているような環境では。

tmpfs にある記述も参考にしてください。

余談: Solaris って言う映画もあります。とっても、と〜っても長くて難解な SF 映画です。 Solaris (OS のほう) が現われたときには、 良くこの映画が引き合いに出されたものでした...

7.7 BeOS

この OS はごく最近登場したもので、 データベースのような機能を持ったファイルシステムを備えています。

BFS ファイルシステムの Linux ドライバも開発中で、 現在アルファの段階です。詳細な情報は Linux BFS page にあります。パッチもここに置かれています。


次のページ 前のページ 目次へ