/sys/class/bdi
장치에 대한 미리 읽기 및 더티 페이지 비율과 같은 설정 기능을 제공합니다. 이는 주:부 장치 번호 또는 st_dev
파일 시스템 설정 값인 bdi 식별자로 구성됩니다. 내 /sys/class/bdi
내용은 다음과 같습니다.
$ ls /sys/class/bdi/
0:184 0:342 0:345 0:374 0:39 0:40 0:404 0:405 0:42 253:0 253:1 7:0 7:1 8:0 8:16 8:32 default
0:
내 질문은: 항목이 어떤 장치/파일 시스템에 해당하는지 어떻게 알 수 있습니까 ? 0이 아닌 주요 번호가 있는 항목은 eg 에 나열된 장치이지만 /proc/devices
다른 항목의 용도는 무엇인지 알 수 없습니다.
답변1
가상 디렉터리에서 임의의 BDI 식별자를 검색해야 하는 경우 /sys/class/bdi
다음과 같은 작업을 수행하는 것이 좋습니다.
$ sudo find /sys -type l -exec ls -la {} + | grep -E '(bdi|block)/8:32'
lrwxrwxrwx 1 root root 0 Aug 20 12:33 /sys/class/bdi/8:32 -> ../../devices/virtual/bdi/8:32
lrwxrwxrwx 1 root root 0 Aug 20 12:33 /sys/devices/pci0000:00/0000:00:1f.2/ata3/host2/target2:0:0/2:0:0:0/block/sdc/bdi -> ../../../../../../../../virtual/bdi/8:32
lrwxrwxrwx 1 root root 0 Aug 20 12:33 /sys/devices/virtual/bdi/8:32/subsystem -> ../../../../class/bdi
lrwxrwxrwx 1 root root 0 Aug 20 12:33 /sys/dev/block/8:32 -> ../../devices/pci0000:00/0000:00:1f.2/ata3/host2/target2:0:0/2:0:0:0/block/sdc
식별자가 무엇인지 알고 싶다면 8:32
BDI가 블록 장치에 해당한다는 것을 이미 알고 있다면 가상 디렉터리에서 링크를 읽으면 됩니다 /sys/dev/block
. 예를 들어
$ readlink /sys/dev/block/8:32
../../devices/pci0000:00/0000:00:1f.2/ata3/host2/target2:0:0/2:0:0:0/block/sdc
이를 통해 해당 장치가 무엇인지에 대한 좋은 아이디어를 얻을 수 있습니다. 이 예에서는 sdc
세 번째 ATA 커넥터에 연결된 장치 입니다 .
그러나 특정 장치에 대한 BDI 설정에 관심이 있는 경우 가상 디렉터리에서 가상 파일을 읽을 수 있습니다. 예를 들면 다음과 같습니다.
$ grep . /sys/block/sda/bdi/*
/sys/block/sda/bdi/max_ratio:40
/sys/block/sda/bdi/min_ratio:0
grep: /sys/block/sda/bdi/power: Is a directory
/sys/block/sda/bdi/read_ahead_kb:128
/sys/block/sda/bdi/stable_pages_required:0
grep: /sys/block/sda/bdi/subsystem: Is a directory
나는 이것이 대부분의 경우에도 적용된다고 생각합니다.
$ readlink /sys/dev/*/8:32
../../devices/pci0000:00/0000:00:1f.2/ata3/host2/target2:0:0/2:0:0:0/block/sdc
쉘 와일드카드 확장을 사용하여 올바른 장치 클래스를 자동으로 찾습니다.