파일을 확인해보니/proc/sys/dev/cdrom/info
$ cat /proc/sys/dev/cdrom/info
CD-ROM information, Id: cdrom.c 3.20 2003/12/17
drive name: sr0
drive speed: 1
drive # of slots: 1
Can close tray: 1
Can open tray: 1
Can lock tray: 1
Can change speed: 1
Can select disk: 0
Can read multisession: 1
Can read MCN: 1
Reports media changed: 1
Can play audio: 1
Can write CD-R: 1
Can write CD-RW: 1
Can read DVD: 1
Can write DVD-R: 1
Can write DVD-RAM: 1
Can read MRW: 1
Can write MRW: 1
Can write RAM: 1
CD-ROM이 로드되었는지 확인하기 위해 고려해야 할 열을 찾을 수 없습니다.
인터넷 검색에서도 파일 값을 확인하라고 했는데 /proc/sys/dev/cdrom/lock
제 경우에는 1이었습니다. 이것을 어떻게 설명해야 할까요?
아니면 이 정보를 얻을 수 있는 다른 방법이 있나요?
답변1
내 테스트에 따르면 가장 좋은 방법은 다음과 같습니다.
blockdev --getsize64 /dev/sr0
설치가 필요하지 않으며 미디어가 비어 있는지, 오디오가 있는지 상관하지 않습니다.
이 오류가 발생하는 경우:
blockdev: cannot open /dev/sr0: No medium found
이는 CD-ROM이 로드되지 않았음을 의미합니다. 출력이 0 이상의 숫자(숫자는 바이트 크기를 나타냄)이면 CD-ROM이 로드됩니다.
물론 헤드, 파일, cd-info, 기타 도구(cat, grep, sed를 사용할 수 있지만 디스크/미디어가 비어 있지 않으면 그다지 유용하지 않음)를 사용할 수 있지만 본질적으로 다음을 찾게 될 것입니다. 오류/"미디어를 찾을 수 없음" 줄을 출력합니다(파일 도구 제외).
내가 말했듯이 가장 좋은 방법은 blockdev입니다(제 생각에는). 하지만 원한다면 다음과 같은 다른 방법을 사용할 수도 있습니다.
head -1 /dev/sr0
터미널 출력 없음 - CD-ROM이 로드되었지만 디스크가 비어 있음을 나타냅니다.
오류 줄 "미디어를 찾을 수 없습니다" - CD-ROM이 로드되지 않았음을 의미합니다.
기타 모든 터미널 출력(오류 제외) - CD-ROM이 로드되었음을 나타냅니다.
cd-info
가장 짧은 타자기. "미디어를 찾을 수 없음" 줄을 찾으십시오. 미디어가 로드되지 않은 것으로 나타나면 실제로는 미디어가 로드되었음을 의미합니다. 또한 CD-ROM에 대한 기타 유용한 정보도 얻을 수 있습니다.
file -s /dev/sr0
터미널 출력 "/dev/sr0: 쓰기 가능, 읽기 권한 없음"은 미디어가 로드되지 않았음을 나타내고 터미널 출력 "/dev/sr0: 비어 있음"은 미디어가 로드되었지만 비어 있음을 나타냅니다.
답변2
lock
드라이브에서 꺼내기 버튼(있는 경우)이 활성화되어 있는지 여부만 알려줍니다. 일반적으로 Linux에서는 디스크를 설치할 때 꺼내기 버튼이 비활성화됩니다.
뭔가 있는지 확인하기 위해예광학 드라이브에 설치되면 내용을 검사 /etc/mtab
하고 마운트 지점(예: /mnt/cdrom
) 또는 광학 드라이브 장치(예: /dev/cdrom
)를 찾을 수 있습니다.
답변3
에서 "ID_CDROM_MEDIA"를 확인하십시오 udevadm info -q property /dev/cdrom
. 물론 이것은 새로 가져온 CD에 대한 드라이브 초기화가 잠시 후에 완료된 경우에만 작동합니다.
답변4
드라이브가 로드되었는지, 비어 있는지, 열려 있는지 또는 준비되지 않았는지 테스트하려면 ioctl()
호출 CDROM_DRIVE_STATUS
(0x5326)을 사용할 수 있습니다. 이는 Documentation/userspace-api/ioctl/cdrom.rst
Linux 커널 소스 코드에 문서화되어 Documentation/cdrom/cdrom-standard.rst
있으며 의 샘플 프로그램에서 사용됩니다 Documentation/cdrom/ide-cd.rst
. 이는 설치되었는지, 재생 중인지, 아니면 다른 것이 있는지 알려주지 않으며 단지 무언가가 있는지 여부만 알려주는 것이 아닙니다.
이 작업을 수행하는 프로그램을 찾을 수 없어서 직접 작성했습니다. 이 경험을 바탕으로 /sys/dev/block/을 확인해 볼 수도 있습니다.기본:미성년자/inflight 드라이브가 "사용 중"인지 여부를 결정합니다. 처음부터 읽는 데 몇 초가 걸릴 수 있고 프로세스 중에 장치를 켤 수도 없기 때문에 이 검사는 수행할 가치가 있습니다.