GNU/Linux >> Tutoriels Linux >  >> Linux

Comment échanger /dev/sda avec /dev/sdb ?

J'ai le même problème pour échanger le sda et sdb nom du disque. J'ai essayé d'écrire des règles udev similaires avec le message ci-dessus sur mes propres serveurs HP. Mais j'ai utilisé la taille du disque en /etc/udev/rules.d/00-corrections.rules

KERNEL=="sd?", ATTR{size}=="781357232", NAME="sda"
KERNEL=="sd??", ATTRS{size}=="781357232", NAME="sda%n"
KERNEL=="sda", ATTR{size}=="3125515952", NAME="sdb"
KERNEL=="sda?", ATTRS{size}=="3125515952", NAME="sdb%n"

Avant cette règle, je trouve la taille des appareils par cat /sys/block/sda/size et cat /sys/block/sdb/size qui est décrit ici :Recherche d'informations à partir de sysfs.

Mais quand j'essaie de tester la règle udev par udevadm test /sys/block/sdb Je vois cette ligne dans la sortie :

NAME="sda" ignoré, les nœuds de périphérique du noyau ne peuvent pas être renommés ; veuillez le corriger dans /etc/udev/rules.d/00-corrections.rules:1

J'ai Ubuntu 18.04 et j'ai trouvé que c'est impossible (au moins dans Ubuntu 18.04) basé sur ce post :Existe-t-il un moyen de modifier les noms de périphériques dans le répertoire /dev ?


De nos jours, le noyau Linux remplit dynamiquement /dev/ selon les règles UDEV.

Permettez-moi d'abord d'expliquer comment fonctionnent les fichiers de périphérique. Chaque fichier de périphérique, généralement un fichier de périphérique bloc, a un numéro majeur et un numéro mineur. Ces nombres décrivent en fait vers quel périphérique le fichier pointe. Le nom ne joue aucun rôle là-dedans. Voyons notre cas particulier des disques :

# ls -l sd*
brw-rw---- 1 root disk 8, 0 Aug 22 15:45 sda
brw-rw---- 1 root disk 8, 1 Aug 22 15:45 sda1
brw-rw---- 1 root disk 8, 2 Aug 22 15:45 sda2
brw-rw---- 1 root disk 8, 3 Aug 22 15:45 sda3
brw-rw---- 1 root disk 8, 5 Aug 22 15:45 sda5
brw-rw---- 1 root disk 8, 6 Aug 22 15:45 sda6

Ici, vous voyez que mon premier disque a plusieurs partitions et que j'ai démarré le 22 août à 15 heures, date à laquelle le noyau a créé les fichiers conformément aux règles. Vous pouvez également voir que le nombre majeur est 8 et que les nombres mineurs sont utilisés pour accéder aux partitions (0 pointant vers le disque entier). Le 'b' au début de chaque ligne indique que chacun d'entre eux est un fichier spécial "block device".

Comme je l'ai dit, le noyau crée les fichiers dynamiquement "de nos jours". Cela n'a pas toujours été le cas et ce n'est pas le cas sur les autres systèmes Unix. Là, les fichiers seraient créés de manière statique et l'utilisateur créerait ou manipulerait ces fichiers.

Il est parfaitement possible de créer vos propres fichiers d'appareils, avec votre propre nom et des numéros majeurs/mineurs. Voir mknod (man mknod ) pour ça. Cependant, après le redémarrage, vos fichiers personnalisés disparaîtront.

La deuxième possibilité est de changer les règles UDEV. Les règles seront traitées lors du démarrage du système, et vous garantissent un comportement cohérent en permanence. Un bon guide sur ces règles peut être trouvé ici :http://www.reactivated.net/writing_udev_rules.html

Vous verrez qu'il est possible de définir une règle qui crée "sda*" en fonction des informations matérielles spécifiques qui correspondent à votre appareil. Vous devrez remplacer les règles d'origine qui créeraient sda par les vôtres. Le fonctionnement dépend de votre distribution.

Comme je pense que c'est une entreprise dangereuse pour le novice, je ne vais pas vous expliquer les étapes spécifiques; le document que j'ai lié ci-dessus vous donnera toutes les informations dont vous avez besoin, et vous devriez en effet tout lire.


Linux
  1. Comment générer un mot de passe aléatoire sous Linux en utilisant /dev/random

  2. Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

  3. Quelle est la portabilité de /dev/stdin, /dev/stdout et /dev/stderr ?

  4. Comment mapper les périphériques /dev/sdX et /dev/mapper/mpathY à partir du périphérique /dev/dm-Z

  5. DD de /dev/zero à /dev/null...ce qui se passe réellement

Comment remplacer un disque dur défaillant dans un RAID logiciel Linux

tty (/dev/tty ) vs pts (/dev/pts) sous Linux

Comment Linux utilise /dev/tty et /dev/tty0

Est-ce une erreur de lier /dev/random à /dev/urandom sous Linux ?

echo ou print /dev/stdin /dev/stdout /dev/stderr

Pourquoi < ou > sont-ils nécessaires pour utiliser /dev/tcp