CD-ROM이 로드되었는지 확인해야 합니다.

CD-ROM이 로드되었는지 확인해야 합니다.

파일을 확인해보니/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.rstLinux 커널 소스 코드에 문서화되어 Documentation/cdrom/cdrom-standard.rst있으며 의 샘플 프로그램에서 사용됩니다 Documentation/cdrom/ide-cd.rst. 이는 설치되었는지, 재생 중인지, 아니면 다른 것이 있는지 알려주지 않으며 단지 무언가가 있는지 여부만 알려주는 것이 아닙니다.

이 작업을 수행하는 프로그램을 찾을 수 없어서 직접 작성했습니다. 이 경험을 바탕으로 /sys/dev/block/을 확인해 볼 수도 있습니다.기본:미성년자/inflight 드라이브가 "사용 중"인지 여부를 결정합니다. 처음부터 읽는 데 몇 초가 걸릴 수 있고 프로세스 중에 장치를 켤 수도 없기 때문에 이 검사는 수행할 가치가 있습니다.

관련 정보