OD(4)

명칭
od - SCSI 광디스크 드라이버

서식
device od device od1 at scbus0 target 3 lun 0

가짜의 ASC/ASCQ 를 돌려주는 드라이버를 사용하려면 options OD_BOGUS_NOT_READY

자동 회전 정지 기능을 사용하려면 options OD_AUTO_TURNOFF

해설
od 드라이버는 SCSI 광디스크 (이른바 , 광자기나 상변화 광학 디스크) 드라이브를 서포트합니다. 미디어의 교환이나, 디스크를 분할해 파티션 (으)로 불리는 유사 디바이스에 할당하는 것이 가능하게 됩니다. 파티션에는 raw 인터페이스와 블록 모드 인터페이스가 있습니다. 인터페이스는 전반적으로 wd(4) (이)나 sd(4) 의 기술과 같습니다.

기동중에 SCSI 어댑터가 프로브 될 때, 디바이스를 검출하기 위해서 SCSI 버스를 조사할 수 있습니다. 검출된 것의 집 ‘Optical (빛)’ 한편 ‘removable (떼어내 가능)’ 형태와 돌려주어지는 어느 디바이스도 od 드라이버에 접속됩니다. FreeBSD 2.1.5 이후에서는, 최초로 검출된 디바이스는 od0 (으)로서 접속되어 다음은 od1 (와)과 이하와 같이 계속됩니다. 디바이스가 어느 od 유니트로서 가동해야할 것인가를 지정할 수 있습니다. 커널의 구성에 대한 자세한 것은 scsi(4) (을)를 참조해 주세요. FreeBSD 2.2 (으)로부터 od 드라이버는 ‘Optical (빛)’ 한편 ‘removable (떼어내 가능)’ 형태 뿐만이 아니라, ‘Direct (직접)’ 한편 ‘removable (떼어내 가능)’ 형태와 돌려주어지는 어떤 디바이스 유니트도 조작할 수 있습니다.

파티쇼닝
od 드라이버는 디스크에 대해, 2 개의 계층의 파티션이 가능합니다. 1 번째의 층은 “슬라이스층” (으)로 불리는 것으로, FreeBSD area와 그 외의 operating system로 사용되고 있는 area를 분리하기 위해서 이용합니다. 2 번째는, disklabel(5) 에 의한 순전한 4.4BSD 의 파티쇼닝 기구이며, FreeBSD 슬라이스를 독자적인 파일 시스템에 세분하기 위해서 이용합니다. 자세한 것은, fdisk(8) 및 disklabel(8) (을)를 각각 참조해 주세요.

초기화되어 있지 않은 디스크가 열리면(자), 디스크 전체까지 미치는 가공의 FreeBSD 슬라이스에 의해, 슬라이스 테이블이 초기화됩니다. 같이 초기화되어 있지 않다 (혹은 비 FreeBSD) 슬라이스가 열리면(자), 드라이브 및 슬라이스 전체를 포함한 단일 ‘c’ 파티션에 의해 돌려주어지는 파라미터로, 디스크 label가 초기화됩니다.

커널의 설정
설정 파일에 od 디바이스가 1 개만 필요합니다. 즉 데이터 구조는, 디스크가 SCSI 버스상에 검출되었을 때, 동적으로 할당할 수 있습니다.

IOCTL
다음의 ioctl(2) 콜은 다른 디스크 뿐만이 아니라, 광디스크에도 대응합니다. 이것들은 헤더 파일 <sys/disklabel.h> 에 정의되고 있습니다.

DIOCSBAD
    통상, 디스크상의 불량 블록 매핑 시스템을 설정하기 위해서 이용됩니다. SCSI 드라이버는 독자적인 불량 블록 매핑을 짜넣으므로, 이것은 실장되고 있지 않습니다. 그러나, 장래적으로는, SCSI 불량 블록 매핑에의 '대처적인 (kludged)'인터페이스로서 실장될지도 모릅니다.

DIOCGDINFO
    드라이브용의 디스크 label의 내부 카피를, 커널을로부터 읽어들입니다. 드라이브가 초기화되어 있지 않을 때는, 가공의 디스크 label일지도 모릅니다. 이 경우는, SCSI 조사 (inquiry) 명령로 읽어들인 정보를 포함합니다. 그리고 기동시에 표시되는 정보와 같게 됩니다.

DIOCSDINFO
    드라이버에 새로운 디스크 label를 줍니다. 드라이버는, 새로운 디스크 label를 디스크에 기입하지 않습니다.

DIOCWLABEL
    디스크상의 디스크 label에 대한 드라이버의 소프트웨어 기록방지를, 유효 또는 무효로 합니다.

DIOCWDINFO
    드라이버에 새로운 디스크 label를 줍니다. 드라이버는, 새로운 디스크 label를 디스크에 기입하려고 합니다.

다음의 ioctl(2) 콜은 다른 디스크 뿐만이 아니라, 광디스크에도 대응합니다. 이것들은 헤더 파일 <sys/cdio.h> 에 정의되고 있습니다.

CDIOCEJECT
    광디스크를 배출합니다.

CDIOCALLOW
    드라이브에 대해, 광디스크의 수동 배출을 허가합니다.

CDIOCPREVENT
    드라이브에 대해, 광디스크의 수동 배출을 금지합니다.

더해, scsi(4) 의 일반적인 ioctl 는 od 드라이버로 사용해도 상관하지 않습니다. 그러나 4 번째의 파티션 (디스크 전체) 만일 수 있는은 피해 주세요.

주
현재로서는, od 드라이버는 512, 1024, 2048 바이트/섹터의 미디어에 대응하고 있습니다. raw 및 블록 모드의 디바이스에 있어서의, 비 512 바이트/섹터의 미디어에의 액세스는, 각 섹터 사이즈 경계선의 개시 위치와 I/O 사이즈에 관한 보고 가능합니다.

관련 파일
/dev/rodu
    raw 모드의 SCSI 광디스크 유니트 u 입니다. 파티쇼닝되어 있지 않은 디바이스로서 액세스 됩니다.
/dev/odusn
    블록 모드의 SCSI 광디스크 유니트 u 슬라이스 n 입니다. 파티쇼닝되어 있지 않은 디바이스로서 액세스 됩니다.
/dev/rodusn
    raw 모드의 SCSI 광디스크 유니트 u 슬라이스 n 입니다. 파티쇼닝되어 있지 않은 디바이스로서 액세스 됩니다.
/dev/odup
    블록 모드의 SCSI 광디스크 유니트 u 의 최초의 FreeBSD 슬라이스의 파티션 p 입니다.
/dev/rodup
    raw 모드의 SCSI 광디스크 유니트 u 의 최초의 FreeBSD 슬라이스의 파티션 p 입니다.
    /dev/odusnp 블록 모드의 SCSI 광디스크 유니트 u 의 n 번째의 슬라이스에 존재하는 파티션 p 입니다.
    /dev/rodusnp raw 모드의 SCSI 광디스크 유니트 u 의 n 번째의 슬라이스에 존재하는 파티션 p 입니다.
    /dev/rodu.ctl scsi(8) 그리고 사용되는 제어 디바이스 유니트 u 입니다.

진단
없습니다.

관련 항목
fdisk(1), cd(4), scsi(4), sd(4), disklabel(5), disklabel(8)

저자
Shunsuke Akiyama <akiyama@jp.FreeBSD.org>

역사
od 드라이버는 FreeBSD2.1.5 그리고 등장했습니다.