IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Déterminer à quel système de fichiers un fichier appartient.


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Août 2018
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2018
    Messages : 42
    Par défaut Déterminer à quel système de fichiers un fichier appartient.
    Bonjour

    Je cherche à déterminer, dans un programme en C++, à quel système de fichiers un fichier appartient.

    Jusqu'à présent j'utilisais la commande fstat(), récupérais le champ dev_t pour en déduire les versions MAJ et MIN du périphérique. Et je retrouvais le point de montage, l'UUID du système de fichiers ou de la partition à partir du fichier /proc/self/mountinfo.
    Cette méthode fonctionne bien sur des partitions EXT4 ou NTFS mais ne marche plus si le fichier se trouve dans un système BTRFS.

    La seule alternative que je vois est de parcourir tous les points de montage du système, en particulier les sous-volumes BTRFS, pour déduire lequel serait le plus proche du chemin de mon fichier.
    Et je ne sais pas si cette méthode est fiable, notamment en cas de liens symboliques.

    Mon besoin réel est d'identifier sur quel disque physique le fichier se trouve réellement, afin de m'assurer que j'ai des copies répliquées sur des disques différents.
    BTRFS me pose du coup d'autres problèmes puisque le système de fichiers peut être étalé sur plusieurs disques et que plusieurs copies d'un même fichier peuvent éventuellement pointer vers le même fichier physique.
    Mais, à la rigueur, si le cas se produisait, je pourrais considérer tous les disques couverts par le filesystem BTRFS comme un seul périphérique, au moins du point de vue de la réplication.

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Août 2018
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2018
    Messages : 42
    Par défaut
    Bonjour

    J'ai réussi à m'en sortir avec la fonction statx().
    La structure statx possède un champ stx_mnt_id qui correspond à la première colonne de /proc/self/mountinfo.
    A partir de là, on peut récupérer le point de montage, le device et l'UUID du système de fichiers.

    Cependant, on peut tomber sur un device virtuel si la partition est un Raid, une LVM ou un Btrfs.
    Il est possible de retrouver le device physique en cherchant dans :
    /sys/class/block/[device]/slaves/
    avec plusieurs niveaux d'indirection.

    Pour du Raid, par exemple, j'ai retrouvé le disque physique dans :
    /sys/class/block/dm-3/slaves/md126/slaves/sda1

    Il faudra que je m'intéresse aux configurations multidisques. Mais je n'en ai pas sous la main pour l'instant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [D7] Quel moteur BD fichier?
    Par fredtheman dans le forum Delphi
    Réponses: 5
    Dernier message: 06/07/2006, 20h34
  2. C'est quel langage un fichier nom_fichier .do ?
    Par toan dans le forum Autres langages
    Réponses: 3
    Dernier message: 26/01/2006, 09h59
  3. [Configuration ] Quel format de fichier?
    Par charliejo dans le forum Windows
    Réponses: 3
    Dernier message: 25/01/2006, 10h52
  4. [quel langage] sauvegarder fichier dont l'url est connu
    Par azerty_essai dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 28/03/2005, 12h14
  5. Quel format de fichier utiliser pour les maps ?
    Par fb57 dans le forum OpenGL
    Réponses: 3
    Dernier message: 23/09/2004, 20h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo