3

Linux用にマウントされたデバイスのリストのようなものを作成しています。

プログラムの起動時に、既存のマウントについて/ etc/mtabを解析します。システムに追加された新しいマウントについて通知を受け取るには、DBusを使用しており、メッセージにはvolume.labelプロパティがあります。/ dev/sda1や/dev/ sddなどのデバイス名に基づいてボリュームラベルを取得する方法はありますか?

編集: しばらくして、私はこの問題の解決策を見つけることができました。Pythongioモジュールには、VolumeMonitorという名前のクラスがあります。したがって、適切な名前と正しいアイコンを含むリストを取得するのは、get_mounts()メソッドの結果を反復処理するだけです。

for mount in volume_monitor.get_mounts():
    print mount.get_name(), mount.get_icon()

ドライブとボリュームのリストを取得することもできます。いくつかの信号を接続して、リストを適切に更新することもできます。ただし、1つの注意が必要です。ボリュームはリストに最初に表示され、最初に独自のイベントをトリガーします。マウントは後で行われます。したがって、アクティブなマウントのリストを維持したい場合は、との代わりにmount-addedと信号をリッスンします。mount-removedvolume-addedvolume-removed

4

2 に答える 2

2

e2labelコマンドを使用する代わりに、次を使用blkidしてその出力を解析できます。

$ blkid -o value -s LABEL /dev/sda1
/boot
于 2011-03-25T13:09:34.713 に答える
1

このe2labelコマンドを次のように使用すると、ボリューム ラベルが表示されます。

e2label /dev/sda1

注: これは、ext2、ext3、または ext4 ファイルシステムでのみ機能します。

os.systemPython から、またはでコマンドを呼び出すことができます。Popen

于 2011-01-30T14:04:18.627 に答える