Montage de CD Freebsd. Système de fichiers FreeBSD : hiérarchie et montage. Création d'un système de fichiers en mémoire

J'ouvre une série de mini-manuels "pour ceux qui ne savent pas utiliser la recherche et qui posent des questions stupides". Le sujet d'aujourd'hui concerne le montage et le démontage de disques dans FreeBSD.

Nous souhaitons donc accéder aux données sur un disque dur ou une clé USB supplémentaire. Pour ce faire, nous devons le connecter (monter) à un répertoire vide, après quoi nous aurons accès aux données de ce disque dans le dossier que nous avons créé/existant précédemment. (IMPORTANT : ne montez pas le disque dans des répertoires déjà occupés, vous recevrez par exemple le contenu de votre disque, au lieu du contenu du dossier des fichiers de configuration, pensez aux conséquences pour vous-même ;))

Tout d’abord, créez un dossier vide. Imaginons que l'utilisateur shitus veuille connecter le disque à un nouveau répertoire appelé pron. Pour cela il crée nouveau dossier dans son répertoire personnel (probablement l'endroit le plus sûr).

Mkdir /home/shitus/pron La prochaine étape consiste à se connecter disque dur au point de montage (nous venons de créer un dossier). Vous pouvez trouver tous les appareils de votre système dans le dossier /dev/. Dans mon cas, je souhaite connecter mon appareil /dev/da2 au dossier /home/shitus/pron

Monter /dev/da2 /home/shitus/pron Vous pouvez maintenant afficher le contenu de votre disque dans le répertoire ci-dessus.

Comment connecter d'autres systèmes de fichiers non BSD

Dans mon cas, nous avons une clé USB avec le système de fichiers Fat32. Ainsi, lors d'un montage sur BSD, vous devez clairement indiquer le type de système de fichiers utilisé.

Monter -t msdosfs /dev/da2s1 /home/shitus/pron/

Pour les autres systèmes de fichiers, vous pouvez vous référer à la documentation de FreeBSD, je ne donnerai pas de lien, car Google c'est tout.

Comment démonter/démonter un système de fichiers

Disons que vous souhaitez déconnecter/supprimer un périphérique de fichiers connecté. Il peut y avoir de nombreuses raisons à cela, principalement si vous souhaitez effacer le disque ou le reconnecter à un autre point de montage. La commande est très simple -

Umount /home/shitus/pron/

Assurez-vous que vous n'êtes pas dans ce dossier lors de l'exécution de cette commande, sinon le résultat sera zéro.

Si vous souhaitez monter un disque au démarrage du système, vous devez alors l'enregistrer dans le fichier /etc/fstab de la même manière que ceux déjà enregistrés. Vous pouvez également en savoir plus à ce sujet dans la documentation, ou un jour j'écrirai à ce sujet pour la centième fois.

Ils doivent être montés et lorsque toutes les actions nécessaires sont terminées, ils doivent être démontés. Habituellement, les commandes mount(8) / umount(8) sont utilisées pour monter/démonter, et personne ne pense à automatiser ces opérations. À mon avis, ce n'est pas l'approche la plus optimale, surtout si l'on considère que la composition système opérateur FreeBSD inclut un démon de montage automatique spécial.

Formulation du problème

Le démon de montage automatique du système d'exploitation FreeBSD amd(8) est conçu pour monter de manière transparente absolument tous les systèmes de fichiers lors de l'accès aux fichiers et dossiers qui s'y trouvent, ainsi que pour démonter ultérieurement ces systèmes de fichiers s'il n'y a aucune activité pendant une période spécifiée de temps. Cet article concerne la configuration d'AMD pour monter automatiquement les systèmes de fichiers exportés par les serveurs NFS et les dossiers partagés fournis par les serveurs SMB. De plus, il décrit le diagnostic d'amd à l'aide de l'utilitaire amq(8) et l'allocation de son propre journal à l'aide des outils standard de gestion des journaux syslogd(8) et newsyslog(8) .

Donnée initiale

Pour résoudre ce problème, vous n'aurez besoin d'aucun logiciel supplémentaire, mais vous devrez en créer un qui permettra au superutilisateur root de monter les dossiers partagés sélectionnés fournis par les serveurs SMB sans saisir de mot de passe.

Montage automatique des systèmes de fichiers NFS

Pour assurer le montage automatique des fichiers de fichiers Systèmes NFS ajoutez simplement la ligne au fichier /etc/rc.conf :

Amd_enable="OUI"

et démarrez amd avec la commande /etc/rc.d/amd start . Par défaut, amd utilisera le dossier alternatif /.amd_mnt et signalera son état à la section démon journal système et autorisez le montage des systèmes de fichiers NFS dans les dossiers du système de fichiers local /host et /net conformément à la carte de montage /etc/amd.map (cette carte de montage est incluse avec le système d'exploitation FreeBSD et contient des règles régissant la façon dont les systèmes de fichiers NFS sont montés et démontés à l'aide du système de fichiers hôte réseau). Si nous traduisons ce qui a été dit en langage humain, immédiatement après le démarrage d'AMD, vous pourrez accéder au système de fichiers partagé exporté par le serveur NFS nfsserver en tant que dossier local normal nommé /host/nfsserver/share ou /net/nfsserver/ partager. Pour un tel accès et que le système de fichiers requis ne figure pas dans la liste des systèmes de fichiers montés, amd créera un point de montage /.amd_mnt/nfsserver/host/share , y montera le système de fichiers partagé, créera un dossier /host/nfsserver ou /net/nfsserver et ajoutez-y un lien symbolique vers le point de montage ci-dessus. Si /host/nfsserver/share ou /net/nfsserver/share n'est pas utilisé pendant 5 minutes, amd démontera le système de fichiers partagé, puis supprimera le système de fichiers existant. dossiers inutiles et un lien symbolique.

Montage automatique des systèmes de fichiers SMBFS

Pour activer le montage automatique des systèmes de fichiers SMBFS, vous devrez créer une ou plusieurs cartes de montage supplémentaires, chacune devant contenir des règles basées sur l'utilisation du système de fichiers du programme. Pour pouvoir contacter dossiers partagés En utilisant des noms de modèles tels que /smbfs/smbserver/share, vous devez allouer une carte de montage distincte pour chaque serveur SMB. Par exemple, pour spécifier les règles de montage pour les dossiers partagés share1 et share2 fournis par le serveur SMB smbserver, vous pouvez créer une carte de montage nommée /etc/amd.map-smbserver (vous pouvez modifier ce nom selon vos propres goûts) et ajoutez-y les lignes suivantes :

Share1 type:=program;fs:=$(autodir)/$(path);mount:="/sbin/mount mount -t smbfs \\\/\\\/user@smbserver/share1 $(fs)"; share2 type:=program;fs:=$(autodir)/$(path);mount:="/sbin/mount mount -t smbfs \\\/\\\/user@smbserver/share2 $(fs)";

Les règles spécifiées forceront amd à monter les dossiers partagés sur le point de montage $(autodir) (la variable $(autodir) contient le nom du dossier alternatif) avec les commandes /sbin/mount -t smbfs //user@smbserver/share .... L'absence de l'option umount ou unmount nécessite l'utilisation des commandes de démontage par défaut umount $(fs) (la variable $(fs) contient le nom du point de montage).
Pour associer la mappe de montage créée au point de montage /smbfs/smbserver, vous devez ajouter la ligne suivante au fichier /etc/rc.conf :

Amd_flags="$amd_flags /smbfs/smbserver /etc/amd.map-smbserver"

et redémarrez amd avec la commande /etc/rc.d/amd restart . Immédiatement après avoir terminé ces étapes, vous pourrez accéder aux dossiers partagés share1 et share2 fournis par le serveur SMB smbserver comme d'habitude. dossiers locaux/smbfs/smbserver/share1 et /smbfs/smbserver/share2 .

Analyser l'état d'amd à l'aide de l'utilitaire amq

Pour connaître rapidement l'état actuel d'amd, vous pouvez utiliser la commande amq -m, conçue pour afficher une liste des systèmes de fichiers montés, y compris le nombre de liens vers chacun d'eux et contenant des informations sur les erreurs de montage, quelque chose comme ceci :

"root" root 1 localhost est actif /etc/amd.map /host toplvl 1 localhost est actif /etc/amd.map /net toplvl 1 localhost est actif /etc/amd.map-smbserver /smbfs/smbserver toplvl 1 localhost est up nfsserver:/host/nfsserver /.amd_mnt/nfsserver host 1 nfsserver est up mount -t smbfs //user@smbserver/share1 ... /.amd_mnt/smbfs/smbserver/share1 programme 1 localhost est up

La première colonne de ce tableau contient le nom de la carte de montage pour les points de montage ou les options de montage pour les systèmes de fichiers montés, la deuxième est le nom du point de montage et la troisième est le type de système de fichiers. systèmes amd, le quatrième est le nombre de liens vers le point de montage ou le système de fichiers, le cinquième est le nom de l'ordinateur sur lequel se trouve le système de fichiers, le sixième est l'état du point de montage ou du système de fichiers, le septième est l'erreur de montage messages (s'il n'y a pas d'erreurs, la septième colonne n'est pas affichée). Étant donné que amd et le rpcbind(8) qu'il exécute prennent en charge les wrappers TCP, l'exécution de la commande amq -m peut entraîner des messages d'erreur similaires aux suivants :

Amq : localhost : RPC : échec du mappeur de port - RPC : erreur d'authentification amq : localhost : RPC : erreur d'authentification ; pourquoi = Échec (erreur non spécifiée)

Pour éliminer ces erreurs, vous devez ajouter des règles au fichier /etc/hosts.allow qui autorisent l'accès à amd et rpcbind depuis localhost :

Amd : 127.0.0.1 : autoriser amd : ALL : refuser rpcbind : 127.0.0.1 : autoriser rpcbind : ALL : refuser

Fournir à Amd son propre journal

Les options de démarrage par défaut dans /etc/defaults/rc.conf obligent amd à signaler son état à la section démon du syslog. Si vous souhaitez fournir à AMD un journal séparé appelé /var/log/amd.log , vous devrez rediriger ces messages vers une autre section syslog (local6 dans mon cas) et également modifier la configuration du démon syslogd en conséquence.
Compte tenu de tous les changements dans les fichiers de configuration décrits dans cet article, afin de rediriger les messages amd vers le log /var/log/amd.log, vous devez d'abord modifier la définition de la variable amd_flags dans le fichier /etc/rc. conf sous cette forme :

