File_Fstab_Entry クラスは Fstab ファイルの特定のエントリから得られる情報を表します。
エントリは多くのプロパティを保持しており、それぞれが fstab ファイルの情報を表しています。
$device
、$uuid
および $label
は互いに排他的で、
3 つのうちのひとつだけが設定されます。
$device
上のファイルシステムの形式です。
dump
によるバックアップをする場合の
頻度です。
fsck
による
チェックを行う場合の順序です。
これらの項目の意味についての詳細な情報は、fstab(5)
のマニュアルを参照ください。
fstab からエントリを検索するには、さまざまな方法があります。 デバイスで検索したり、あるいはマウントポイントやファイルシステム ラベルや UUID で検索することもあるでしょう。
デバイスによる検索を行うには、getEntryForDevice() 関数を使用します。この関数は、対象となるエントリのブロックデバイス へのパスを引数として受け取ります。
デバイスからエントリを取得する
<?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() 関数を
使用します。
パスからエントリを取得する
<?php
require_once 'File/Fstab.php';
$fstab =& new File_Fstab();
$dev =& $fstab->getEntryForPath('/cdrom');
if (PEAR::isError($dev)) {
die($dev->getMessage());
}
?>
マウントするデバイスを指定するために、そのファイルシステム
UUID を使用するシステムも存在します。
UUID は
b46ad2ee-01f3-4041-96ca-91d35d059417
のような
形式です。これを扱うには、getEntryForUUID()
関数を使用します。
UUID からエントリを取得する
<?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() 関数を使用します。
ラベルからエントリを取得する
<?php
require_once 'File/Fstab.php';
$fstab =& new File_Fstab();
$dev =& $fstab->getEntryForLabel('homedirs');
if (PEAR::isError($dev)) {
die($dev->getMessage());
}
?>
fstab ファイルの読み込みに加えて、それを変更することもできます。
フロッピーディスク用のエントリを追加する
<?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);
?>