GNU/Linux >> Linux の 問題 >  >> Linux

Linux –ブロックデバイスが/sysまたは/procから読み取り専用かどうかをテストする方法は?

CentOS6システムでは、/dev/block/sr0があります (読み取り専用)および/dev/block/sda (読み書き)。どのデバイスが読み取り専用であるかをプログラムで確認するにはどうすればよいですか? roがあります そこにファイルがありますが、両方のデバイスで「0」です。

私が使用できるいくつかのハックがあります(名前^srを比較してください vs ^sdcdromを探します デバイスノードの所有権)ですが、一般的なソリューションが必要です。

承認された回答:

/sys/block/xxx/roの場合 が1の場合、カーネルは読み取り専用であることを保証します

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

そうでない場合、カーネルは書き込みを試みることができますが、書き込みは下位レベルでブロックされる可能性があります。

CD / DVDの場合、cdrdao disk-infoを使用して、メディアのタイプ(読み取り専用、書き込み可能、​​再書き込み可能、​​オープンセッション…)を確認できます。 。

これで、デバイスは書き込み可能になる可能性がありますが、デバイスファイルへの書き込み権限がない可能性がありますが、これは別の話であり、[ -w "$dev" ]で簡単に確認できます。


Linux
  1. Unix / Linux でプロセスのパスを取得するにはどうすればよいですか

  2. /proc/[pid]/pagemaps および /proc/[pid]/maps | Linux

  3. /dev/shm/ と /tmp/ はいつ使用する必要がありますか?

  1. Linux –Linuxで/proc / $ pid / memから読み取る方法は?

  2. プロセスが実行されているフォルダーを見つける方法は?

  3. 推奨される使用方法に従って、Web サイトは /var/ または /usr/ に配置する必要がありますか?

  1. Linux:/ dev / console、/ dev / tty、/ dev / tty0の違いは?

  2. Linux – / proc // exeシンボリックリンクは通常のシンボリックリンクとどのように異なりますか?

  3. Linux – / sys / block / sda1/statと/sys/ block / xvda1 / statの違いは?