Amd_flags="-a /.amd_mnt -l syslog:local6 /host /etc/amd.map /net /etc/amd.map /smbfs/smbserver1 /etc/amd.map-smbserver1"

et redémarrez amd avec la commande /etc/rc.d/amd restart , et dans un deuxième temps, ajoutez la ligne au fichier /etc/syslog.conf :

Local6.* /var/log/amd.log

créez un journal vide avec la commande touch /var/log/amd.log et redémarrez syslogd avec la commande /etc/rc.d/syslogd restart.
Pour empêcher la croissance du journal amd, vous devez activer sa rotation à l'aide de l'utilitaire newsyslog. Par exemple, pour tronquer quotidiennement le journal /var/log/amd.log tout en préservant les sept copies précédentes compressées avec l'archiveur bzip2(1), vous devez ajouter la ligne suivante au fichier /etc/newsyslog.conf :

/var/log/amd.log 644 7 * @T00 JC

Conclusion

Après avoir terminé les étapes décrites dans cet article, vous n'aurez plus à vous soucier du montage et du démontage des systèmes de fichiers NFS et SMBFS. J'espère que vous trouverez cette opportunité utile et que vous ferez attention à amd.

depuis

La préparation de l'espace disque à utiliser ne se limite pas à la création de partitions et de systèmes de fichiers. Tous les systèmes de fichiers créés doivent également être mis à disposition de FreeBSD. Pourquoi devraient-ils être montés, c'est-à-dire inclus dans une hiérarchie unique de répertoires et de fichiers, également désignée par le nom du système de fichiers. Cependant, si plus tôt nous parlions de organisation physique données, il est maintenant temps de vous familiariser avec sa logique.

Logique du système de fichiers

Logiquement, le système de fichiers FreeBSD (comme tout système Unix) est organisé selon un principe arborescent : à sa base se trouve la racine (le répertoire racine, désigné par le symbole / et aussi appelé répertoire racine ; ce dernier ne doit pas être confondu avec le répertoire racine /, qui sert de répertoire personnel au superutilisateur).

À partir du répertoire racine, qui peut ressembler davantage à un tronc d'arbre, il y a des branches - des sous-répertoires imbriqués et des pousses - des fichiers ordinaires. Ces derniers sont cependant peu nombreux : dans Versions FreeBSD il s'agit d'une sorte de fichier d'entropie (/entropie) et d'un fichier décrivant les droits d'auteur du système /COPYRIGHT.

Mais il y a beaucoup de sous-répertoires dans le répertoire racine, et certains d'entre eux sont disposés de manière très complexe à l'intérieur, contenant un bon nombre de sous-répertoires imbriqués de niveaux plus profonds.

En principe, la hiérarchie des répertoires dans tous les systèmes Unix est similaire, puisqu'elle est réglementée, d'une part, par une tradition de longue date, et d'autre part, par toutes sortes de documents standardisés, notamment le FHS (Filesystem Hierarchy Standard), qui est désormais disponible en traduction russe (pour laquelle merci Viktor Kostromin).

Le standard FHS a été initialement développé pour organiser la structure de répertoires de nombreuses distributions Linux. Et ce n'est que plus tard qu'il a été adapté à d'autres systèmes de type Unix (y compris le clan BSD). Cependant, c'est la hiérarchie des répertoires FreeBSD qui peut servir d'exemple d'adhésion exemplaire à l'esprit du FHS. Et littéralement, les écarts individuels par rapport à sa lettre sont toujours déterminés fonctionnellement.

La norme FHS repose sur deux principes fondamentaux : une séparation claire dans la hiérarchie des fichiers entre répertoires partagés et non partagés, d'une part, et immuable et mutable, d'autre part.

Le contraste entre les répertoires partagés et non partagés est dû à la nature réseau inhérente d'Unix en général et de FreeBSD en particulier. Autrement dit, les données liées à la machine locale (par exemple, les fichiers de configuration de ses périphériques) doivent être situées dans des répertoires distincts de ceux dont le contenu est accessible depuis d'autres machines du réseau, locales ou globales (dont un exemple n'est pas seulement l'utilisateur données, mais aussi programmes) .

L'essence du contraste entre les répertoires immuables et mutables peut être facilement expliquée à l'aide d'un exemple. Ainsi, les mêmes programmes utilisateur doivent, de par leur nature, être immuables (ou plutôt disponibles pour modification uniquement pour l'administrateur système, mais pas pour l'utilisateur lui-même qui les utilise dans son travail). En même temps, ces programmes, au cours de leur fonctionnement, génèrent non seulement des fichiers de données, par exemple des textes ou des images (leur caractère variable est clair sans commentaire), mais également toutes sortes d'informations de service, telles que des fichiers journaux, des fichiers temporaires et des comme). Lesquels doivent être regroupés dans des répertoires séparés des fichiers exécutables réels des programmes, bibliothèques, fichiers de configuration, etc., nécessaires à leur lancement.

Le strict respect du concept de séparation des répertoires partagés et non partagés, immuables et immuables les uns des autres permet, au sein d'une seule hiérarchie de fichiers arborescente, d'isoler physiquement ses branches individuelles, c'est-à-dire sous la forme de systèmes de fichiers indépendants situés sur périphériques isolés (disques, tranches de disque, partitions ; dans le cas général - et sur des supports distants connectés au réseau, mais cela ne sera pas abordé maintenant). Il y a de nombreuses raisons à cela - une vitesse croissante, une fiabilité accrue et simplement des considérations de commodité - mais nous n'en parlerons pas maintenant. Car désormais, tout ce qui nous importe, c'est que ces branches de l'arborescence de fichiers doivent être intégrées dans le système de fichiers global.

Dans les systèmes Unix, chaque fichier (y compris un répertoire) est reconnu par le système non pas par son nom, mais par l'identifiant unique de son entrée dans la table. inodes. Il existe des outils pour afficher ces identifiants de fichiers. L'une est la commande ls avec l'option -i, qui imprimera les ID de chaque fichier nommé. Donné pour le répertoire racine -

$ ls -i /

cela nous montrera une image quelque peu inattendue (pour simplifier la sortie, les informations sur les fichiers normaux et les liens symboliques à la racine sont exclues de la sortie, et les répertoires restants sont triés par leurs identifiants) :

2 ../ 2 ./ 2 dev/ 2 home/ 2 tmp/ 2 usr/ 2 var/ 3 cdrom/ 4 mnt/ 5 root/ 8257 dist/ 8258 bin/ 8294 proc/ 8295 sbin/ 16512 stand/ 24768 etc/ 24776 botte/

À partir de cet exemple (relatif au système de fichiers de la machine sur laquelle ces lignes sont écrites), il est clair que jusqu'à 7 répertoires ont les mêmes identifiants numériques, égaux à 2. La question est : quelle est l'unicité ici ?

Les deux premiers éléments de la liste sont faciles à comprendre : ./ représente le répertoire courant (dans ce cas, la racine), et ../ est le répertoire parent du répertoire courant ; et comme, par définition, il n'y a rien au-dessus de la racine dans la hiérarchie des fichiers, cette dernière se désigne elle-même. Il n'est donc pas surprenant que ./ et ../ aient le même identifiant - ce sont des désignations différentes (liens physiques ou, en d'autres termes, noms en double) pour le même répertoire racine.

Mais comme cela semble à première vue, la signification de l'identifiant des répertoires /dev, /home, /tmp, /usr, /var nécessite une explication. Cependant, c'est simple : ce sont tous des répertoires dans lesquels des systèmes de fichiers indépendants sont montés, soit situés sur des périphériques séparés - des partitions de disque, telles que les répertoires /home, /usr, /var, ou des systèmes de fichiers virtuels qui ne s'appuient pas sur n'importe quel périphérique de disque réel (le répertoire /dev avec le système de fichiers du périphérique et, dans ce cas, le répertoire /tmp, dans lequel le système de fichiers en RAM est monté, ce qui sera discuté plus tard). Et depuis la table inodes- différent pour chaque système de fichiers, il n'est pas étonnant que la racine de chacun d'entre eux soit identifiée par le chiffre 2 - numérotation inodes en eux va dans son propre cadre de référence.

Ainsi, le montage est l'inclusion d'un fichier du système dans l'un des répertoires existant dans le système racine (pas nécessairement directement à la racine, il peut s'agir de n'importe quel degré d'imbrication, comme illustré ci-dessous). Sans cela, les répertoires et fichiers d'un tel système monté sont tout simplement inaccessibles. Il est important de comprendre cela lorsque vous rencontrez des expressions telles que « créer le système de fichiers /usr ». D'après ce qui précède, il est évident que ce qui est créé (par la commande newfs) est simplement une sorte de système de fichiers abstrait, et il n'acquiert son « nom » qu'au moment de le monter dans le répertoire spécifié.

Il est intéressant de noter que l'identifiant du répertoire de montage (également appelé point de montage) n'est trouvé qu'au moment du montage. Pour vérifier cela, effectuons une expérience simple. Dans le répertoire /mnt, destiné spécifiquement au montage de systèmes de fichiers montés temporairement), vous pouvez voir trois sous-répertoires - /mnt/disk, mnt/iso, /mnt/usb (c'est sur mon système, je les ai créés pour ma propre convenance ; initialement, le répertoire /mnt était vide dans FreeBSD). Au démarrage du système, rien n'y est monté et leur état habituel est vide. Si vous regardez leurs identifiants, vous pouvez voir quelque chose comme ceci :

$ ls -i /mnt 18 disque/ 24 iso/ 19 usb/

Maintenant, prenons et montons une clé USB avec une interface USB dans /mnt/usb (c'est exactement à cela que je l'avais prévu) et répétons la visualisation. Et on voit :

18 disque/ 24 iso/ 2 usb/

C'est-à-dire que les identifiants des répertoires restés vides (/mnt/disk et /mnt/iso) n'ont pas changé, mais l'identifiant du répertoire /mnt/usb est devenu comme par magie 2. Parce qu'au moment du montage, il est devenu la racine de son propre système de fichiers et le point de référence pour le calcul inodes tous les fichiers enregistrés dessus.

