NTFS n'est pas pris en charge par défaut sur RHEL 8 / CentOS 8. Pour rendre notre système capable de lire et d'écrire des périphériques de bloc formatés avec ce système de fichiers propriétaire, nous devons installer le ntfs-3g
logiciel, qui est généralement fourni par des référentiels tiers comme Epel
. Au moment de la rédaction, cependant, une version de cette source logicielle pour Rhel8 n'existe pas déjà, nous verrons donc comment l'installer à partir de la source en quelques étapes simples.
Dans ce didacticiel, vous apprendrez :
- Comment compiler ntfs-3g à partir de la source
- Comment installer ntfs-3g
- Comment monter un périphérique bloc formaté avec ntfs-3g
- Comment formater un périphérique bloc avec le système de fichiers ntfs
- Comment vérifier l'intégrité du système de fichiers ntfs à l'aide de ntfsfix
La page de manuel de ntfs-3g sur Rhel 8
Configuration logicielle requise et conventions utilisées
Catégorie | Exigences, conventions ou version du logiciel utilisée |
---|---|
Système | RHEL 8/CentOS 8 |
Logiciel | Le groupe de packages "Outils de développement" |
Autre | Privilèges root pour installer ntfs-3g |
Conventions | # - nécessite que les commandes linux données soient exécutées avec les privilèges root soit directement en tant qu'utilisateur root, soit en utilisant sudo commande$ – nécessite que les commandes linux données soient exécutées en tant qu'utilisateur normal non privilégié |
Qu'est-ce que ntfs-3g ?
Le ntfs-3g
le logiciel open source implémente un support complet (lecture et écriture) pour le propriétaire ntfs
système de fichiers créé par Microsoft et utilisé dans toutes les versions récentes du système d'exploitation Windows. La plupart des distributions Linux incluent le package ntfs-3g dans leurs référentiels, mais ce n'est pas le cas pour Red Hat Enterprise Linux 8.
Sur cette distribution, le package est généralement fourni par des référentiels tiers comme Epel (Extra Packages for Enterprise Linux); au moment de la rédaction, cependant, la version spécifique à Rhel8 de cette source logicielle n'est pas encore disponible. Comme solution alternative, nous pouvons compiler et installer ntfs-3g
de source. Nous allons apprendre comment faire dans ce tutoriel.
Installer les dépendances de compilation
Pour pouvoir compiler et installer ntfs-3g, nous devons installer certaines dépendances dans notre système. Tout ce dont nous avons besoin est généralement inclus dans le groupe de packages Outils de développement. Pour ceux d'entre vous qui ne sont pas familiers avec le concept de groupe de packages, vous pouvez considérer un package grous comme un "méta-package", ce qui nous permet d'installer de nombreux packages associés à l'aide d'une seule commande. Pour installer le groupe de packages "Outils de développement", nous pouvons exécuter :
$ sudo dnf groupinstall "Development Tools"
Dans le cas où nous avons installé une version minimale de Rhel8, pour pouvoir décompresser l'archive source ntfs-3g, nous devrons également installer tar
qui n'est (étonnamment) pas inclus par défaut dans l'ensemble des packages de ce type d'installation :
$ sudo dnf install tar
Télécharger et compiler le code source
Maintenant que nous avons installé toutes les dépendances nécessaires, nous pouvons continuer et télécharger le code source ntfs-3g. L'archive source est disponible à cette adresse. Nous pouvons combiner le curl
et tar
commandes pour le télécharger et l'extraire en une seule étape :
$ curl https://tuxera.com/opensource/ntfs-3g_ntfsprogs-2017.3.23.tgz | tar -xvpz
Après avoir exécuté cette commande, nous devrions trouver que ntfs-3g_ntfsprogs-2017.3.23
dossier a été créé :
$ ls ntfs-3g_ntfsprogs-2017.3.23
L'étape suivante consiste à entrer dans ce répertoire et à exécuter le configure
script, qui préparera le code source pour la compilation proprement dite :
$ cd ntfs-3g_ntfsprogs-2017.3.23 && ./configure --prefix=/usr/local --disable-static
Lors de l'exécution de la configure
script, nous pouvons fournir certaines options qui influenceront la manière dont le logiciel est installé. L'un des plus importants est prefix
et --exec-prefix
. Le premier est utilisé pour configurer où les fichiers indépendants de l'architecture doivent être installés dans le système de fichiers (par défaut le /usr/local
annuaire). Ce dernier a la même fonction mais pour les fichiers indépendants de l'architecture :par défaut, il est défini pour prendre la même valeur de PREFIX
.
Par défaut, tous les fichiers seront installés sous /usr/local
, dans les répertoires appropriés :les binaires seront placés sous /usr/local/bin
, bibliothèques sous /usr/local/lib
, etc. Pour obtenir un contrôle plus fin, il est possible de spécifier le chemin de destination pour chaque groupe de fichiers en utilisant des options comme --libdir
ou --bindir
. Pour lire tous les commutateurs possibles que nous pouvons utiliser lors de l'exécution du script "configure", nous pouvons le déjeuner avec le -h
option (abréviation de –help).
Dans l'exemple ci-dessus, nous aurions pu omettre de spécifier un préfixe, puisque nous avons utilisé la valeur par défaut de toute façon, mais nous avons utilisé une autre option, --disable-static
, qui est nécessaire pour désactiver l'utilisation des versions statiques des bibliothèques nécessaires au programme :en bref, lorsque static
est activé (valeur par défaut), les bibliothèques dont dépend le(s) exécutable(s) sont « fusionnées » dans le programme au moment de la compilation. Cette configuration peut avoir ses avantages, mais produira des exécutables plus volumineux. Ce que nous voulons, à la place, c'est que les mêmes bibliothèques soient partagées par tous les programmes qui en ont besoin.
Lancez la commande ci-dessus et attendez qu'elle se termine. L'étape suivante consiste à compiler le code source en cours d'exécution :
$ make
La compilation commencera et de nombreux messages s'afficheront à l'écran. Une fois la tâche terminée, nous pouvons continuer et installer les fichiers compilés. Depuis la destination spécifiée avec --prefix
, nous avons besoin des privilèges root pour effectuer l'action :
$ sudo make install
La commande copiera les fichiers compilés dans leurs répertoires de destination. Les binaires et les binaires système (binaires qui nécessitent des privilèges de super utilisateur pour fonctionner correctement), par exemple, seront placés respectivement sous /usr/local/bin
et /usr/local/sbin
:
$ ls /usr/local/bin ntfs-3g.probe ntfscat ntfscluster ntfscmp ntfsfix ntfsinfo ntfsls $ ls /usr/local/sbin mkntfs ntfsclone ntfscp ntfslabel ntfsresize ntfsundelete
La commande effectuera également quelques étapes supplémentaires :certains fichiers seront créés dans le répertoire /bin et liés symboliquement à /usr/bin :/bin/ntfs-3g
sera lié en tant que /sbin/mount.ntfs-3g
et /bin/lowntfs-3g
vers /sbin/mount.lowntfs-3g
. Enfin, un lien symbolique vers /usr/local/sbin/mkntfs
sera créé en tant que /sbin/mkfs.ntfs
. Certains de ces liens sont nécessaires pour que les programmes relatifs soient invoqués par root sans avoir à spécifier l'emplacement complet de leur système de fichiers, puisque, par défaut, seul le /sbin
, /bin
, /usr/sbin
et /usr/bin
les répertoires sont inclus dans son PATH
.
Opérations sur le système de fichiers
Maintenant que ntfs-3g est installé, nous pouvons voir comment l'utiliser pour effectuer des opérations typiques telles que le montage et la vérification d'un système de fichiers ou le formatage d'un périphérique bloc avec.
Monter un périphérique bloc formaté avec le système de fichiers ntfs
Supposons que nous ayons le /dev/sdb1
appareil formaté avec le système de fichiers ntfs, et nous voulons le monter sur /mnt/data
. Voici la commande que nous devons exécuter :
$ sudo mount /dev/sdb1 -t ntfs-3g /mnt/data
Remarquez comment nous avons utilisé le -t
commutateur pour spécifier le type de système de fichiers (ntfs-3g). Dans le cas où nous voulons que le système de fichiers soit automatiquement monté au démarrage, nous devons ajouter une entrée pour celui-ci dans /etc/fstab
, dans ce cas :
/dev/sdb1 /mnt/data ntfs-3g defaults 0 0
Où /dev/sdb1
est le périphérique bloc hébergeant le système de fichiers, /mnt/data
est le point de montage à utiliser et ntfs-3g
est le type de système de fichiers. Dans ce cas, nous avons utilisé les options de montage par défaut, mais vous pouvez, bien sûr, utiliser celles dont vous avez besoin.
Formater un périphérique bloc avec le système de fichiers ntfs
Une autre opération que nous pouvons souhaiter effectuer consiste à formater un périphérique de bloc existant avec le système de fichiers ntfs. La commande à exécuter pour accomplir la tâche est :
$ sudo mkfs.ntfs /dev/sdb1
Où encore, /dev/sdb1
est le périphérique bloc à formater avec le système de fichiers ntfs, qui doit être démonté pour que l'opération réussisse.
Vérifiez l'intégrité du système de fichiers ntfs
Vérifier l'intégrité d'un système de fichiers est une opération très importante qui doit également être effectuée lorsque le système de fichiers n'est pas monté. Même dans ce cas, la commande à exécuter est très simple (ici, nous devons fournir le chemin complet de l'utilitaire car un lien vers celui-ci n'existe pas dans le PATH de l'utilisateur root) :
$ sudo /usr/local/bin/ntfsfix /dev/sdb1
Autres utilitaires
Ntfs-3g fournit également d'autres utilitaires très utiles pour effectuer des opérations spécifiques sur un système de fichiers ntfs. Entre autres :ntfsundelete
qui est utilisé pour récupérer des fichiers supprimés d'un système de fichiers ntfs, ntfsresize
qui nous permet de redimensionner un système de fichiers ntfs sans perte de données, et ntfsclone
qui est utilisé pour cloner, imager et restaurer un système de fichiers ntfs.
Désinstallation de ntfs-3g
Puisque nous avons installé ntfs-3g à partir du code source, nous ne pouvons pas utiliser le gestionnaire de packages de distribution pour le désinstaller. Pour supprimer les fichiers de notre système, nous devons d'abord retourner dans le dossier où nous avons compilé l'application, qui contient également le Makefile
et lancez :
$ sudo make uninstall
Tous les fichiers et liens créés précédemment seront supprimés du système de fichiers.
Conclusion
Ntfs-3g est un ensemble open source d'utilitaires et de bibliothèques utilisés pour interagir pleinement avec le système de fichiers propriétaire ntfs :il n'est pas inclus dans les référentiels par défaut RHEL 8 / CentOS 8, et il est généralement installé à partir de sources tierces comme Epel. Étant donné qu'au moment de la rédaction de ce dernier, ce dernier n'est pas encore disponible, dans ce didacticiel, nous avons vu comment installer ntfs-3g à partir du code source en quelques étapes simples. Nous avons également vu comment effectuer les opérations les plus courantes sur ce système de fichiers :montage, formatage et vérification de son intégrité.