Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.3. Structure du système de fichiers

Red Hat Enterprise Linux 7 apporte deux modifications majeurs à la structure du système de fichiers.
  • Les répertoires /bin, /sbin, /lib et /lib64 se trouvent désormais sous le répertoire /usr.
  • Le répertoire /tmp peut désormais être utilisé en tant que système de stockage de fichiers temporaires (tmpfs).

4.3.1. Nouvelle structure pour le système de fichiers racine

Traditionnellement, seul le contenu nécessaire minimum était inclus dans les répertoires /bin et /lib afin d'éviter de ralentir le processus de démarrage. certains utilitaires devaient se trouver au niveau de la racine (/) afin de monter la partition /usr. Ceci a créé une situation dans laquelle les autres utilitaires étalaient leur contenu sur de multiples niveaux de répertoires, par exemple dans /bin et /usr/bin.
Red Hat Enterprise Linux 7 déplace les répertoires /bin, /sbin, /lib et /lib64 dans /usr. Comme le système de fichiers /usr peut désormais être monté par initramfs plutôt que par des utilitaires dans les répertoires de niveau racine, il n'est plus nécessaire de diviser le contenu des paquets entre les deux niveaux de répertoires. Ceci permet d'avoir un système de fichiers racine bien plus petit, ce qui offre la possibilité aux systèmes de partager l'espace disque de manière plus efficace et d'avoir des systèmes plus facile à maintenir, plus flexibles et plus sécurisés.
Pour amoindrir l'impact de ce changement, l'ancien répertoire /bin est désormais un lien symbolique vers /usr/bin, /sbin est un lien symbolique vers /usr/sbin et ainsi de suite.

4.3.1.1. Préparer votre système pour la mise à niveau

Si /usr est actuellement sur une autre partition, assurez-vous que la partition /usr possède suffisamment d'espace pour des copies de /bin, /sbin, /lib et /lib64.
Si /usr ne se trouve pas sur une autre partition, assurez-vous que le répertoire / possède suffisamment d'espace pour les copies de secours de /bin, /sbin, /lib et de /lib64.
Si /var se trouve sur une autre partition, vous devrez manuellement convertir /var/run et /var/lock en liens symboliques, comme suit :
# mv -f /var/run /var/run.runmove~
# ln -sfn /run /var/run
# mv -f /var/lock /var/lock.lockmove~
# ln -sfn /run/lock /var/lock
Lorsque vos préparatifs sont terminés, veuillez consulter le Guide d'installation Red Hat Enterprise Linux 7 pour obtenir des instructions sur le processus de mise à niveau.

4.3.1.2. Vérifier la réussite d'une mise à niveau

Après avoir effectué le processus de mise à niveau, il est important de vérifier que celle-ci a fonctionné comme prévu.
  1. Veuillez vérifier que les liens symboliques suivants existent :
    • /bin est un lien symbolique vers /usr/bin
    • /sbin est un lien symbolique vers /usr/sbin
    • /lib est un lien symbolique vers /usr/lib
    • /lib64 est un lien symbolique vers /usr/lib64
    • /var/run est un lien symbolique vers /run
    • /var/lock est un lien symbolique vers /run/lock
    Si, comme prévu, les répertoires listés sont des liens symboliques, deux vérifications supplémentaires seront requises.
  2. Veuillez vérifier la sortie de la commande de rechercher suivante :
    # find /usr/{lib,lib64,bin,sbin} -name '.usrmove'
    Les fichiers ou répertoires affichés en réponse à cette commande n'ont pas pu être copiés sur /usr car un fichier ou un répertoire avec le même nom était déjà présent dans /usr. Vous devrez résoudre ces conflits de dénomination manuellement.
  3. Veuillez vérifier quels fichiers vous souhaitez préserver dans les répertoires suivants :
    • /var/run.runmove~
    • /var/lock.lockmove~
Si l'un des répertoires listé n'est pas un lien symbolique, vous devrez suivre le processus de récupération décrit dans Section 4.3.1.3, « Récupération après un échec de mise à niveau ».

4.3.1.3. Récupération après un échec de mise à niveau

Le processus de mise à niveau peut échouer pour de nombreuses raisons. Veuillez vérifier la sortie des commandes suivantes pour voir ce qu'il s'est passé :
# dmesg
# journalctl -ab --full
Si aucune erreur n'est visible, vérifiez que :
  • / est inscriptible
  • /usr est inscriptible
  • /usr est monté correctement
  • / possède suffisamment d'espace
  • /usr possède suffisamment d'espace
  • /var est monté dans l'outil rhelup
Veuillez contacter le support Red Hat si vous avez besoin d'aide supplémentaire.