Parlons un peu et rappelons-nous les liens physiques, à travers lesquels le même inode et les blocs de données qui lui sont associés peuvent recevoir des noms différents. Il est désormais clair pourquoi tous ces fichiers en double doivent se trouver dans le même système de fichiers : après tout, différents systèmes de fichiers ont leur propre numérotation qui ne correspond pas. inodes, et il est impossible de les identifier par des numéros (sinon, comment le système ferait-il la distinction entre les répertoires /usr et /var de notre exemple - après tout, il ne se soucie pas des noms de fichiers). Pour les liens symboliques qui ont leur propre inode(en fait, presque rien sauf eux) avec leurs identifiants, numérotés dans le référentiel du système de fichiers dans lequel ils se trouvent, il n'y a pas une telle restriction. Et les liens symboliques peuvent être situés n'importe où (y compris sur une machine distante – pas seulement sur une autre partition).

Revenons cependant à l'exemple de notre répertoire racine. Tout bien considéré, il est clair qu'un certain nombre de ses branches se trouvent sur des partitions distinctes et forment leurs propres systèmes de fichiers (en fait, c'est exactement pourquoi nous les avons créées toutes les deux). Et donc ils doivent tous être montés.

Pratique de montage

Les objectifs de montage sont servis par la commande mount, exécutée soit automatiquement lors du démarrage du système, soit manuellement à partir de ligne de commande. En fait, au sens plein, seul le système de fichiers racine est automatiquement monté dans tous les cas. Il n'est pas nécessaire qu'il se trouve sur le disque : lors du démarrage à partir d'un CD de secours ou d'un autre support de sécurité, il peut être situé sur un disque virtuel en RAM.

Cependant, le processus de montage du système de fichiers racine est aussi inévitable que la victoire du socialisme à l'échelle mondiale : tout comme le socialisme, sans victoire à l'échelle mondiale, perd simplement la capacité d'exister (ce que nous avons récemment observé), de même un Le système d'exploitation ne peut pas exister sans système racine. Sous Linux, cela provoque un mode panique du noyau - à peu près l'état dans lequel nos dirigeants sont tombés il y a environ 20 ans. Certes, ils se sont avérés plus forts que Linux et ont récupéré assez rapidement - donc ils nous redémarrent toujours (ou redémarrent ? - mais nous devenons plus forts :)). Cependant, cela ne s'applique pas à la question de l'installation que je vais essayer de vous présenter maintenant.

Ainsi, pour monter tous les systèmes de fichiers à l'exception de celui racine, vous devez effectuer certaines actions. Nous verrons d'abord comment les réaliser manuellement, puis comment les immortaliser dans les fichiers de configuration appropriés.

Donc, la commande mount. En fait, il s'agit de toute une famille de programmes, chacun étant conçu pour monter des systèmes de fichiers de certains types - non seulement UFS, mais tous ceux pris en charge par FreeBSD. La liste de ceux-ci est assez longue - vous pouvez vous en faire une idée en consultant le répertoire /sbin :

$ ls -1 /sbin/montage*

qu'est-ce qui nous donnera en réponse

/sbin/mount_cd9660* /sbin/mount_devfs* /sbin/mount_ext2fs* /sbin/mount_fdescfs* /sbin/mount_linprocfs* /sbin/mount_mfs* /sbin/mount_msdosfs* /sbin/mount_nfs* /sbin/mount_nfs4* /sbin/mount_ntfs* /sbin/mount_nullfs* /sbin/mount_procfs* /sbin/mount_std* /sbin/mount_udf* /sbin/mount_umapfs* /sbin/mount_unionfs*

Chaque commande de cette liste est responsable du montage d'un type différent de système de fichiers, sur lequel nous reviendrons plus tard. Pour l’instant, notons uniquement /sbin/mount lui-même, conçu pour fonctionner avec UFS et UFS2.

Appelé depuis la ligne de commande, il nécessite deux arguments : le nom du périphérique à monter et le point de montage (c'est-à-dire le répertoire dans lequel le système de fichiers sous-jacent doit être monté). Le nom du périphérique doit indiquer un patricia déjà mappé sur une tranche BSD existante avec un système de fichiers UFS2 (UFS) créé dessus, par exemple :

$ monter /dev/ads0d /usr

monte le système de fichiers sur la partition spécifiée dans le répertoire /usr de la racine de l'arborescence de fichiers. Si le système de fichiers sur l'appareil n'est pas créé ou est d'un type autre que UFS/UFS2, un message d'erreur apparaîtra indiquant un super bloc incorrect : contrairement à l'utilitaire Linux du même nom, la commande de montage FreeBSD elle-même ne peut pas reconnaître le fichier. Type de système.

Les exigences suivantes sont imposées au point de montage : a) un répertoire portant le même nom doit exister au moment du montage, et b) être aussi vide que possible. Le premier est incontournable, mais le second n’est pas tout à fait vrai. Le montage dans un répertoire contenant n'importe quel fichier se déroulera sans problème (je me souviens que sous Linux, il n'y a pas si longtemps, cela provoquait un crash du système), mais tout son contenu deviendra inaccessible jusqu'à ce qu'il soit démonté. Et si les fichiers qu'il contient jouent un rôle important pour un sous-système, cela peut entraîner toutes sortes de conséquences néfastes. Par exemple, si le contenu du répertoire /tmp était bloqué en y montant un système de fichiers pendant que le système X Window était en cours d'exécution, le résultat serait probablement un crash du serveur X. Heureusement, si nécessaire, vous pouvez effectuer un montage combiné (voir ci-dessous).

Sous cette forme, le montage sera effectué avec certaines caractéristiques par défaut : le système de fichiers sera en lecture/écriture dans ce qu'on appelle le mode. noasync (le même dans lequel les opérations de métadonnées sont effectuées de manière synchrone et les opérations de données sont effectuées de manière asynchrone). Cette position peut être modifiée en utilisant les valeurs de l'option -o. Il y en a pas mal, mais pratiquement les principaux pour nous à ce stade seront :

  • async - fournira un mode complètement asynchrone (malgré les terribles avertissements des articles précédents, je parlerai plus tard de la situation dans laquelle cela peut être justifié) ;
  • sync - au contraire, permettant un mode entièrement synchrone (même si je ne comprends pas vraiment pourquoi cela est pratiquement nécessaire) ;
  • noatime est une option très utile qui empêche la mise à jour de l'attribut d'heure du dernier accès au fichier, ce qui améliore considérablement les performances ;
  • rdonly - monte le système de fichiers en mode lecture seule (cela est parfois nécessaire) ;
  • union est la même option qui vous permet d'effectuer un montage union, dans lequel le contenu précédent du répertoire du point de montage reste visible ; vrai - avec quelques limitations - voir man (8) mount .

Il existe plusieurs autres valeurs de l'option -o qui interdisent le placement de certains types de fichiers sur le système de fichiers monté, par exemple les fichiers exécutables (-o noexec), les fichiers de périphérique (-o nodev) ou les fichiers avec ainsi -appelé. un peu de suicide. Cependant, ils revêtent une importance pratique principalement pour les administrateurs de serveurs et servent à des fins de sécurité. Sur un ordinateur de bureau, la forme habituelle de montage ressemblerait à ceci :

$ mount -o noatime /dev/ads0d /usr; $ mount -o noatime /dev/ads0e /var; $ mount -o noatime /dev/ads0f /home

Tout ce qui précède s'applique uniquement au montage des systèmes de fichiers FreeBSD. Cependant, dans la pratique, il est souvent nécessaire d'incorporer d'autres types de systèmes de fichiers dans son arborescence de répertoires. Ceci est particulièrement souvent requis pour ISO9660 (le système de fichiers habituel pour tous les CD sauf ceux Mac) et les FAT de divers types. Dans ce cas, la commande de montage appropriée doit être appelée explicitement, par ex.

$ mount_cd9660 /dev/acd0 /cdrom

pour monter un compact, ou

$ mount_msdosfs /dev/ad## /mnt

pour FAT de tout type (y compris FAT32). Cependant, cela peut également être fait indirectement en spécifiant l'option -t file_system_type à la commande mount. Ainsi, la commande

$ mount -t ext2fs /dev/ad## /mnt/linux

monte le système de fichiers Linux (si la fonctionnalité correspondante est incluse dans le noyau). Dans ce cas, le montage standard des partitions BSD est simplement remplacé par la commande /mount_ext2fs, conçue pour monter les partitions ext2fs (et ext3fs également - mais, bien sûr, sans aucune fonction de journalisation). C'est-à-dire la forme

$ mount -t typefs... ...

sera l'équivalent complet de la commande

$mount_fstype... ...

Toutes les opérations de montage de systèmes de fichiers (y compris sur des supports amovibles) dans FreeBSD nécessitent des droits de superutilisateur. Les valeurs de l'option -o ici, contrairement à la version Linux de la commande mount, n'incluent pas le paramètre utilisateur -o, qui permet le montage pour les utilisateurs ordinaires. Certes, il existe plusieurs façons de contourner ce problème, comme indiqué dans une note spéciale.

Configuration du montage automatique

Cependant, dans la pratique, le montage manuel n'est utilisé que pour les systèmes de fichiers rarement utilisés. Tous les systèmes de fichiers qui sont fondamentalement importants pour le fonctionnement de FreeBSD sont montés automatiquement au démarrage du système, et ceux fréquemment utilisés sont montés en mode semi-automatique, pour ainsi dire.

Pour un montage automatique, le programme de montage est lancé pendant le processus. amorcerà partir des scripts d'initialisation. Il recherche son fichier de configuration - /etc/fstab et monte tout ce qu'il y trouve, à quelques exceptions près (discutées ci-dessous).

Le fichier /etc/fstab lui-même est généré automatiquement lorsque FreeBSD est installé, y compris tous les systèmes de fichiers nécessaires au support de la vie. Cependant, à l'avenir, il pourra être modifié manuellement afin d'ajouter de nouveaux appareils à monter ou des options supplémentaires pour les appareils déjà activés.

Le fichier /etc/fstab est une simple base de données au format texte (champs séparés par des espaces ou des tabulations), comprenant les champs suivants :

  • Périphérique - le nom de fichier du périphérique sur lequel se trouve le système de fichiers, similaire au premier argument de la commande mount lorsqu'elle est utilisée manuellement ;
  • Mountpoint - point de montage (correspond au deuxième argument de la commande mount) ;
  • FStype - type de système de fichiers, également spécifié comme valeur de l'option -t ;
  • Options- options additionelles mount, similaire aux valeurs de l'option -o ;
  • Dump - conditions pour effectuer une sauvegarde du système de fichiers à l'aide de l'utilitaire de dump ;
  • Pass# - conditions de vérification du système de fichiers avec l'utilitaire fsck.

