4.12. Mount Bind e Context-Dependent Path Names
I file system GFS2 non forniscono alcun supporto per i Context-Dependent Path Name (CDPN), i quali permettono all'utente di creare link simbolici che indicano file o directory a destinazione variabili. Per questa funzionalità in GFS2, è possibile utilizzare l'opzione
bind
del comando mount
.
L'opzione
bind
del comando mount
permette di rimontare parte della gerarchia del file su di una posizione diversa, pur restando disponibile nella posizione originale. Di seguito viene riportato il formato del comando:
mount --bind olddir newdir
Dopo aver eseguito questo comando i contenuti della directory
olddir
saranno disponibili in due posizioni: olddir
e newdir
. È possibile utilizzare questa opzione per rendere disponibile un file singolo in due posizioni.
Per esempio, dopo aver eseguito i seguenti comandi i contenuti di
/root/tmp
risulteranno identici ai contenuti della directory /var/log
precedentemente montata.
[root@menscryfa ~]#cd ~root
[root@menscryfa ~]#mkdir ./tmp
[root@menscryfa ~]#mount --bind /var/log /root/tmp
Alternativamente potrete utilizzare una entry all'interno del file
/etc/fstab
in modo da avere gli stessi risultati al momento dell'esecuzione del mount. La suddetta entry di /etc/fstab
permetterà ai contenuti di /root/tmp
di essere identici ai contenuti della directory /var/log
.
/var/log /root/tmp none bind 0 0
Dopo aver montato il file system è possibile utilizzare il comando
mount
per controllare il montaggio del file system, come riportato nel seguente esempio.
[root@menscryfa ~]# mount | grep /tmp
/var/log on /root/tmp type none (rw,bind)
Con un file system in grado di supportare il Context-Dependent Path Nam, potrete definire la directory
/bin
come un Context-Dependent Path Name risolvibile in uno dei seguenti percorsi, a seconda dell'architettura del sistema.
/usr/i386-bin /usr/x86_64-bin /usr/ppc64-bin
È possibile ottenere la stessa funzionalità creando una directory
/bin
vuota. Successivamente utilizzando uno script o una entry nel file /etc/fstab
, è possibile montare ogni directory individuale dell'architettura sulla directory /bin
, con un comando mount -bind
. Per esempio, è possibile usare il seguente comando all'interno di uno script.
mount --bind /usr/i386-bin /bin
Alternativamente potrete utilizzare la seguente entry all'interno del file
/etc/fstab
.
/usr/1386-bin /bin none bind 0 0
Un mount bind può fornire una maggiore flessibilità rispetto ad un Context-Dependent Path Name, poichè l'utente sarà in grado di usare questa caratteristica per montare directory diverse in base al criterio da lui definito (come ad esempio il valore di
%fill
per il file system). I Context-Dependent Path Names risultano molto più limitati nel contenuto. Da notare tuttavia che sarà necessario scrivere il proprio script per eseguire il mount in base al valore di %fill
.
Avvertimento
Se montate un file system utilizzando l'opzione
bind
ed il file system originale è stato precedentemente montato in modalità rw
, il nuovo file system sarà anch'esso montato in modalità rw
, anche se utilizzate il flag ro
; il flag ro
verrà ignorato senza generare alcun messaggio. In questo caso, il nuovo file system potrebbe essere contrassegnato in modo non corretto come ro
nella directory /proc/mounts
.