Linux の基礎知識

ここでは、Linux をインストールするにあたって必要最小限知って いなければならないことを記述している。 なお、Linuxとは Unix の1つの実装系であり、 以下 Linux と明記してあるところは、 一般的な UNIX とは異なる Linux 固有の部分である。


DOSのファイルシステム


ファイルシステムとは、個々のプログラムやデータを、 「ファイル」という仮想的な入れ物の集まりとしてユーザに認識させるための 仕組みである。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:まで使用する場合) というエントリが必要になる。


Unix による各種周辺装置(デバイス)の表現


Unix においてはドライブという概念は存在しない。メモリなども含めて、すべてのデバイスは、「デバイススペシャルファイル」というファイルとして仮想化される。

以下に、Linuxにおける代表的なデバイス名の例を示す。

Linuxにおける代表的なデバイス名
デバイス名説明
/dev/fd0最初のFDD(の代表名)
/dev/fd0H1440最初のFDDを、1.44MBとして明示的に指定する
/dev/cdrom CD-ROM (の代表名)
/dev/hdaIDEディスクの1台目(物理ドライブ)
/dev/hda11台目のIDEディスクの中の、最初のパーティション
/dev/hdbIDEディスクの2台目(物理ドライブ)
/dev/sdaSCSIディスクの1台目(物理ドライブ)
/dev/cua0シリアルI/Fの1ポート目(発信用)
/dev/kmemカーネルメモリ(物理メモリイメージ)

なお、デバイスには以下の2種類がある。

デバイス種別説明
キャラクタデバイス 1文字毎の入出力を行うもの。
例)マウス、シリアルI/O、キーボード、FDD(*1)
ブロックデバイス ブロック単位(≒セクタ単位)の入出力を行うもの。言い換えれば、ファイルシステムを構築できるデバイス。
例)HDD,FDD(*1)、 CD-ROM

(*1)‥‥FDDは、基本的にはキャラクタデバイスだが、ファイルシステム(後述)を作成(DOSで言うところのフォーマット)することによりブロックデバイスとしてもアクセスできる。


Unix におけるファイルシステム(マウント)


DOSでは、ドライブが複数あるために、カレントディレクトリ(作業中のディレクトリ)も、各ドライブ毎に存在する。

Unix においては、すべてのファイルは / (ルートディレクトリ)を頂点とするディレクトリ・ツリー中にあるものとして認識することができる。ドライブという概念がないため、カレントディレクトリは1つしか存在しない。

これらのことを実現するために、 Unix では「マウント」という概念を持つ。具体的にはmount というコマンドにより、いくつかの物理デバイスを接ぎ木して1つのディレクトリ・ツリーを形成する。


マウント設定ファイル(/etc/fstab)


HDD等の固定デバイスについては取り替えることがないため、通常システム起動時に自動的にマウントするように設定するのが普通である。これは、/etc/fstab という設定ファイルに記述することにより実行される。

/etc/fstabファイルの記述例)
#devicemount pointfilesystemoptions
/dev/hda3/ext2defaults11
/dev/hda1/wwwext2defaults11
none/procprocdefaults11
/dev/cdrom/cdromiso9660noauto,user11
/dev/fd0/fdmsdosnoauto,user11
server2:/home/homenfsdefaults00
各フィールドを順に説明する。

  1. デバイス指定

    装置を表すスペシャルファイル名。特殊なものとしては以下のものがある。

    • none : なし。実体はカーネル内のメモリの一部を指す。
    • server2:/home : server2 というホストの中の /home というディレクトリを指す。

  2. マウントポイント

    その装置をどのディレクトリとして認識するかという指定。指定するディレクトリは、前もって作成しておく。もしそのディレクトリにファイルが存在しても、マウントされた時点でそのファイルは隠れて見えなくなってしまう。

  3. ファイルシステム名

    Linuxではカーネルレベルで多数のファイルシステムがサポートされていて、筆者もすべてを把握している訳ではないので、上記に示すものだけを説明する。

    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,(ブートしてからの)割り込み回数、デバイス名である。

  4. オプション

    これ以降のパラメータは、各ファイルシステム固有である。default というオプションは、そのファイルシステムの一般的な動作という意味で、具体的には起動時に自動的にマウントすることを示す。


ディスクのパーティションの切り方


ディスクのパーティションの切り方には特に規則はないが、標準的には以下のようにしておけば良い。