Dans un FreeBSD fraichement installé /etc/fstab comportera obligatoirement les entrées suivantes (exemple pour la 1ère tranche du disque Maître sur le 1er canal IDE) :

# Options de point de montage FStype du périphérique Dump Pass# /dev/ad0s1a / ufs rw 1 1 /dev/ad0s1b none swap sw 0 0

Si vous suivez les conseils de personnes raisonnables (et les valeurs par défaut de sysinstall) et sélectionnez certaines branches du système de fichiers à partir de la racine, des entrées comme

/dev/ad0s1d /var ufs rw 0 0 /dev/ad0s1e /usr ufs rw 0 0 /dev/ad0s1f /tmp ufs rw 0 0

/dev/ad0s1g /home ufs rw 0 0

responsable du système de fichiers avec les répertoires personnels des utilisateurs.

Évidemment, dans le champ Options, vous pouvez ajouter toutes les valeurs disponibles (et raisonnables) de l'option -o (séparées par des virgules, sans espaces), par exemple, noatime pour tous les systèmes de fichiers, et pour /tmp - également async , car le contenu de ce répertoire n'est pas censé être sauvegardé après le redémarrage.

Ce qui précède s'applique aux systèmes de fichiers montés automatiquement au démarrage. Cependant, personne ne vous dérange de faire des entrées dans /etc/fstab pour les systèmes qui sont connectés de temps en temps - dans ce cas, ils peuvent être montés selon un schéma simplifié (c'est ce que j'entendais ci-dessus par mode semi-automatique). Ainsi, pour un lecteur de CD vous pouvez ajouter une ligne (en fait, elle apparaît automatiquement lors de la génération du fichier /etc/fstab si CD a été sélectionné comme source d'installation dans sysinstall)

/dev/acd0 /cdrom cd9660 ro,noauto 0 0

dans lequel les options, comme vous pouvez le deviner, prescrivent le refus de monter au démarrage (noauto) et le mode lecture seule (ro). Après quoi, pour monter un CD, il suffira de préciser uniquement le point de montage -

$mount/cdrom

ou. au contraire, le nom du fichier de l'appareil

$ monter /dev/acd0

Des entrées similaires peuvent être effectuées pour tous les lecteurs amovibles (Zip, clés USB, même disquettes) et pour les partitions non BSD (FAT ou Ext2fs). À propos, vous pouvez monter des systèmes de fichiers à l'aide d'un schéma simplifié immédiatement après avoir apporté des modifications à /etc/fstab, sans attendre le redémarrage de la machine.

Démontage

Tous les systèmes de fichiers concernés doivent être démontés avant de couper l'alimentation ou de redémarrer la machine. Lors d'un arrêt progressif, cela se fait automatiquement, ce qui fait que chaque système de fichiers inscriptible reçoit un bit de démontage propre écrit dans son propre superbloc. La présence de ce bit empêche l'utilitaire fsck de vérifier la cohérence des systèmes de fichiers au prochain démarrage du système.

Cependant, dans un certain nombre de cas (par exemple, lors de la connexion ou de la déconnexion du mécanisme de mises à jour logicielles ou pour effectuer une vérification d'intégrité), il devient nécessaire de démonter (et remonter) manuellement les systèmes de fichiers, pour lesquels la commande umount est utilisée. Cela nécessite un seul argument - spécifiant le point de montage du système de fichiers "supprimé" de l'arborescence des répertoires, par exemple :

$montant/tmp

ou, comme dans le cas d'un montage semi-automatique, le nom de fichier du dispositif « d'arrêt » :

$ umount /dev/ad#s#?

Vous pouvez démonter plusieurs systèmes de fichiers avec une seule ligne :

$ umount /usr /var /home

Ou vous pouvez - tous les systèmes de fichiers montés ou tous les systèmes de fichiers répertoriés dans le fichier /etc/fstab (sauf la racine), ce qui nécessitera des options

$montant -A

$montant -a

respectivement. Il est également possible de démonter certains types de systèmes de fichiers en spécifiant les valeurs de l'option -t. Oui, l'équipe

$ montant -t ufs

démontera uniquement les partitions BSD, sans affecter le CD et tout ce qui est impliqué dans le système.

Les systèmes de fichiers ne doivent pas être utilisés au moment du démontage, c'est-à-dire qu'il ne doit y avoir aucun accès aux fichiers qui s'y trouvent. Ainsi, se trouver dans n'importe quel répertoire d'un système de fichiers est une raison suffisante pour refuser de le démonter (avec un message du type périphérique occupé), c'est pourquoi aucune des commandes répertoriées ci-dessus ne pourra démonter le système de fichiers racine. La raison du refus du démontage sera la lecture du fichier de données par n'importe quel programme - comme pour la suppression d'un fichier, le descripteur de fichier ouvert par n'importe quel processus ne permettra pas que cela soit fait.

Cependant, vous pouvez également démonter le système de fichiers que vous utilisez - pour ce faire, vous devrez exécuter la commande umount avec l'option -f (de force, c'est-à-dire de force). Certes, cela peut conduire à des erreurs, il est donc préférable de ne pas y recourir sauf en cas d'absolue nécessité. Et l'option de démontage forcé n'aura aucun effet sur le système de fichiers racine.

Montage en vrac

Pour continuer à travailler après avoir effectué des opérations de bas niveau sur les systèmes de fichiers, ils devront être remontés. Cela peut être réalisé non seulement sans redémarrage, mais également sans montage individuel fastidieux. Utilisez simplement l'option -a :

$monter -a

à travers lequel tous les systèmes de fichiers pour lesquels il y a des entrées dans /etc/fstab seront montés. Dans ce cas, on tentera de monter ceux qui sont marqués du drapeau noauto. Pour éviter cela, vous pouvez définir davantage le type de système de fichiers. Autrement dit, l'équipe

$ monter -a -t ufs

montera uniquement les partitions BSD, sans empiéter sur les CD ou les lecteurs flash. Ou, au contraire, vous pouvez exclure du processus de montage global certains des systèmes de fichiers répertoriés dans /etc/fstab, par exemple ceux inutiles dans ce moment Les FAT :

$ mount -a -t nomsdosfs

Préambule au lieu de conclusion

D'ailleurs, la commande mount sans options ni arguments (et sous cette forme, contrairement à tous les cas évoqués ci-dessus, elle peut également être donnée utilisateur régulier) affichera une liste des systèmes de fichiers actuellement montés indiquant le point de montage, ses conditions et son mode de fonctionnement. Par exemple, pour la machine sur laquelle ces lignes sont écrites, son résultat ressemblera à ceci :

/dev/ad0s1a sur / (ufs, local, noatime, soft-updates) devfs sur /dev (devfs, local) /dev/ccd0e sur /var (ufs, local, noatime, soft-updates) /dev/ccd1e sur / usr (ufs, local, noatime, soft-updates) /dev/ccd2e sur /home (ufs, local, noatime, soft-updates) /dev/md0 sur /tmp (ufs, local, noatime, async)

