GNU/Linux >> Znalost Linux >  >> Linux

Linux – Jak otestovat, zda je blokové zařízení pouze pro čtení z /sys nebo /proc?

Na systému CentOS6 mám /dev/block/sr0 (pouze pro čtení) a /dev/block/sda (číst psát). Jak mohu programově zjistit, která zařízení jsou pouze pro čtení? Existuje ro soubor tam, ale pro obě zařízení je to „0“.

Existují nějaké hacky, které bych mohl použít (srovnej jména ^sr vs ^sd , vyhledejte cdrom vlastnictví uzlu zařízení), ale rád bych měl obecné řešení.

Přijatá odpověď:

Pokud /sys/block/xxx/ro je 1, pak jádro zaručuje, že je pouze pro čtení

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

Pokud tomu tak není, může vám jádro umožnit pokusit se na něj zapisovat, ale zápis může být blokován na nižší úrovni.

U CD/DVD můžete zjistit typ média (pouze pro čtení, zapisovatelné, přepisovatelné, otevřené relace…), pomocí cdrdao disk-info .

Nyní může být zařízení zapisovatelné, ale možná nemáte oprávnění k zápisu do souboru zařízení, ale to je jiný příběh a lze to snadno zkontrolovat pomocí [ -w "$dev" ]


Linux
  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  2. Linux – Rozdíl mezi /sys/block/sda1/stat a /sys/block/xvda1/stat?

  3. Linux – sloučení /usr/bin A /usr/sbin do /bin (gnu/linux)?

  1. Jak namapovat zařízení /dev/sdX a /dev/mapper/mpathY ze zařízení /dev/dm-Z

  2. /proc/[pid]/pagemaps a /proc/[pid]/maps | linux

  3. Kdy mám použít /dev/shm/ a kdy /tmp/?

  1. Jak zjistit, ze které složky běží proces?

  2. Jak určit maximální rychlost CPU procesoru v Linuxu?

  3. Linux:Rozdíl mezi /dev/console , /dev/tty a /dev/tty0