エントリ
エントリの概要
File_Fstab_Entry クラスは
Fstab ファイルの特定のエントリから得られる情報を表します。
エントリのプロパティ
エントリは多くのプロパティを保持しており、それぞれが fstab
ファイルの情報を表しています。
- $device
このエントリのブロックデバイスへのパスです。
$device、$uuid
および $label は互いに排他的で、
3 つのうちのひとつだけが設定されます。
- $uuid
デバイスの UUID です。
- $label
このデバイスのラベルです。
- $mountPoint
このデバイスがマウントされているディレクトリです。
- $fsType
$device 上のファイルシステムの形式です。
- $mountOptions
このデバイスのマウントオプションの配列です。
- $dumpFrequency
dump によるバックアップをする場合の
頻度です。
- $fsckPassNo
システムの起動時に fsck による
チェックを行う場合の順序です。
これらの項目の意味についての詳細な情報は、fstab(5)
のマニュアルを参照ください。
エントリの検索
fstab からエントリを検索するには、さまざまな方法があります。
デバイスで検索したり、あるいはマウントポイントやファイルシステム
ラベルや UUID で検索することもあるでしょう。
デバイスによる検索
デバイスによる検索を行うには、getEntryForDevice()
関数を使用します。この関数は、対象となるエントリのブロックデバイス
へのパスを引数として受け取ります。
例 37-1デバイスからエントリを取得する
<?php
require_once 'File/Fstab.php';
$fstab =& new File_Fstab();
$dev =& $fstab->getEntryForDevice('/dev/hda1');
if (PEAR::isError($dev)) {
die($dev->getMessage());
}
?>
|
|
パス(マウントポイント)による検索
それがマウントされているパスから、デバイスを検索したいことも
あるでしょう。たとえば /cdrom にマウント
されているデバイスが何かを知りたくて、それが /dev/hdb
なのか /dev/cdrom なのか、あるいはそれ以外の
デバイスなのかはどうでもいいといった場合が考えられます。
この検索のするには、getEntryForPath() 関数を
使用します。
例 37-2パスからエントリを取得する
<?php
require_once 'File/Fstab.php';
$fstab =& new File_Fstab();
$dev =& $fstab->getEntryForPath('/cdrom');
if (PEAR::isError($dev)) {
die($dev->getMessage());
}
?>
|
|
UUID による検索
マウントするデバイスを指定するために、そのファイルシステム
UUID を使用するシステムも存在します。
UUID は
b46ad2ee-01f3-4041-96ca-91d35d059417 のような
形式です。これを扱うには、getEntryForUUID()
関数を使用します。
例 37-3UUID からエントリを取得する
<?php
require_once 'File/Fstab.php';
$fstab =& new File_Fstab();
$dev =& $fstab->getEntryForUUID('b46ad2ee-01f3-4041-96ca-91d35d059417');
if (PEAR::isError($dev)) {
die($dev->getMessage());
}
?>
|
|
ラベルによる検索
ファイルシステムに対して、テキストのラベルを指定することを許可している
ファイルシステムも存在します。たとえば、ルートデバイスに
rootdev というラベルを指定し、/home
にマウントするデバイスには homedirs というラベルを
指定し、といったようにすすめていくことができます。
File_Fstab は、デバイスのラベルに基づいて
エントリを取得する機能をサポートしています。これを実行するには
getEntryForLabel() 関数を使用します。
例 37-4ラベルからエントリを取得する
<?php
require_once 'File/Fstab.php';
$fstab =& new File_Fstab();
$dev =& $fstab->getEntryForLabel('homedirs');
if (PEAR::isError($dev)) {
die($dev->getMessage());
}
?>
|
|
エントリの追加
fstab ファイルの読み込みに加えて、それを変更することもできます。
例 37-5フロッピーディスク用のエントリを追加する
<?php
require_once 'File/Fstab.php';
$fstab =& new File_Fstab();
$floppy =& new File_Fstab_Entry();
$floppy->fsType = 'vfat';
$floppy->device = '/dev/fd0';
$floppy->mountPoint = '/floppy';
$fstab->addEntry($floppy);
?>
|
|