La première ligne de sortie montre que la partition /dev/ad0s1a est montée dans notre répertoire racine et contient un système de fichiers UFS (en particulier dans ce cas - UFS2, mais dans la sortie de la commande mount, ils ne diffèrent pas) avec les mises à jour logicielles. mécanisme activé, est local (c'est-à-dire situé sur le disque de cette machine - lecteurs réseauégalement monté avec la commande mount) et n'est pas soumis à la mise à jour de l'attribut atime.

$ plus /etc/fstab /dev/ad0s1b aucun swap sw 0 0 /dev/ar0s1b aucun swap sw 0 0 /dev/ad0s1a / ufs rw,noatime 1 1 /dev/ccd0e /var ufs rw,noatime 2 2 /dev/ ccd1e /usr ufs rw,noatime 2 2 /dev/ccd2e /home ufs rw,noatime 2 2 /dev/acd0 /cdrom cd9660 ro,noauto 0 0 /dev/da0s1 /mnt/usb ext2fs rw,noauto,noatime 0 0 / dev/md0 /tmp mfs rw,noatime,async,-s32m 2 0

alors nous verrons qu'une des lignes de sortie

Devfs sur /dev (devfs, local)

Il n’y a aucune correspondance entre ses dossiers. Quels sont ces périphériques et systèmes de fichiers ?

Vous pouvez modifier les droits d'accès et le propriétaire des fichiers et répertoires en utilisant les commandes chmod Et chown. Le masque de définition des droits sur les fichiers créés peut être modifié globalement, dans /etc/profil pour Linux et /etc/login.conf pour FreeBSD. Habituellement, le masque par défaut 022 . Signification umask soustrait de 777 , donc les autorisations seront importantes 755 . exécutif - exécution autorisée lecture - autorisation de lecture écriture - autorisation d'écriture bit SUID - l'attribut file, en conjonction avec l'attribut file exécutable, permet au fichier à exécuter d'être exécuté avec l'UID effectif du propriétaire du fichier, plutôt que celui qui exécute le fichier 1 --x exécuter # Autorisations 764 = exécution/lecture/écriture | lire/écrire | lire 2 -w- écrire # Pour : |-- Propriétaire --| |-Groupe-| |Autre| 4 r-- lire ugo=a u=utilisateur, g=groupe, o=autres, a=tout le monde# chmod MODE[,MODE] FICHIER # MODE a la forme : *([-+=]()) # chmod 640 /var/log/maillog # Définissez les autorisations sur -rw-r----- # chmod u=rw,g=r,o= /var/log/maillog # Comme ci-dessus # chmod -R o-r /home/* # Modifier les autorisations de manière récursive, interdire la lecture pour Autre # chmod u+s /chemin/vers/prog # Installer SUID bit par fichier exécutable (attention ici, vous devez comprendre ce que vous faites)# trouver / -perm -u+s -print # Trouver tous les programmes installés SUID peu# utilisateur chown :groupe /chemin/vers/fichier # Définir l'utilisateur et le groupe comme propriétaire du fichier# groupe chgrp /chemin/vers/fichier # Changer le groupe propriétaire du fichier# chmod 640 `trouver ./ -type f -print` # Modifier les autorisations pour 640 pour tous les fichiers# chmod 751 `trouver ./ -type d -print` # Modifier les autorisations pour 751 pour tous les répertoires

Informations sur le disque

# diskinfo -v /dev/ad2 # Afficher les informations sur le disque ( secteur/taille) GratuitBSD# hdparm -I /dev/sda # Des informations sur IDE/ATA disque (Linux)# fdisk /dev/ad2 # Afficher les partitions de disque modifiées# smartctl -a /dev/ad2 # Montrer INTELLIGENT informations sur le disque

Chargement

GratuitBSD

Pour charger l'ancien noyau dans une situation d'urgence, par exemple après une compilation infructueuse et l'installation d'un nouveau noyau, arrêtez le téléchargement en appuyant sur 6 pendant le compte à rebours pour accéder à l'invite de ligne de commande. # décharger # charger kernel.old # boot

Points de montage, utilisation du disque

#monter | colonne -t # Afficher les systèmes de fichiers montés#df # Afficher la quantité d'espace libre et les appareils montés# chat /proc/partitions # Afficher toutes les partitions enregistrées (Linux)

Informations sur l'annuaire

#du-sh* # Tailles des répertoires sous forme de liste#du-csh # Volume total du répertoire courant# du-ks * | trier -n -r # Liste des répertoires triés par taille en kilo-octets# ls -lSr # Liste des répertoires, tri inversé

Qui a ouvert quels fichiers

Parfois, il est nécessaire de savoir quel fichier a verrouillé une partition, ce qui provoque la commande démonter donne l'erreur correspondante. # umount /home/ umount : démonter /home # Il n'est pas possible de démonter une partition avant /maison bloquééchec : appareil occupé

FreeBSD et la plupart des systèmes de type Unix

# fstat -f /accueil # pour le point de montage# fstat -p PID # pour application avec PID# fstat -u utilisateur # pour le nom d'utilisateur Rechercher un fichier ouvert pour Xorg: # ps hache | grepXorg | awk "(print $1)" 1252 # fstat -p 1252 USER CMD PID FD MOUNT INUM MODE SZ|DV R/W root Xorg 1252 root / 2 drwxr-xr-x 512 r root Xorg 1252 text /usr 216016 -rws-- x--x 1679848 r root Xorg 1252 0 /var 212042 -rw-r--r-- 56987 w Rechercher le fichier avec inum 212042 dans l'annuaire /var vous pouvez faire ceci : # find -x /var -inum 212042 /var/log/Xorg.0.log

Linux

Rechercher un fichier ouvert dans un répertoire en utilisant unité de fusion ou lsof: # fuser -m /home # Liste des processus qui ont accès à /maison # lsof /home COMMANDE PID UTILISATEUR FD TYPE TAILLE DE L'APPAREIL NOM DU NŒUD tcsh 29029 eedcoba cwd DIR 0.18 12288 1048587 /home/eedcoba (guam:/home) lsof 29140 eedcoba cwd DIR 0.18 12288 1048587 /home/eedcoba (gua m: /home) Rechercher par PID applications : ps hache | grepXorg | awk "(print $1)" 3324 # lsof -p 3324 COMMANDE PID UTILISATEUR FD TYPE TAILLE DE L'APPAREIL NOM DU NŒUD Xorg 3324 root 0w REG 8.6 56296 12492 /var/log/Xorg.0.log Par nom de fichier : # lsof /var /log /Xorg.0.log COMMANDE PID UTILISATEUR FD TYPE TAILLE DE L'APPAREIL NOM DU NŒUD Xorg 3324 root 0w REG 8.6 56296 12492 /var/log/Xorg.0.log

Monter/remonter des systèmes de fichiers

Par exemple CD ROM, enregistré /etc/fstab: # mount /cdrom Ou vous pouvez trouver l'appareil dans /dév ou en sortie message

GratuitBSD

# mount -v -t cd9660 /dev/cd0c /mnt # Monter le disque CD ROM(première méthode)# mount_cd9660 /dev/wcd0c /cdrom # Monter le disque CD ROM(deuxième méthode)# mount -v -t msdos /dev/fd0c /mnt # Disquette Écrire sur /etc/fstab: # Device Mountpoint FStype Options Dump Pass# /dev/acd0 /cdrom cd9660 ro,noauto 0 0 Autoriser les utilisateurs à monter des disques : # sysctl vfs.usermount=1 # Ou entrez la ligne "vfs.usermount=1" dans /etc/sysctl.conf

Linux

# mount -t auto /dev/cdrom /mnt/cdrom # Commande typique de montage de disque CD ROM # mount /dev/hdc -t iso9660 -r /cdrom # Monter le disque EDI # mount /dev/scd0 -t iso9660 -r /cdrom # Monter le disque SCSI CD ROM# monter /dev/sdc0 -t ntfs-3g /windows # Monter le disque SCSI Inscrivez vous pour /etc/fstab: /dev/cdrom /media/cdrom subfs noauto,fs=cdfss,ro,procuid,nosuid,nodev,exec 0 0

Monter une partition FreeBSD avec Linux

Regardez le numéro de section dans fdisque, il s'agit généralement de la partition racine, mais elle peut se trouver sur une autre partition BSD tranche. S'il y a plusieurs tranches sur la partition FreeBSD, elles ne seront pas visibles via fdisque, mais on peut les trouver dans développeur/sda* ou /dev/hda*. # fdisk /dev/sda # Trouvez la partition FreeBSD/dev/sda3 * 5357 7905 20474842+ a5 FreeBSD # mount -t ufs -o ufstype=ufs2,ro /dev/sda3 /mnt /dev/sda10 = /tmp; /dev/sda11 /usr # Une autre tranche

Recâblage

Remontez l'appareil sans le démonter au préalable, par exemple pour fsck# mount -o remount,ro / # Linux # mount -o ro / # FreeBSD Copier le flux de données depuis CD ROM"et au dossier Image ISO. # dd if=/dev/cd0c of=file.iso

Créer une partition de swap à la volée

Supposons que vous deviez augmenter la partition de swap, par exemple 2 gigaoctet, /échange2gb(pour Linux) # dd if=/dev/zero of=/swap2gb bs=1024k count=2000 # mkswap /swap2gb # Créer un swap # swapon /swap2gb # Activer le swap, il peut maintenant être utilisé# swapoff /swap2gb # Désactiver le swap # rm /swap2gb

Monter une partition SMB

CIFS- Système de fichiers Internet commun PME- bloc de messages du serveur Supposons que vous deviez accéder à un compte partagé PME section mon partage sur le serveur serveur smb, l'adresse composée à Machine Windows volonté \\smbserver\myshare\. Nous le monterons sur /mnt/smbshare. N'oublie pas pour cifs Adresse IP ou nom de domaine requis.

Linux

# smbclient -U user -I 192.168.16.229 -L //smbshare/ # Liste les partages # mount -t smbfs -o username=winuser //smbserver/myshare /mnt/smbshare # mount -t cifs -o username=winuser, password=winpwd //192.168.16.229/myshare /mnt/share Package supplémentaire montage.cifs permet de stocker les privilèges dans un fichier, par exemple /home/utilisateur/.smb: username=winuser password=winpwd Et maintenant nous montons : # mount -t cifs -o qualifications=/home/user/.smb //192.168.16.229/myshare /mnt/smbshare

GratuitBSD

Utilisez la clé -JE pour définir l'adresse IP (ou DNS); serveur smb, c'est un nom Windows. # vue smbutil -I 192.168.16.229 //winuser@smbserver # Liste des ressources partagées# mount_smbfs -I 192.168.16.229 //winuser@smbserver/myshare /mnt/smbshare

Monter l'image

Bouclage Linux

# mount -t iso9660 -o boucle fichier.iso /mnt # Monter l'image du CD# mount -t ext3 -o boucle fichier.img /mnt # Monter l'image avec le système de fichiers poste3

GratuitBSD

En utilisant Maryland- périphérique mémoire (si nécessaire, faites kldload md.ko): # mdconfig -a -t vnode -f file.iso -u 0 # mount -t cd9660 /dev/md0 /mnt # umount /mnt; mdconfig -d -u 0 # Effacer le périphérique de mémoire Ou en utilisant un pseudo-appareil ( VN, nœud virtuel) : # vnconfig /dev/vn0c fichier.iso ; mount -t cd9660 /dev/vn0c /mnt # umount /mnt; vnconfig -u /dev/vn0c # Effacer le pseudo-appareil

Créer et graver une image ISO

Nous copierons un CD ou un DVD secteur par secteur. # dd if=/dev/hdc of=/tmp/mycd.iso bs=2048 conv=notrunc Utiliser mkisofs pour créer une image à partir d'un fichier dans un répertoire. Pour contourner les restrictions de nom de fichier, utilisez l'option -r, y compris l'extension RocheRidge, l'essentiel pour Systèmes UNIX, -J comprend Joliet, utilisé par Microsoft, -L permet ISO9660 noms commençant par un point. # mkisofs -J -L -r -V TITLE -o imagefile.iso /path/to/dir Sur FreeBSD, mkisofs peut être installé à partir de /usr/ports/sysutils/cdrtools.

Graver des images ISO sur CD/DVD

GratuitBSD

FreeBSD ne s'installe pas DMLA sur ATAPI appareils, cela peut être fait via une variable système ou dans un fichier /boot/loader.conf, les entrées suivantes. hw.ata.ata_dma="1" hw.ata.atapi_dma="1" Utiliser Graver un CD pour les appareils ATAPI ( Graver un CD, programme standard, pièce système de base) Et enregistrement cd(depuis /usr/ports/sysutils/cdrtools) pour les périphériques SCSI. # burncd -f /dev/acd0 data imagefile.iso fixate # Pour les appareils ATAPI# cdrecord -scanbus # Rechercher un enregistreur # cdrecord dev=1,0,0 imagefile.iso

Linux

Utilisez-le de la même manière enregistrement cd, comme décrit ci-dessus. De plus, vous pouvez utiliser l'interface ATAPI native : # cdrecord dev=ATAPI -scanbus Enregistrez comme décrit ci-dessus.

DVD+RW-Tools

Le package dvd+rw-tools (FreeBSD : ports/sysutils/dvd+rw-tools) possède toutes les fonctionnalités nécessaires pour travailler avec des DVD, plus Growisofs, pour graver des CD ou des DVD. Une documentation avec des exemples peut être trouvée dans le manuel FreeBSD, chapitre 18.7. # -dvd-compat ferme le disque# growisofs -dvd-compat -Z /dev/dvd=imagefile.iso # Écrire existant image ISO # growisofs -dvd-compat -Z /dev/dvd -J -R /p/to/data # Écrivez directement

Convertir l'image du fichier Nero .nrg en fichier .iso

Nero ajoute un en-tête de 300 Ko à l'image, qui peut être découpé à l'aide de jj. # dd bs=1k if=imagefile.nrg of=imagefile.iso skip=300

Convertir l'image bin/cue en .iso

Cela peut être fait en utilisant un petit programme, bchunk. Sur FreeBSD, il peut être trouvé dans les ports /usr/ports/sysutils/bchunk. # bchunk fichierimage.bin fichierimage.cue fichierimage.iso

Créer une image à partir d'un fichier

Par exemple, une partition de 1 Go utilise le fichier /usr/disque virtuel.img. Dans ce cas, nous utilisons la clé -u 0, mais le nombre peut être n'importe quoi.

GratuitBSD

# dd if=/dev/random of=/usr/vdisk.img bs=1K count=1M # mdconfig -a -t vnode -f /usr/vdisk.img -u 0 # Créer un appareil /dev/md1 # bsdlabel -w /dev/md0 # newfs /dev/md0c # mount /dev/md0c /mnt # umount /mnt; mdconfig -d -u 0; rm /usr/vdisk.img # Effacer Maryland Une image créée à partir d'un fichier peut être montée lors du démarrage du système en écrivant une ligne dans /etc/rc.conf Et /etc/fstab. Vous pouvez vérifier si vos paramètres sont corrects en utilisant la commande /etc/rc.d/mdconfig démarrer(après avoir retiré l'appareil md0 en utilisant la commande # mdconfig -d -u 0). Gardez à l'esprit que le montage automatique de l'image ne fonctionnera que si le fichier image n'est PAS dans la partition racine, car le script /etc/rc.d/mdconfig effectuée à un stade précoce du démarrage, lorsque la partition racine n'est pas encore accessible en écriture. Les images situées en dehors de la partition racine seront montées ultérieurement par le script /etc/rc.d/mdconfig2.
/boot/loader.conf : md_load="OUI" /etc/rc.conf : mdconfig_md0="-t vnode -f /usr/vdisk.img" # /usr pas dans la partition racine/etc/fstab : (0 0 à la fin, très important, cela indiquera fsck ignorer la vérification du périphérique car il n'existe pas encore) /dev/md0 /usr/vdisk ufs rw 0 0
De plus, vous pouvez ensuite augmenter la taille de l'image, par exemple de 300 Mo. #montant/mois ; mdconfig -d -u 0 # dd if=/dev/zero bs=1m count=300 >> /usr/vdisk.img # mdconfig -a -t vnode -f /usr/vdisk.img -u 0 # growfs /dev /md0 # montage /dev/md0c /mnt # Maintenant, la partition du fichier est 300 Mo plus grande

Linux

# dd if=/dev/zero of=/usr/vdisk.img bs=1024k count=1024 # mkfs.ext3 /usr/vdisk.img # mount -o loop /usr/vdisk.img /mnt # umount /mnt; rm /usr/vdisk.img # Effacer

Linux et la perte

/dev/zéro beaucoup plus rapide que aléatoire, mais moins sécurisé pour le cryptage. # dd if=/dev/urandom of=/usr/vdisk.img bs=1024k count=1024 # losetup /dev/loop0 /usr/vdisk.img # Créer /dev/loop0 # mkfs.ext3 /dev/loop0 # mount /dev/loop0 /mnt # losetup -a # Check # umount /mnt # losetup -d /dev/loop0 # Déconnexion # rm /usr/vdisk.img

Création d'un système de fichiers en mémoire

Le système de fichiers en mémoire est très rapide, il est logique de l'utiliser pour les applications avec des E/S disque élevées. Créons une partition de 64 Mo et montons-la dans /disque mémoire :

GratuitBSD

# mount_mfs -o rw -s 64M md /memdisk # umount /memdisk; mdconfig -d -u 0 # Clair Maryland appareil md /mémdisque mfs rw,-s64M 0 0 # écrire à /etc/fstab

Linux

# mount -t tmpfs -osize=64m tmpfs /memdisk

Performances du disque

Lire et écrire 1 Go fichier en section ad4s3c (/maison) # heure jj if=/dev/ad4s3c of=/dev/null bs=1024k count=1000 # heure dd if=/dev/zero bs=1024k count=1000 of=/home/1Gb.file # hdparm -tT / dev/hda # Linux uniquement

Le standard FHS a été initialement développé pour organiser la structure de répertoires de nombreuses distributions Linux. Et ce n'est que plus tard qu'il a été adapté à d'autres systèmes de type Unix (y compris le clan BSD). Cependant, c'est la hiérarchie des répertoires FreeBSD qui peut servir d'exemple d'adhésion exemplaire à l'esprit du FHS. Et littéralement, les écarts individuels par rapport à sa lettre sont toujours déterminés fonctionnellement.

Le standard FHS repose sur deux principes fondamentaux : une séparation claire dans la hiérarchie des fichiers des répertoires partagés et non partagés, d'une part, et immuables et mutables, d'autre part.

Le contraste entre les répertoires partagés et non partagés est dû à la nature réseau inhérente d'Unix en général et de FreeBSD en particulier. Autrement dit, les données liées à la machine locale (par exemple, les fichiers de configuration de ses périphériques) doivent être situées dans des répertoires distincts de ceux dont les données sont accessibles depuis d'autres machines du réseau, locales ou globales (dont un exemple n'est pas seulement l'utilisateur données, mais aussi programmes) .

L'essence du contraste entre les répertoires immuables et mutables peut être facilement expliquée à l'aide d'un exemple. Ainsi, les mêmes programmes utilisateur doivent, de par leur nature, être immuables (ou plutôt disponibles pour modification uniquement pour l'administrateur système, mais pas pour l'utilisateur lui-même qui les utilise dans son travail). En même temps, ces programmes, au cours de leur fonctionnement, génèrent non seulement des fichiers de données, par exemple des textes ou des images (leur caractère variable est clair sans commentaire), mais également toutes sortes d'informations de service, telles que des fichiers journaux, des fichiers temporaires et des comme). Lesquels doivent être regroupés dans des répertoires séparés des fichiers exécutables réels des programmes, bibliothèques, fichiers de configuration, etc., nécessaires à leur lancement.

