GNU/Linux >> Tutoriels Linux >  >> Linux

Linux - Comment tester si un périphérique bloc est en lecture seule depuis /sys ou /proc ?

Sur un système CentOS6, j'ai /dev/block/sr0 (lecture seule) et /dev/block/sda (lire écrire). Comment puis-je savoir par programme quels appareils sont en lecture seule ? Il y a un ro fichier là-dedans, mais c'est '0' pour les deux appareils.

Il y a quelques hacks que je pourrais utiliser (comparer les noms ^sr contre ^sd , cherchez cdrom propriété du nœud de l'appareil), mais j'aimerais avoir une solution générique.

Réponse acceptée :

Si /sys/block/xxx/ro est 1, alors le noyau garantit qu'il est en lecture seule

$ sudo losetup /dev/loop0 a
$ sudo losetup -r /dev/loop1 b
$ cat /sys/block/loop0/ro
0
$ cat /sys/block/loop1/ro
1

Si ce n'est pas le cas, le noyau peut vous laisser essayer d'écrire dessus, mais l'écriture peut être bloquée à un niveau inférieur.

Pour les CD/DVD, vous pouvez connaître le type de média (lecture seule, inscriptible, réinscriptible, session ouverte…), avec cdrdao disk-info .

Maintenant, le périphérique peut être accessible en écriture, mais vous n'avez peut-être pas l'autorisation d'écrire sur le fichier de périphérique, mais c'est une autre histoire et peut être facilement vérifié avec [ -w "$dev" ]


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

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

  3. Comment obtenir le chemin d'un processus sous Unix / Linux

  4. Comment savoir à partir de quel dossier un processus est en cours d'exécution ?

  5. Comment déterminer la vitesse maximale du processeur d'un processeur sous Linux ?

Linux :Différence entre /dev/console , /dev/tty et /dev/tty0 ?

Linux – La différence entre /sys/block/sda1/stat et /sys/block/xvda1/stat ?

Fichiers /proc/cpuinfo et /proc/meminfo sous Linux

Comprendre les fichiers /proc/mounts, /etc/mtab et /proc/partitions

/sys/ documentation ?

Les sites Web doivent-ils vivre dans /var/ ou /usr/ selon l'utilisation recommandée ?