GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:come verificare se un dispositivo a blocchi è di sola lettura da /sys o /proc?

Su un sistema CentOS6 ho /dev/block/sr0 (sola lettura) e /dev/block/sda (leggere scrivere). Come posso scoprire a livello di codice quali dispositivi sono di sola lettura? C'è un ro file lì dentro, ma è "0" per entrambi i dispositivi.

Ci sono alcuni hack che potrei usare (confronta i nomi ^sr rispetto a ^sd , cerca cdrom proprietà del nodo dispositivo), ma mi piacerebbe avere una soluzione generica.

Risposta accettata:

Se /sys/block/xxx/ro è 1, quindi il kernel garantisce che sia di sola lettura

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

In caso contrario, il kernel potrebbe farti provare a scriverci sopra, ma la scrittura potrebbe essere bloccata a un livello inferiore.

Per i CD/DVD, puoi scoprire il tipo di supporto (sola lettura, scrivibile, riscrivibile, sessione aperta...), con cdrdao disk-info .

Ora il dispositivo potrebbe essere scrivibile, ma potresti non avere il permesso di scrittura per il file del dispositivo, ma questa è un'altra storia e può essere facilmente verificata con [ -w "$dev" ]


Linux
  1. Linux:come leggere da /proc/$pid/mem sotto Linux?

  2. Come ottengo il percorso di un processo in Unix/Linux

  3. Quando dovrei usare /dev/shm/ e quando dovrei usare /tmp/?

  4. Linux:differenza tra /dev/console , /dev/tty e /dev/tty0

  5. /sys/ documentazione?

/proc/cpuinfo e /proc/meminfo in Linux

Comprendere i file /proc/mounts, /etc/mtab e /proc/partitions

/proc/[pid]/pagemaps e /proc/[pid]/maps | Linux

Come scoprire da quale cartella è in esecuzione un processo?

Come determinare la velocità massima della CPU di un processore in Linux?

I siti web dovrebbero vivere in /var/ o /usr/ in base all'utilizzo consigliato?