Le strict respect du concept de séparation des répertoires partagés et non partagés, immuables et immuables les uns des autres permet, au sein d'une seule hiérarchie de fichiers arborescente, d'isoler physiquement ses branches individuelles, c'est-à-dire sous la forme de systèmes de fichiers indépendants situés sur périphériques isolés (disques, tranches de disque, partitions ; dans le cas général et sur des supports distants connectés au réseau, mais cela ne sera pas abordé maintenant). Il y a de nombreuses raisons à cela : augmentation de la vitesse, augmentation de la fiabilité et simplement considérations de commodité, mais nous n'en parlerons pas maintenant. Car désormais, tout ce qui nous importe, c'est que ces branches de l'arborescence de fichiers doivent être intégrées dans le système de fichiers global.

La note précédente disait que chaque fichier (y compris un répertoire) est reconnu par le système non pas par son nom, mais par l'identifiant unique de son entrée dans la table inodes. Il existe des outils pour afficher ces identifiants de fichiers. L'une est la commande ls avec l'option i, qui imprimera les identifiants de chaque fichier nommé. Donné pour le répertoire racine - $ ls -i

cela nous montrera une image quelque peu inattendue (pour plus de simplicité, les informations sur les fichiers normaux et les liens symboliques à la racine sont exclues de la sortie, et les répertoires restants sont triés par leurs identifiants) 2 ../ 2 ./ 2 dev/ 2 home / 2 tmp/ 2 usr/ 2 var/ 3 cdrom/ 4 mnt/ 5 root/ 8257 dist/ 8258 bin/ 8294 proc/ 8295 sbin/ 16512 stand/ 24768 etc/ 24776 boot/

À partir de cet exemple (relatif au système de fichiers de la machine sur laquelle ces lignes sont écrites), il est clair que jusqu'à 7 répertoires ont les mêmes identifiants numériques, égaux à 2. La question est : quelle est l'unicité ici ?

Les deux premiers éléments de la liste sont faciles à comprendre : ./ représente le répertoire courant (dans ce cas, la racine), et ../ le répertoire parent du répertoire courant ; et puisque, par définition, il n'y a rien au-dessus de la racine dans la hiérarchie des fichiers, cela se dénote lui-même. Il n'est donc pas surprenant que ./ et ../ aient le même identifiant - ce sont des désignations différentes (liens physiques, ou noms en double) pour le même répertoire racine.

Mais comme cela semble à première vue, la signification de l'identifiant des répertoires /dev, /home, /tmp, /usr, /var nécessite une explication. Cependant, c'est simple : ce sont tous des répertoires dans lesquels des systèmes de fichiers indépendants sont montés, soit situés sur des périphériques séparés - des partitions de disque, telles que les répertoires /home, /usr, /var, ou des systèmes de fichiers virtuels qui ne s'appuient pas sur n'importe quel périphérique de disque réel (le répertoire /dev avec le système de fichiers du périphérique et, dans ce cas, le répertoire /tmp, dans lequel le système de fichiers en RAM est monté, ce qui sera discuté plus tard). Et comme la table des inodes est différente pour chaque système de fichiers, il n'est pas surprenant que la racine de chacun d'eux soit identifiée par le chiffre 2 ; les inodes qu'ils contiennent sont numérotés dans leur propre système de référence.

Ainsi, le montage est l'inclusion d'un fichier du système dans l'un des répertoires existant dans le système racine (pas nécessairement directement à la racine, il peut s'agir de n'importe quel degré d'imbrication, comme illustré ci-dessous). Sans cela, les répertoires et fichiers d'un tel système monté sont tout simplement inaccessibles. Il est important de comprendre cela lorsque vous rencontrez des expressions telles que « créer le système de fichiers /usr ». D'après ce qui précède, il est évident que ce qui est créé (par la commande newfs) est simplement un certain système de fichiers abstrait, et il n'acquiert son « nom » qu'au moment de son montage dans le répertoire spécifié.

