"Mountages" en tout genre |
||
|
mount -f type-de-filesystem -o options filesystem-à-monter répertoire-de-montage
Les types les plus courants sont:
- ext2 (type par défaut), c'est le filesystem linux par
défaut,
- vfat, FAT16 ou FAT32 de Win95 ou Win98,
- nfs, filesystem distant se trouvant sur une autre machine,
Sans la mention de -o options, on a les options par défaut,
qui sont:
- rw, lecture et écriture
- suid, prise en compte les bits Set-UID ou
Set-GID des fichiers se trouvant sur le système monté,
- dev, interpréter les fichiers
spéciaux de périphériques présents
sur le système de fichiers (voir le cours unix
pour la signification de fichiers spéciaux),
- exec, permet l'exécution de fichiers binaires,
- async toutes les entrées/sorties sur le système
de fichiers seront asynchrones (comprenne qui pourra ;-) ...)
D'autres options existent qu'on peut illustrer par cet exemple:
mount -t vfat -o uid=5001,gid=5000,umask=022 /dev/hda1 /windoze
Cette commande permet de monter la partition Windows identifiée
par /dev/hda1 dans le répertoire /windoze, l'utilisateur
avec l'uid 5001, et appartenant au groupe de gid
5000, sera propriétaire
de tous les fichiers. Quand ce dernier créera un fichier, celui-ci
aura pour droit 755 (rwxr-xr-x) qui correspond à un umask de 022
en notation octale, pour simplifier 0 correspond à 7 (rwx),
2 à 5(r-x), 1 à 6(rw-), et 3 à 4(r--).
Pour monter un file system nfs (répertoire /alphonse
de la station distante obelix) sur le répertoire d'accrochage
/alphonse, on tapera:
mount -t nfs obelix:/alphonse /alphonse
Pour monter une disquette DOS, on tapera:
mount -t vfat /dev/fd0 /mnt/floppy
NOTE: Le répertoire d'accrochage doit exister, vous devez préalablement le créer avant montage.
La commande umount sert à démonter le filesystem, elle a deux syntaxes possibles:
umount filesystem
ou
umount répertoire-d'acrrochage
Généralement on appelera mount dans une ligne de commande que dans des cas bien précis, on peut tout mettre dans un fichier appelé au boot ou à l'action de la commande mount -a.
filesystem répertoire-d'accrochage type de filesystem options de montage paramètre pour dump (commande de sauvegarde) paramètre pour fsck
Pour le paramètre de dump, si on a 0 cela signifie que
le filesystem en question ne sera pas sauvegardé à l'appel
de dump. Il le sera dans le cas contraire.
Le dernier paramètre correspond à l'ordre dans lequel
fsck devra vérifier les filesystems, le premier (celui avec
numéro 1), doit être nécessairement la partition
/, les autres peuvent être à 2, pour ne demander de vérification,
il suffit de mettre 0.
Quelques exemples maintenant:
Montage d'une partition windows dans le répertoire /windoze, l'utilisateur ayant l'uid 5001 et appartenant au groupe d'uid 5000 en sera le propriétaire, les fichiers créés dans cette partition auront pour droit 755 (umask=022 voir plus haut). Les options par défaut sont: rw,suid, dev, exec, auto, nouser, et async.
/dev/hda1 /windoze vfat uid=5001,gid=5000,umask=022,defaults 0 0
Montage d'une disquette dans le répertoire /mnt/floppy:
/dev/fd0 /mnt/floppy auto sync,user,noauto,nosuid,nodev,unhide 0 0
Le type de filesystem auto permet en fait de tester les types
suivants : minix, ext, ext2,
xia,
iso9660, il n'y a pas vfat dans la liste, c'est pourquoi
je vous conseille de changer auto en
vfat, si vous n'avez
l'habitude de monter que des disquettes DOS.
L'option user permet qu'un utilisateur ordinaire non root, puisse
monter la disquette, pour cela il lui suffira de taper:
mount /dev/fd0 ou /mount /mnt/floppy
L'option noauto permet que la disquette ne soit pas montée au boot, il faut explicitement taper une des deux commandes citées précédemment. On rajoute les options nodev (pas d'interprétation des fichiers spéciaux) et nosuid (pas de prise en compte des bit suid) pour des raisons de sécurité. L'option unhide permet de visualiser aussi les fichiers cachés.
Pour monter un filesystem nfs, on tapera la ligne:
obelix:/alphonse /alphonse nfs defaults 0 0
Une fois que /etc/fstab a été modifiée, il faut soit rebooter pour prendre en compte les modifications, ou tout simplement taper:
mount -a
Tous les filesystems indiqués dans le fichier seront montés sauf ceux qui possèdent l'option noauto, qui demande la saisie explicite de la commande mount (exemple plus haut avec la disquette).
ATTENTION: Vous devez faire en sorte que les uid et gid de vos utilisateurs soient strictement identiques entre votre serveur NFS et vos clients NFS, le mieux est de configurer un domaine NIS.
Configurer la partie serveur NFS
Pour cela on doit configurer la partie serveur, le poste linux qui
partagera ses répertoires.
Pour cela on doit installer sur une Mandrake 6.1 le package knfsd-1.4.1-2mdk.i586.rpm
(pour
kernel NFS) que vous trouverez sur le CD d'install.
Le fichier de lancement de nfs, nfs, se trouve
sous /etc/rc.d/init.d (automatique à l'installation par RPM)
Maintenant vous devez mettre en place les liens suivants (automatique à l'installation par RPM):
ln -s /etc/rc.d/init.d/nfs /etc/rc0.d/K20nfs
ln -s /etc/rc.d/init.d/nfs /etc/rc1.d/K20nfs
ln -s /etc/rc.d/init.d/nfs /etc/rc2.d/K20nfs
ln -s /etc/rc.d/init.d/nfs /etc/rc3.d/S60nfs
ln -s /etc/rc.d/init.d/nfs /etc/rc4.d/S60nfs
ln -s /etc/rc.d/init.d/nfs /etc/rc5.d/S60nfs
ln -s /etc/rc.d/init.d/nfs /etc/rc6.d/K20nfs
Ca y est c'est fini au prochain reboot, votre machine sera serveur NFS, si vous ne voulez pas attendre le reboot tapez:
/etc/rc.d/init.d/nfs start
Maintenant nous allons configurer les répertoires à exporter et vers quelles machines. Tout cela se passe dans le fichier /etc/exports de la machine serveur NFS qui a pour nom obelix, admettons que vouliez exporter "partager" votre répertoire /alphonse à la station zoulou en lecture écriture (rw) et en lecture seule (ro) à shuttle, le fichier contiendra donc:
/alphonse zoulou(rw) shuttle(ro)
Pour que le fichier soit pris en compte, en tant que root vous devez taper:
exportfs -a
NOTE: A chaque modification de ce fichier, vous devrez taper cette commande pour que la modification soit prise en compte.
Configuration de la partie cliente NFS
Sur une machine cliente NFS pour monter des filesystems exportés
par un serveur NFS, vous devez modifier le fichier /etc/fstab. En
reprenant notre exemple, sur la machine cliente zoulou, cela donnera la
ligne supplémentaire (en plus des montages de partitions habituelles):
obelix:/alphonse /alphonse nfs defaults 0 0
/alphonse (deuxième champ de la ligne) étant le point de montage sur zoulou, c'est un réperoire à créer.
ATTENTION: Ce répertoire doit être vide avant tout montage.
Pour prendre en compte le montage vous devez taper:
mount -a
smbmount //windoze/marcel -U toto%mot-de-passe -c "mount /marcel -g 5000 -u 5001"
On va donc monter le partage dans le répertoire /marcel, l'utilisateur toto (uid 5001, du groupe ayant le gid 5000 )sera propriétaire des fichiers.
ATTENTION: Cela marche très bien sous RH6.0 ou Mandrake 6.0, qui possède la version 2.0.3 de smbmount, par contre sous RH6.1 ou Mandrake6.1 qui possède la version 2.0.5a, l'option -c a disparu, donc pas moyen de lui spécifier un nom d'utilisateur propriétaire des fichiers.
Installation
Pour installer l'automonteur, vous devez installer le package autofs-3.1.3-5mdk.i586.rpm
se trouvant sur votre CD d'install. Ce dernier en plus d'installer l'exécutable
/usr/sbin/automount, installe le fichier de lancement autofs
sous /etc/rc.d/init.d. L'installation RPM m'a installé des
liens un peu n'importe comment dans les répertoires /etc/rc.d/rcX.d,
les voici:
./rc0.d/K08autofs
./rc1.d/K08autofs
./rc2.d/K08autofs
./rc3.d/K08autofs
./rc4.d/K08autofs
./rc5.d/K08autofs
./rc6.d/K08autofs
Le problème est que, quelque soit l'état de marche, l'automounter n'est jamais lancé, on va modifier tout ça:
rm -f /etc/rc.d/rc3.d/K08autofs /etc/rc.d/init.d/rc4.d/K08autofs /etc/rc.d/init.d/rc5.d/K08autofs
et on crée les liens suivants:
ln -s /etc/rc.d/init.d/autofs /etc/rc.d/rc3.d/S92autofs
ln -s /etc/rc.d/init.d/autofs /etc/rc.d/rc4.d/S92autofs
ln -s /etc/rc.d/init.d/autofs /etc/rc.d/rc5.d/S92autofs
Attendez maintenant l'installation de la machine serveur NFS et la fin de la configuration des filesystem à monter pour lancer l'automonteur.
NOTE: Rappelez vous que j'ai une page qui explique comment marche le lancement automatique au boot des services de la machine.
Configuration de la machine serveur
Vous devez configurer la machine qui souhaite partager ses filesystems,
la configuration est en tout point identique à celle d'un serveur
NFS. Vous devez installer le package NFS server et configurer /etc/exports.
Si l'on veut partager par exemple le répertoire /alphonse et
/roger aux machines zoulou en lecture, écriture et
le répertoire /rogeren lecture seule à shuttle,
et le /mnt/cdrom (le répertoire de montage du CD-ROM) à
tout le monde, voici le contenu du dit-fichier.
/alphonse zoulou(rw)
/roger shuttle(ro)
/mnt/cdrom
N'oubliez pas de taper en tant que root exportfs -a pour que le fichier soit pris en compte.
NOTE: C'est particulièrement intéressant de pouvoir exporter des répertoires comme /mnt/zip, /mnt/jaz si vous voulez partager votre lecteur zip ou jaz.
Configuration de l'automontage sur la machine cliente
Admettons que le serveur NFS se nomme obelix, sur la machine
cliente, on voudra monter les filesystems nfs /alphonse,
/roger
et /mnt/cdrom dans /obelix. On souhaite donc avoir l'arborescence
suivante sur la machine cliente après automontage:
/obelix | roger | |||
alphonse | ||||
mnt | cdrom |
Pour cela on va créer un fichier /etc/auto.master contenant:
/obelix /etc/auto.obelix --timeout 60
/obelix est donc le point de montage des différents filesystems
exportés par obelix, timeout (en secondes) est le
temps au bout duquel les filesystems seront automatiquement démontés,
s'ils sont non utilisés (non accédés).
On crée ensuite le fichier /etc/auto.obelix contenant:
roger
-fstype=nfs
obelix:/roger
alphonse -fstype=nfs
obelix:/alphonse
cdrom -fstype=nfs
obelix:/mnt/cdrom
Ca y est, on peut lancer l'automonter sur la machine cliente, soit en rebootant, soit en lançant:
/etc/rc.d/init.d/autofs start
Utilisation
A l'utilisation l'automontage est particulièrement déconcertant,
allez dans le répertoire /obelix, et tapez ls, vous verrez
qu'il est vide ! Les répertoires roger, alphonse et
mnt/cdrom n'ont pas été montés. Et pour cause
vous n'y avez pas encore accédé, vous devez taper explicitement
cd /obelix/roger pour que le répertoire /roger se
monte. Au bout de 60 secondes, d'inactivité, le répertoire
sera automatiquement démonté et obelix paraîtra
à nouveau vide.
Ceci impose de connaître au préalable les noms des filesystems
exportés.