La classe File_Fstab_Entry représente toutes les informations disponibles d'une entrée particulière d'un fichier Fstab.
Une entrée a un nombre de propriétés qui représente les informations d'un fichier Fstab.
C'est le chemin du bloc du périphérique pour cette entrée. $device, $uuid, et $label sont mutuellement exclusives ; uniquement un des trois peuvent être positionnés.
L'UUID du périphérique.
Le libellé de ce périphérique.
Le dossier dans lequel ce périphérique est monté.
Le type du système de fichiers sur le périphérique $device.
Tableau d'options de montage pour ce périphérique.
Si le périphérique doit être sauvegardé avec dump ou non.
Si le pétriphérique doit être vérifié avec fsck lors du démarrage du système, ou non.
Vous devriez lire le man fstab(5) pour plus d'informations sur la signification de ces entrées.
Il y a plusieurs façons de trouver une entrée spécifique depuis le fichier fstab. Votre recherche peut se baser sur le périphérique, son point de montage, le libellé du système de fichiers ou sur son UUID.
Pour effectuer une recherche basée sur le périphérique, utilisez la fonction getEntryForDevice(). Le seul argument accepté par cette fonction est le chemin vers le bloc du périphérique pour une entrée.
Récupération d'une entrée par le périphérique
<?php
require_once 'File/Fstab.php';
$fstab =& new File_Fstab();
$dev =& $fstab->getEntryForDevice('/dev/hda1');
if (PEAR::isError($dev)) {
die($dev->getMessage());
}
?>
Vous pourriez vouloir rechercher un périphérique en vous basant sur le point de montage ; par exemple, vous pourriez vouloir récupérer l'entrée pour /cdrom, sans vous soucier si le périphérique CD est /dev/hdb, /dev/cdrom, ou un autre périphérique. Pour cela, utilisez la fonction getEntryForPath().
Récupération d'une entrée par le point de montage
<?php
require_once 'File/Fstab.php';
$fstab =& new File_Fstab();
$dev =& $fstab->getEntryForPath('/cdrom');
if (PEAR::isError($dev)) {
die($dev->getMessage());
}
?>
Quelques systèmes utilisent un UUID sur le système de fichiers pour spécifier le périphérique à monter. Un UUID ressemble à ceci : b46ad2ee-01f3-4041-96ca-91d35d059417. La fonction getEntryForUUID() gère ceci.
Récupération d'une entrée par l'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());
}
?>
Quelques systèmes de fichiers vous permettent de spécifier un libellé textuel à un système de fichiers. Par exemple, vous pouriez nommer votre périphérique racine comme rootdev, le périphérique sur lequel sera monté votre /home pourrait être nommé homedirs et ainsi de suite. File_Fstab supporte la récupération des entrées en se basant sur le libellé du périphérique. Cela s'effectue en utilisant la fonction getEntryForLabel().
Récupération d'une entrée par le libellé
<?php
require_once 'File/Fstab.php';
$fstab =& new File_Fstab();
$dev =& $fstab->getEntryForLabel('homedirs');
if (PEAR::isError($dev)) {
die($dev->getMessage());
}
?>
En plus de lire les fichiers fstab, vous pouvez les modifier à loisir.
Ajout d'une entrée pour un lecteur de disquette
<?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);
?>