Il est intéressant de noter que l'identifiant du répertoire de montage (également appelé point de montage) n'est trouvé qu'au moment du montage. Pour vérifier cela, effectuons une expérience simple. Dans le répertoire /mnt, destiné spécifiquement au montage de systèmes de fichiers montés temporairement), vous pouvez voir trois sous-répertoires /mnt/disk, mnt/iso, /mnt/usb (c'est sur mon système, je les ai créés pour ma propre convenance ; initialement le répertoire /mnt qui se trouvait dans FreeBSD est vide). Lorsque le système démarre, rien n’y est monté et leur état normal est vide. Si vous regardez leurs identifiants, vous pouvez voir quelque chose comme ceci : $ ls -i1 /mnt 16:46 ttyp0 18 disk/ 24 iso/ 19 usb/

Maintenant, prenons et montons une clé USB avec une interface USB dans /mnt/usb (c'est exactement à cela que je l'avais prévu) et répétons la visualisation. Et on voit : 18 disque/ 24 iso/ 2 usb/

C'est-à-dire que les identifiants des répertoires restés vides (/mnt/disk et /mnt/iso) n'ont pas changé, mais l'identifiant du répertoire /mnt/usb est devenu comme par magie 2. Parce qu'au moment du montage, il est devenu la racine de son propre système de fichiers et le point de référence pour calculer les inodes de tous les fichiers enregistrés dessus.

Faisons une petite parenthèse et rappelons-nous les liens physiques, à travers lesquels le même inode et les blocs de données qui lui sont associés peuvent recevoir des noms différents. Il est maintenant clair pourquoi tous ces fichiers en double devraient être situés dans le même système de fichiers : après tout, différents systèmes de fichiers ont leur propre numérotation d'inodes qui ne correspond pas, et il est impossible de les identifier par des numéros (sinon, comment le système distinguer les répertoires /usr et /var de notre exemple après tout, elle ne se soucie pas des noms de fichiers). Pour les liens symboliques qui ont leurs propres inodes (en fait, et rien d'autre qu'eux) avec leurs propres identifiants, numérotés dans le système de référence du système de fichiers dans lequel ils se trouvent, une telle restriction n'existe pas. Et les liens symboliques peuvent être situés n'importe où (y compris sur une machine distante, pas seulement sur une autre partition).

Revenons cependant à l'exemple de notre répertoire racine. Tout bien considéré, il est clair qu'un certain nombre de ses branches se trouvent sur des partitions distinctes et forment leurs propres systèmes de fichiers (en fait, c'est exactement pourquoi nous les avons créées toutes les deux). Et par conséquent, ils doivent tous être montés.9. Pratique de montage

Les objectifs de montage sont servis par la commande mount, exécutée soit automatiquement lors du démarrage du système, soit manuellement à partir de la ligne de commande. En fait, au sens plein, seul le système de fichiers racine est automatiquement monté dans tous les cas. Il n'est pas nécessaire qu'il se trouve sur le disque ; lors du démarrage à partir d'un CD de secours ou d'un autre support de sécurité, il peut être situé sur un disque virtuel en RAM. Cependant, le processus de montage du système de fichiers racine est aussi inévitable que la victoire du socialisme à l'échelle mondiale : tout comme le socialisme, sans victoire à l'échelle mondiale, perd simplement la capacité d'exister (ce que nous avons récemment observé), de même un Le système d'exploitation ne peut pas exister sans système racine. Sous Linux, cela provoque un mode de panique du noyau à peu près dans l'état dans lequel nos dirigeants sont tombés il y a 20 ans. C'est vrai, ils se sont avérés plus forts que Linux et ont récupéré assez rapidement donc ils nous redémarrent toujours (ou redémarrent ? mais nous devenons plus forts :)). Cependant, cela ne s'applique pas à la question de l'installation que je vais essayer de vous présenter maintenant.

Ainsi, pour monter tous les systèmes de fichiers à l'exception de celui racine, vous devez effectuer certaines actions. Nous verrons d'abord comment les réaliser manuellement, puis comment les immortaliser dans les fichiers de configuration appropriés.

Donc, la commande mount. En fait, il s'agit de toute une famille de programmes, chacun étant conçu pour monter des systèmes de fichiers de certains types - non seulement UFS, mais également tous ceux pris en charge par FreeBSD. La liste de ceux-ci est assez longue ; vous pouvez vous en faire une idée en regardant le répertoire /sbin : $ ls /sbin/mount*

ce qui nous donnera en réponse /sbin/mount /sbin/mount_msdosfs /sbin/mount_smbfs /sbin/mount_cd9660 /sbin/mount_nfs /sbin/mount_std /sbin/mount_devfs /sbin/mount_ntfs /sbin/mount_udf /sbin/mount_ext2fs /sbin/mount_nullfs / sbin/mount_umapfs /sbin/mount_fdescfs /sbin/mount_nwfs /sbin/mount_unionfs /sbin/mount_linprocfs /sbin/mount_portalfs /sbin/mount_mfs /sbin/mount_procfs

Chaque commande de cette liste est responsable d'un type différent de système de fichiers, sur lequel nous reviendrons plus tard. Pour l’instant, notons uniquement /sbin/mount lui-même, conçu pour fonctionner avec UFS et UFS2.

Appelé depuis la ligne de commande, il nécessite deux arguments : le nom du périphérique à monter et le point de montage (c'est-à-dire le répertoire dans lequel le système de fichiers sous-jacent doit être monté). Le nom du périphérique doit indiquer un patricia déjà mappé sur une tranche BSD existante avec un système de fichiers UFS2 (UFS) créé dessus, par exemple, $ mount /dev/ads0d /usr

monte le système de fichiers sur la partition spécifiée dans le répertoire /usr de la racine de l'arborescence de fichiers. Si le système de fichiers sur l'appareil n'est pas créé ou est d'un type autre que 4.2BSD, un message d'erreur apparaîtra indiquant un super bloc incorrect : contrairement à l'utilitaire Linux du même nom, la commande de montage FreeBSD elle-même ne peut pas reconnaître le système de fichiers. taper.

Les exigences suivantes sont imposées au point de montage : a) un répertoire portant le même nom doit exister au moment du montage, et b) être aussi vide que possible. Le premier est obligatoire, mais le second n’est pas entièrement nécessaire. Le montage dans un répertoire contenant n'importe quel fichier se déroulera sans problème (je me souviens que sous Linux, il n'y a pas si longtemps, cela provoquait un crash du système), mais tout son contenu deviendra inaccessible jusqu'à ce qu'il soit démonté. Et si les fichiers qu'il contient jouent un rôle important pour un sous-système, cela peut entraîner toutes sortes de conséquences néfastes. Par exemple, si le contenu du répertoire /tmp était bloqué en y montant un système de fichiers pendant que le système X Window était en cours d'exécution, le résultat serait probablement un crash du serveur X. Heureusement, si nécessaire, vous pouvez effectuer un montage combiné (voir ci-dessous).

