ここでは、Linux をインストールするにあたって必要最小限知って いなければならないことを記述している。 なお、Linuxとは Unix の1つの実装系であり、 以下 Linux と明記してあるところは、 一般的な UNIX とは異なる Linux 固有の部分である。
ファイルシステムとは、個々のプログラムやデータを、 「ファイル」という仮想的な入れ物の集まりとしてユーザに認識させるための 仕組みである。DOSでは、FAT (File Allocation Table)というファイルシステムを採用しているが、 この特徴として、「ドライブ名(Drive Letter)」という概念で各種周辺装置の 管理を行っている。ドライブ名の割り当ては以下のようになっている。
ドライブ名 | デバイス | 備考 | Linuxにおける デバイス名 |
---|---|---|---|
A: | 最初の FDD (通常3.5inch) | NEC の PC98 シリーズでは、A:,B: と C:,D: が逆になる。 | /dev/fd0 |
B: | 2 番目の FDD (通常5inch) | これ以上の FDD を接続する場合、もしくは標準でない FDD を使用する場合、 特殊なデバイスドライバにより認識させる。この場合のドライブ名は、 一般的に「最後に認識したハードディスクの次の文字」となる。 | /dev/fd1 |
C: | 最初の HDD | IDE インターフェース(SCSI でないディスクで 使用)は、マザーボード内に 2 ポート実装してあり(/dev/ide0と/dev/ide1)、 1 ポートに 2 台(マスター/スレーブ)の HDD(又は IDE/ATAPI 仕様の CD-ROM ドライブ)を 接続することができる。 | /dev/hda |
D: | (もしあれば)2 番目の HDD | /dev/hdb |
以下に、オプションで追加できる MS-DOS ファイルシステム互換周辺装置の 例を示す。なおドライブ名は、最後に認識した HDD の次のドライブ文字 (複数可。Z:まで合計 26 個)となる。
デバイスの種類 | 説明 | Linuxにおけるデバイス名 |
---|---|---|
HDD の論理ドライブ | 大容量 HDD の場合、その中を複数のパーティション (区画)に分けて、それぞれにドライブ名をつけることができる。 ちなみにディスク圧縮を設定する場合は、 この論理ドライブ単位で圧縮するかどうかを指定する。 | /dev/hda1, /dev/hda2, ‥‥ |
CD-ROM | MSCDEX.EXE(Microsoft CD-ROM Extention)により、 ネットワークドライブとしてドライブ名を割り当てる。 | /dev/cdrom(*1) |
3 モードドライバ | すでに割り当て済みの FDD を、 ドライバにより特殊な方法でアクセスする場合。 ただしメーカーによっては A: ドライブで自動認識を行っている場合もある。 | (未サポート) |
リムーバブルデバイス | ZIP, MO など | /dev/zipなど |
ネットワークドライブ | LAN 上の別のマシン上のディレクトリ。 NFS(Network File System)や Microsoft LanManager,Novell Netwareなどのドライバにより ドライブ名を割り当てる。 | 任意のディレクトリ名 |
(*1)/dev/cdrom は実際には /dev/hdc などの シンボリック・リンクになっている。 このリンクは OS のインストール時に自動的に張られることもある。
※一般的に、デバイスドライバを使用してドライブを追加する場合、 任意のドライブ文字(A〜Z)を使用することができるが、 F: 以降のドライブ文字を使用する場合は、 config.sys ファイルに LASTDRIVE=G (G:まで使用する場合) というエントリが必要になる。
以下に、Linuxにおける代表的なデバイス名の例を示す。
デバイス名 | 説明 |
---|---|
/dev/fd0 | 最初のFDD(の代表名) |
/dev/fd0H1440 | 最初のFDDを、1.44MBとして明示的に指定する |
/dev/cdrom | CD-ROM (の代表名) |
/dev/hda | IDEディスクの1台目(物理ドライブ) |
/dev/hda1 | 1台目のIDEディスクの中の、最初のパーティション |
/dev/hdb | IDEディスクの2台目(物理ドライブ) |
/dev/sda | SCSIディスクの1台目(物理ドライブ) |
/dev/cua0 | シリアルI/Fの1ポート目(発信用) |
/dev/kmem | カーネルメモリ(物理メモリイメージ) |
なお、デバイスには以下の2種類がある。
デバイス種別 | 説明 |
---|---|
キャラクタデバイス | 1文字毎の入出力を行うもの。 例)マウス、シリアルI/O、キーボード、FDD(*1) |
ブロックデバイス | ブロック単位(≒セクタ単位)の入出力を行うもの。言い換えれば、ファイルシステムを構築できるデバイス。 例)HDD,FDD(*1)、 CD-ROM (*1)‥‥FDDは、基本的にはキャラクタデバイスだが、ファイルシステム(後述)を作成(DOSで言うところのフォーマット)することによりブロックデバイスとしてもアクセスできる。 |
Unix においては、すべてのファイルは / (ルートディレクトリ)を頂点とするディレクトリ・ツリー中にあるものとして認識することができる。ドライブという概念がないため、カレントディレクトリは1つしか存在しない。
これらのことを実現するために、 Unix では「マウント」という概念を持つ。具体的にはmount というコマンドにより、いくつかの物理デバイスを接ぎ木して1つのディレクトリ・ツリーを形成する。
というコマンドを実行すると、/cdrom というディレクトリにアクセスすることにより、 CD-ROM を読むことができる。また、
というコマンドを実行することにより CD-ROM のマウントを解除し、 CD-ROM を取り出すことができる。
というコマンドを実行すると、/fd というディレクトリにアクセスすることにより、DOSのフロッピーを読み書きすることができる。また、この場合キャッシュが効くので最高DOSの数十倍のアクセス速度が期待できる。
なお、FDを抜くときには「アンマウント」を行って、OSに対して明示的にFDを抜くことを教えてやる必要がある。
これを行うと、キャッシュしていたデータをフラッシュする。ハードによっては自動的にFDが排出される(かもしれない)。DOS/V機ではそういうハード的な機構がないために通常は無理である。
/etc/fstabファイルの記述例)
Unix におけるファイルシステム(マウント)
DOSでは、ドライブが複数あるために、カレントディレクトリ(作業中のディレクトリ)も、各ドライブ毎に存在する。
マウント設定ファイル(/etc/fstab)
HDD等の固定デバイスについては取り替えることがないため、通常システム起動時に自動的にマウントするように設定するのが普通である。これは、/etc/fstab という設定ファイルに記述することにより実行される。
#device | mount point | filesystem | options | ||
/dev/hda3 | / | ext2 | defaults | 1 | 1 |
/dev/hda1 | /www | ext2 | defaults | 1 | 1 |
none | /proc | proc | defaults | 1 | 1 |
/dev/cdrom | /cdrom | iso9660 | noauto,user | 1 | 1 |
/dev/fd0 | /fd | msdos | noauto,user | 1 | 1 |
server2:/home | /home | nfs | defaults | 0 | 0 |
装置を表すスペシャルファイル名。特殊なものとしては以下のものがある。
その装置をどのディレクトリとして認識するかという指定。指定するディレクトリは、前もって作成しておく。もしそのディレクトリにファイルが存在しても、マウントされた時点でそのファイルは隠れて見えなくなってしまう。
Linuxではカーネルレベルで多数のファイルシステムがサポートされていて、筆者もすべてを把握している訳ではないので、上記に示すものだけを説明する。
名称 | 説明 |
---|---|
ext2 | Linux Extended 2。Linuxの標準ファイルシステム。 |
iso9660 | 一般的な CD-ROM を読むためのファイルシステム。 |
msdos | FATファイルシステム。筆者は使用したことがないが、Windows 95 で使用されているVFAT(長いファイル名が使える)もサポートしているようである。 |
nfs | Network File System。他のマシンにあるディレクトリをローカルディスクのように使用することができる。実体のあるマシンでNFSサーバが動作していることが必要。 |
proc | System5 系 Unix の特殊なファイルシステム。このディレクトリを通してカーネルやデバイスドライバの状態などをリアルタイムで監視することができる。 例) hostname:/# cat /proc/interrupts 0: 292023580 timer 1: 1117 keyboard 2: 0 cascade 3: 7385499 NE2000 13: 1 math error 14: 2115108 + ide0 15: 0 + ide1この出力は、現在稼働中のデバイスドライバのうち、割り込み(IRQ)を使用するものである。左から順に、IRQ,(ブートしてからの)割り込み回数、デバイス名である。 |
これ以降のパラメータは、各ファイルシステム固有である。default というオプションは、そのファイルシステムの一般的な動作という意味で、具体的には起動時に自動的にマウントすることを示す。