블록 장치 기능 플래그는 무엇을 의미합니까?

블록 장치 기능 플래그는 무엇을 의미합니까?

sysfs의 Linux 블록 장치에 capability부분 레코드가 있는 파일이 있습니다.여기. 글쎄, 그 중 하나가 문서화되었습니다.

암시하는 바와 같이 genhd.h, 다른 것들도 있습니다. 이에 대한 문서가 있습니까? 아니면 그것이 무엇을 의미하는지 아는 사람이 있습니까?

귀하의 편의를 위해 여기에 나열되어 있습니다.

  • GENHD_FL_이동식
  • GENHD_FL_CD
  • GENHD_FL_UP
  • GENHD_FL_SUPPRESS_PARTITION_INFO
  • GENHD_FL_EXT_DEVT
  • GENHD_FL_NATIVE_CAPACITY
  • GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE
  • GENHD_FL_NO_PART_SCAN
  • GENHD_FL_HIDDEN

뿐만 아니라,

이동할 수 있는? 이동식 USB 드라이브를 선호하시나요? /sys/block/*/removable과의 관계? 추가의?

확장 개발이란 무엇입니까?

파티션을 억제하시겠습니까?

부품 스캔이 없나요? 파티션을 억제하는 것과 다른가요?

위로?

CD? "이것은 CD 드라이브입니다"처럼요? 왜? 다른 의미가 있나요?

네이티브 능력?

답변1

커널 6.3부터,capability파일은 더 이상 사용되지 않으며 항상 0을 나타냅니다..

질문을 했을 당시 유일하게 문서화된 플래그는 더 이상 사용되지 않았습니다! 다른 의미는 다음과 같습니다.

  • GENHD_FL_REMOVABLE:블록 장치는 이동식 미디어에 대한 액세스를 제공합니다. 블록 장치는 미디어 가용성에 따라 표시되거나 사라지지 않습니다. 예를 들어, 이는 CD-ROM 드라이브(블록 장치가 항상 존재하는 경우)에는 작동하지만 USB 저장소처럼 작동하는 장치(드라이브가 연결된 동안에만 블록 장치가 존재하는 경우)에는 작동하지 않습니다.
  • GENHD_FL_CD: 블록 장치는 CD-ROM 유형의 장치입니다. 에 대한 반응에 영향을 미칩니다 CDROM_GET_CAPABILITY ioctl.
  • GENHD_FL_UP: 블록 장치가 "up" 상태에 있음을 나타내며 이는 네트워크 인터페이스의 의미와 유사합니다. 이는 주로 삭제 시 경합을 피하기 위해 다른 블록 장치 하위 시스템과 동기화하는 데 사용됩니다.
  • GENHD_FL_SUPPRESS_PARTITION_INFO: 출력 에 /proc/partitions파티션 정보를 포함 하지 마십시오 printk_all_partitions()(커널 로그에 표시됨). 빈 블록 장치 및 일부 MMC 장치에 사용됩니다.
  • GENHD_FL_EXT_DEVT: 드라이버는 확장된 역학을 지원합니다 dev_t. 즉, 확장된 장치 번호( BLOCK_EXT_MAJOR,블록 전공 259). 이는 최대 파티션 수에 영향을 미칩니다.
  • GENHD_FL_NATIVE_CAPACITY: 파티션 테이블의 정보에 따르면 장치의 용량이 원래 용량으로 확장되었습니다.장치에는 파티션 중 하나에서 사용되는 숨겨진 용량이 있습니다(이것은 기본 용량이 한 번만 잠금 해제되도록 사용되는 플래그입니다). 예를 들어, 드라이브가 분할된 경우 다음이 있습니다.호스트 보호 지역오버레이 파티션의 일부를 만듭니다.
  • GENHD_FL_BLOCK_EVENTS_ON_EXCL_WRITE:작성자가 배타적 잠금을 보유하고 있는 동안 이벤트 폴링은 차단됩니다.
  • GENHD_FL_NO_PART_SCAN: 파티션 검색이 비활성화됩니다. 루프 장치 및 일부 MMC 장치의 기본 설정에 사용됩니다.
  • GENHD_FL_HIDDEN: 블록 장치는 숨겨져 있으며 이벤트를 생성하지 않으며 sysfs에 표시되지 않으며 관련 수단 도 없습니다 bdev. 다중 경로 장치와 함께 사용됩니다.GENHD_FL_SUPPRESS_PARTITION_INFOGENHD_FL_NO_PART_SCAN

대부분이 제거되었거나 더 적합한 위치로 이동되었습니다.GENHD_FL_REMOVABLE, GENHD_FL_HIDDEN그리고 유지GENHD_FL_NO_PART( 장치가 파티셔닝을 지원하지 않음을 나타내기 GENHD_FL_NO_PART_SCAN위해 이름이 변경되었습니다 .)GENHD_FL_NO_PART

관련 정보