Sous cette forme, le montage sera effectué avec certaines caractéristiques par défaut : le système de fichiers sera en lecture/écriture dans ce qu'on appelle le mode. noasync (le même dans lequel les opérations de métadonnées sont effectuées de manière synchrone et les opérations de données sont effectuées de manière asynchrone). Cette position peut être modifiée à l'aide de l'option -o. Il y en a pas mal, mais pratiquement les principaux pour nous à ce stade seront :

  • async fournira un mode complètement asynchrone (malgré les terribles avertissements des articles précédents, je parlerai plus tard d'une situation où cela peut être justifié) ;
  • sync au contraire, permettant un mode entièrement synchrone (même si je ne comprends pas vraiment pourquoi cela est pratiquement nécessaire) ;
  • noatime une option très utile qui empêche la mise à jour de l'attribut du dernier temps d'accès des fichiers, ce qui améliore considérablement les performances ;
  • rdonly monte le système de fichiers en mode lecture seule (cela est parfois nécessaire) ;
  • union la même option qui vous permet d'effectuer un montage union, dans lequel le contenu précédent du répertoire du point de montage reste visible ; vrai avec quelques restrictions voir man (8) mount.

Il existe plusieurs autres valeurs de l'option -o qui interdisent le placement de certains types de fichiers sur le système de fichiers monté, par exemple les fichiers exécutables (-o noexec), les fichiers de périphérique (-o nodev) ou les fichiers avec ainsi -appelé. bit (-o nosuid), mais ils ont une importance pratique principalement pour les administrateurs de serveur et servent à des fins de sécurité. Sur un ordinateur de bureau, la forme habituelle de montage ressemblerait à ceci : $ mount -o noatime /dev/ads0d /usr; $ mount -o noatime /dev/ads0e /var; $ mount -o noatime /dev/ads0f /home

Tout ce qui précède s'applique uniquement au montage des systèmes de fichiers FreeBSD. Cependant, dans la pratique, il est souvent nécessaire d'incorporer d'autres types de systèmes de fichiers dans son arborescence de répertoires. Ceci est particulièrement souvent requis pour ISO9660 (le système de fichiers habituel pour tous les CD sauf ceux Mac) et les FAT de divers types. Dans ce cas, la commande de montage appropriée doit être appelée explicitement, par exemple $mount_cd9660 /dev/acd0 /cdrom

pour monter le compact, ou $ mount_msdosfs /dev/ad## /mnt

pour FAT de tout type (y compris FAT32). Cependant, cela peut être fait indirectement en spécifiant l'option -t file_system_type à la commande mount. Ainsi, la commande $ mount -t ext2fs /dev/ad## /mnt/linux

monte le système de fichiers Linux (si la fonctionnalité correspondante est incluse dans le noyau). Dans ce cas, le montage standard des partitions BSD est simplement remplacé par la commande /mount_ext2fs, conçue pour monter les partitions ext2fs (et ext3fs également, mais bien sûr sans aucune fonction de journalisation). Autrement dit, la forme $mount -t fstype ... ...

sera l'équivalent exact de la commande $mount_fstype... ...

Toutes les opérations de montage de systèmes de fichiers (y compris sur des supports amovibles) dans FreeBSD nécessitent des droits de superutilisateur. Les valeurs de l'option -o ici, contrairement à la version Linux de la commande mount, n'incluent pas de paramètre utilisateur permettant le montage pour les utilisateurs ordinaires. Certes, il existe plusieurs façons de contourner ce problème, mais il est inapproprié d'en parler maintenant.

Cependant, dans la pratique, le montage manuel n'est utilisé que pour les systèmes de fichiers rarement utilisés. Tous les systèmes de fichiers qui sont fondamentalement importants pour le fonctionnement de FreeBSD sont montés automatiquement au démarrage du système, et ceux fréquemment utilisés sont montés en mode semi-automatique, pour ainsi dire.

Pour le montage automatique, le programme de montage est exécuté pendant le processus de démarrage à partir des scripts d'initialisation. Il recherche son fichier de configuration /etc/fstab et monte tout ce qu'il y trouve, à quelques exceptions près (discutées ci-dessous).

Le fichier /etc/fstab lui-même est généré automatiquement lorsque FreeBSD est installé, y compris tous les systèmes de fichiers nécessaires au support de la vie. Cependant, à l'avenir, il pourra être modifié manuellement afin d'ajouter de nouveaux appareils à monter ou des options supplémentaires pour les appareils déjà activés.

Le fichier /etc/fstab est une simple base de données au format texte (champs séparés par des espaces ou des tabulations), comprenant les champs suivants :

  • Nom de fichier du périphérique sur lequel se trouve le système de fichiers, similaire au premier argument de la commande mount lorsqu'elle est utilisée manuellement ;
  • Point de montage Mountpoint (correspond au deuxième argument de la commande mount) ;
  • Type de système de fichiers FStype, également spécifié comme valeur de l'option -t ;
  • Options options de montage supplémentaires, similaires aux valeurs de l'option -o ;
  • Conditions de vidage pour effectuer une sauvegarde du système de fichiers à l'aide de l'utilitaire de vidage ;
  • Passer les conditions # pour vérifier le système de fichiers avec l'utilitaire fsck.

Dans un FreeBSD fraîchement installé /etc/fstab inclura obligatoirement les entrées suivantes (exemple pour la 1ère tranche du disque Maître sur le 1er canal IDE) : # Device Mountpoint FStype Options Dump Pass# /dev/ad0s1a / ufs rw 1 1 / dev/ad0s1b aucun swap sw 0 0

Si vous suivez les conseils de personnes raisonnables (et les valeurs par défaut de sysinstall) et sélectionnez certaines branches du système de fichiers à partir de la racine, des entrées comme /dev/ad0s1d /var ufs rw 0 0 /dev/ad0s1e / seront ajoutées à celles répertoriées. (lors du marquage automatique de la tranche via sysinstall) usr ufs rw 0 0 /dev/ad0s1f /tmp ufs rw 0 0

responsable du système de fichiers avec les répertoires personnels des utilisateurs.

Évidemment, dans le champ Options, vous pouvez ajouter toutes les valeurs disponibles (et raisonnables) de l'option -o (séparées par des virgules, sans espaces), par exemple, noatime pour tous les systèmes de fichiers, et pour /tmp également async, car le le contenu de ce répertoire ne devrait pas être sauvegardé après le redémarrage.

Ce qui précède s'applique aux systèmes de fichiers montés automatiquement au démarrage. Cependant, personne ne vous dérange de faire des entrées dans /etcfstab pour les systèmes qui sont connectés de temps en temps - dans ce cas, ils peuvent être montés selon un schéma simplifié (c'est ce que j'entendais ci-dessus par mode semi-automatique). Ainsi, pour un lecteur de CD vous pouvez ajouter la ligne (en fait, elle apparaît automatiquement lorsque le fichier /etc/fstab est généré) /dev/acd0 /cdrom cd9660 ro,noauto 0 0

dans lequel les options, comme vous pouvez le deviner, nécessitent le refus du montage au démarrage (noauto) et le mode lecture seule (ro). Après cela, pour monter un CD, il suffira de spécifier uniquement le point de montage - $ mount /cdrom

Des entrées similaires peuvent être effectuées pour tous les lecteurs amovibles (Zip, clés USB, même disquettes) et pour les partitions non BSD (FAT ou Ext2fs). À propos, vous pouvez monter des systèmes de fichiers en utilisant le schéma simplifié immédiatement après avoir apporté des modifications à /etc/fstab, sans attendre le redémarrage de la machine.

Tous les systèmes de fichiers concernés doivent être démontés avant de couper l'alimentation ou de redémarrer la machine. Lors d'un arrêt correct, cela se fait automatiquement, de sorte que chacun des systèmes de fichiers inscriptibles (ou plutôt la partition qui le porte) reçoit un bit de démontage propre dans son superbloc.

Cependant, dans un certain nombre de cas (par exemple, lors de la connexion ou de la déconnexion du mécanisme de mises à jour logicielles ou pour effectuer une vérification d'intégrité), il devient nécessaire de démonter (et remonter) manuellement les systèmes de fichiers, pour lesquels la commande umount est utilisée. Il nécessite un seul argument : le point de montage du système de fichiers à supprimer de l'arborescence des répertoires, par exemple : $ umount /tmp

Vous pouvez démonter plusieurs systèmes de fichiers avec une seule ligne : $ umount /usr /var /home

Ou vous pouvez utiliser tous les systèmes de fichiers montés ou tous les systèmes de fichiers répertoriés dans le fichier /etc/fstab (sauf la racine), ce qui nécessite les options $ umount -A

ou $umount -a

respectivement. Il est également possible de démonter certains types de systèmes de fichiers en spécifiant les valeurs de l'option -t. Donc, la commande $ umount -t ufs

démontera uniquement les partitions BSD, sans affecter le CD et tout ce qui est impliqué dans le système.

Les systèmes de fichiers ne doivent pas être utilisés au moment du démontage, c'est-à-dire qu'il ne doit y avoir aucun accès aux fichiers qui s'y trouvent. Ainsi, se trouver dans n'importe quel répertoire d'un système de fichiers est une raison suffisante pour refuser de le démonter (avec un message du type périphérique occupé), c'est pourquoi aucune des commandes répertoriées ci-dessus ne pourra démonter le système de fichiers racine. Mais la lecture d'un fichier de données par n'importe quel programme n'est pas une raison pour refuser de démonter le système hébergeant ce fichier (après tout, dans le cas général, la communication entre un fichier en mémoire et un fichier sur disque n'a lieu qu'au moment de l'enregistrement des modifications.

Cependant, vous pouvez également démonter le système de fichiers que vous utilisez ; pour ce faire, vous devrez exécuter la commande umount avec l'option -f. Certes, cela peut conduire à des erreurs, il est donc préférable de ne pas y recourir sauf en cas d'absolue nécessité. Et l'option de démontage forcé n'aura aucun effet sur le système de fichiers racine.

Pour continuer à travailler après avoir effectué des opérations de bas niveau sur les systèmes de fichiers, ils devront être remontés. Cela peut être réalisé non seulement sans redémarrage, mais également sans montage individuel fastidieux. Utilisez simplement l'option -a : $ mount -a

à travers lequel tous les systèmes de fichiers pour lesquels il y a des entrées dans /etc/fstab seront montés. Dans ce cas, on tentera de monter ceux qui sont marqués du drapeau noauto. Pour éviter cela, vous pouvez définir davantage le type de système de fichiers. Autrement dit, la commande $ mount -a -t ufs

montera uniquement les partitions BSD, sans empiéter sur les CD ou les lecteurs flash. Ou, au contraire, vous pouvez exclure du processus de montage global certains des systèmes de fichiers répertoriés dans /etc/fstab, par exemple les FAT actuellement inutiles : $ mount -a -t nomsdosfs Préambule au lieu de conclusion

À propos, la commande mount sans options ni arguments (et sous cette forme, contrairement à tous les cas évoqués ci-dessus, elle peut être donnée par un utilisateur ordinaire) affichera une liste des systèmes de fichiers actuellement montés indiquant le point de montage, ses conditions et mode de fonctionnement. Par exemple, pour la machine sur laquelle ces lignes sont écrites, le résultat ressemblera à ceci : /dev/ad0s1a on / (ufs, local, noatime, soft-updates) devfs on /dev (devfs, local) /dev/ccd0e sur /var (ufs, local, noatime, soft-updates) /dev/ccd1e sur /usr (ufs, local, noatime, soft-updates) /dev/ccd2e sur /home (ufs, local, noatime, soft-updates) /dev/ md0 sur /tmp (ufs, local, noatime, async)

La première ligne de sortie montre que la partition /dev/ad0s1a est montée dans notre répertoire racine, contient un système de fichiers UFS (plus précisément dans ce cas, UFS2, mais dans la sortie de la commande mount, ils ne diffèrent pas) avec les mises à jour logicielles. mécanisme activé, est local (c'est-à-dire situé sur le disque de cette machine ; les lecteurs réseau sont également montés avec la commande mount) et ne sont pas soumis à la mise à jour de l'attribut atime.

Mais il existe également des lignes pour les périphériques et les systèmes de fichiers, qui n'ont pas été abordées dans les articles précédents. De plus, si l'on regarde le fichier /etc/fstab correspondant à la configuration actuelle : $ more /etc/fstab /dev/ad0s1b none swap sw 0 0 /dev/ar0s1b none swap sw 0 0 /dev/ad0s1a / ufs rw, noatime 1 1 /dev/ccd0e /var ufs rw,noatime 2 2 /dev/ccd1e /usr ufs rw,noatime 2 2 /dev/ccd2e /home ufs rw,noatime 2 2 /dev/acd0 /cdrom cd9660 ro,noauto 0 0 / dev/da0s1 /mnt/usb ext2fs rw,noauto,noatime 0 0 /dev/md0 /tmp mfs rw,noatime,async,-s32m 2 0

nous verrons alors que l'une des lignes de sortie (devfs sur /dev (devfs, local) n'a aucune correspondance parmi ses entrées. De quels types de périphériques et de systèmes de fichiers s'agit-il ?

Concernant les appareils comme /dev/ccd0 ? Je dirai simplement pour l'instant qu'il s'agit de matrices RAID logicielles (nous en reparlerons plus en détail plus tard). Mais devfs et mfs sont des systèmes de fichiers virtuels, qui seront abordés directement dans la note suivante.

Avez-vous aimé l'article? Partager avec des amis: