Manpages

名 前

st − SCSI テ ー プ デ バ イ ス

書 式

#include <sys/mtio.h>

int ioctl(int fd, int request [, (void *)arg3]);
int ioctl(int
fd, MTIOCTOP, (struct mtop *)mt_cmd);
int ioctl(int
fd, MTIOCGET, (struct mtget *)mt_status);
int ioctl(int
fd, MTIOCPOS, (struct mtpos *)mt_pos);

説 明

st ド ラ イ バ ー は 様 々 な SCSI テ ー プ デ バ イ ス の イ ン タ ー フ ェ イ ス を 提 供 す る 。 現 在 で は 、 ド ラ イ バ ー は 検 出 さ れ た 全 て の “シ ー ケ ン シ ャ ル ア ク セ ス (sequential−access) ” タ イ プ の デ バ イ ス へ の 制 御 を 行 う 。 st ド ラ イ バ ー は メ ジ ャ ー デ バ イ ス 番 号 9 を 用 い る 。 そ れ ぞ れ の デ バ イ ス は 8 つ の マ イ ナ ー デ バ イ ス 番 号 を 使 う 。 マ イ ナ ー 番 号 の 低 位 側 の 5 ビ ッ ト は 、 検 出 さ れ た 順 に 割 り 当 て ら れ る 。 カ ー ネ ル 2.6 で は 、 低 位 側 8 ビ ッ ト よ り も 上 位 に あ る ビ ッ ト 群 が こ の 5 ビ ッ ト に 連 結 (concatenate) さ れ 、 テ ー プ 番 号 と な る 。 マ イ ナ ー 番 号 は 、 そ れ ぞ れ 4 つ の 数 字 か ら な る 二 つ の セ ッ ト に グ ル ー プ 分 け さ れ る 。 基 本 (自 動 巻 き 戻 し ) デ バ イ ス 番 号 n、 お よ び “非 巻 き 戻 し (no−rewind) ” デ バ イ ス 番 号 (n + 128). で あ る 。 基 本 デ バ イ ス 番 号 を 用 い て オ ー プ ン さ れ た デ バ イ ス に は 、 ク ロ ー ズ す る 時 に REWIND コ マ ン ド が 送 ら れ る 。 “非 巻 き 戻 し ” デ バ イ ス 番 号 を 用 い て オ ー プ ン さ れ た 場 合 は REWIND コ マ ン ド は 送 ら れ な い (自 動 巻 き 戻 し デ バ イ ス を テ ー プ の 位 置 決 め に (例 え ば mt で ) 用 い て も 、 望 む 結 果 は 得 ら れ な い 。 テ ー プ は mt コ マ ン ド の 後 で 巻 き 戻 さ れ 、 次 の コ マ ン ド は テ ー プ の 先 頭 か ら 始 ま っ て し ま う )。 そ れ ぞ れ の グ ル ー プ で 、 異 な っ た 特 性 (ブ ロ ッ ク サ イ ズ ・ 圧 縮 ・ 密 度 な ど ) の デ バ イ ス を 定 義 す る た め に 4 つ の マ イ ナ ー 番 号 が 利 用 で き る 。 シ ス テ ム が 起 動 し た と き に は 、 最 初 の デ バ イ ス だ け が 使 え る 。 他 の 3 つ は デ フ ォ ル ト の 特 性 が 定 義 さ れ て 初 め て 使 え る よ う に な る (後 述 )。 (コ ン パ イ ル 時 の 定 数 を 変 更 す る こ と に よ っ て 、 テ ー プ ド ラ イ ブ の 最 大 数 と 、 そ れ ぞ れ の ド ラ イ ブ に 割 り 当 て ら れ る マ イ ナ ー 番 号 の 個 数 と を 調 整 で き る 。 デ フ ォ ル ト の 割 り 当 て で は 32 台 ま で の テ ー プ ド ラ イ ブ を 制 御 で き る 。 例 え ば 64 台 ま で の テ ー プ ド ラ イ ブ を 、 異 な っ た オ プ シ ョ ン を 持 つ 二 つ の マ イ ナ ー 番 号 で 制 御 す る よ う に も で き る 。 ) デ バ イ ス は 普 通 次 の よ う に 作 ら れ る :

mknod −m 666 /dev/st0 c 9 0
mknod −m 666 /dev/st0l c 9 32
mknod −m 666 /dev/st0m c 9 64
mknod −m 666 /dev/st0a c 9 96
mknod −m 666 /dev/nst0 c 9 128
mknod −m 666 /dev/nst0l c 9 160
mknod −m 666 /dev/nst0m c 9 192
mknod −m 666 /dev/nst0a c 9 224 こ れ ら に は 対 応 す る ブ ロ ッ ク デ バ イ ス は 存 在 し な い 。 ド ラ イ バ は 内 部 バ ッ フ ァ ー を 使 い 、 そ の 大 き さ は 少 な く と も テ ー プ の 1 ブ ロ ッ ク を 保 持 で き る よ う に 取 ら れ る 。 2.1.121 以 前 の カ ー ネ ル で は 、 バ ッ フ ァ ー は 連 続 す る 一 つ の ブ ロ ッ ク と し て 割 り 当 て ら れ る 。 こ の 方 法 だ と 、 ブ ロ ッ ク サ イ ズ の 最 大 値 は カ ー ネ ル の 割 り 当 て 可 能 な 連 続 メ モ リ ー ブ ロ ッ ク に 制 限 さ れ る 。 こ の 制 限 は 32 ビ ッ ト ア ー キ テ ク チ ャ ー で は 128 kB、 64 ビ ッ ト ア ー キ テ ク チ ャ ー で は 256 kB で あ る 。 こ れ 以 降 の カ ー ネ ル で は 、 ド ラ イ バ は 必 要 に 応 じ て い く つ か に わ か れ た バ ッ フ ァ ー を 割 り 当 て る 。 デ フ ォ ル ト で は 16 個 ま で の 部 分 に 分 割 で き る 。 す な わ ち ブ ロ ッ ク サ イ ズ の 最 大 値 は 非 常 に 大 き い (128 kB の ブ ロ ッ ク 16 個 の 割 り 当 て に 成 功 す れ ば 2 MB と な る )。 ド ラ イ バ の 内 部 バ ッ フ ァ ー の サ イ ズ は コ ン パ イ ル 時 の 定 数 で 定 義 さ れ る 。 こ れ は カ ー ネ ル の 起 動 時 オ プ シ ョ ン に よ っ て 上 書 き 可 能 で あ る 。 さ ら に ド ラ イ バ は 実 行 時 に も 、 必 要 に 応 じ て よ り 大 き な 一 時 バ ッ フ ァ ー を 割 り 当 て よ う と す る 。 し か し 実 行 時 に 大 き な 連 続 メ モ リ ー ブ ロ ッ ク を 割 り 当 て よ う と す る と 失 敗 す る こ と が あ る の で 、 2.1.121 以 前 の カ ー ネ ル で は 、 動 的 な バ ッ フ ァ ー 割 り 当 て は あ ま り あ て に し な い ほ う が 良 い (こ れ は kerneld や kmod に よ る ド ラ イ バ の デ マ ン ド ロ ー ド に 関 し て も 当 て は ま る )。 ド ラ イ バ は ド ラ イ ブ の メ ー カ や モ デ ル を 特 定 し て サ ポ ー ト す る わ け で は な い 。 シ ス テ ム が 起 動 す る と 、 テ ー プ デ バ イ ス の オ プ シ ョ ン が ド ラ イ ブ の フ ァ ー ム ウ ェ ア に よ っ て 定 義 さ れ る 。 例 え ば 、 ド ラ イ ブ の フ ァ ー ム ウ ェ ア が 固 定 長 ブ ロ ッ ク モ ー ド を 選 択 す れ ば 、 テ ー プ デ バ イ ス は 固 定 長 ブ ロ ッ ク モ ー ド を 使 う こ と に な る 。 こ の オ プ シ ョ ン は ioctl(2) コ ー ル を 明 示 的 に 使 え ば 変 更 で き 、 そ の 変 更 は デ バ イ ス が ク ロ ー ズ さ れ て 再 び オ ー プ ン さ れ た と き も 残 る 。 オ プ シ ョ ン の 設 定 は 、 自 動 巻 き 戻 し デ バ イ ス と 非 巻 き 戻 し デ バ イ ス の 両 方 に 影 響 す る 。

4 つ の サ ブ グ ル ー プ そ れ ぞ れ の デ バ イ ス に 対 し て 異 な る オ プ シ ョ ン を 与 え る こ と が で き る 。 オ プ シ ョ ン は デ バ イ ス が オ ー プ ン さ れ た と き に 効 力 を 発 揮 す る 。 例 え ば 、 シ ス テ ム 管 理 者 は あ る デ バ イ ス を 適 当 な ブ ロ ッ ク サ イ ズ の 固 定 長 ブ ロ ッ ク モ ー ド で 書 き 込 む よ う に 定 義 し 、 別 の デ バ イ ス を 可 変 長 ブ ロ ッ ク モ ー ド で 書 き 込 む よ う に で き る (ド ラ イ ブ が 両 方 の モ ー ド を サ ポ ー ト し て い れ ば )。 こ の ド ラ イ バ は 、 テ ー プ の パ ー テ ィ シ ョ ン を サ ポ ー ト し て い る (ド ラ イ ブ が サ ポ ー ト し て い る 場 合 )。 (テ ー プ の パ ー テ ィ シ ョ ン は デ ィ ス ク パ ー テ ィ シ ョ ン と は な ん の 関 係 も な い 。 パ ー テ ィ シ ョ ン 化 さ れ た テ ー プ は 、 一 つ の メ デ ィ ア に 複 数 の 論 理 テ ー プ が 存 在 す る か の よ う に 見 え る 。 ) パ ー テ ィ シ ョ ン の サ ポ ー ト は ioctl(2) に よ っ て 有 効 に で き る 。 パ ー テ ィ シ ョ ン が 変 更 さ れ る と 、 テ ー プ の 位 置 は そ れ ぞ れ の パ ー テ ィ シ ョ ン 内 部 で 保 存 さ れ る 。 パ ー テ ィ シ ョ ン の 選 択 は ioctl(2) で 行 う 。 そ れ 以 降 の テ ー プ 操 作 の 対 象 は 、 そ の パ ー テ ィ シ ョ ン に な る 。 パ ー テ ィ シ ョ ン の 切 り 替 え は 、 次 の テ ー プ 操 作 と 同 時 に 行 わ れ 、 不 必 要 な テ ー プ 移 動 を し な く て す む よ う に な っ て い る 。 一 つ の テ ー プ に お け る パ ー テ ィ シ ョ ン の 最 大 数 は コ ン パ イ ル 時 の 定 数 に よ っ て 定 義 さ れ る (通 常 は 4)。 ド ラ イ バ に は 、 テ ー プ の 1 つ ま た は 2 つ の パ ー テ ィ シ ョ ン を フ ォ ー マ ッ ト で き る よ う な ioctl(2) が 用 意 さ れ て い る 。 通 常 、 シ ス テ ム の デ フ ォ ル ト の テ ー プ デ バ イ ス に 対 す る ハ ー ド リ ン ク ま た は ソ フ ト リ ン ク と し て 、 デ バ イ ス /dev/tape が 作 成 さ れ る 。 カ ー ネ ル 2.6.2 以 降 で は 、 こ の ド ラ イ バ は sysfs デ ィ レ ク ト リ /sys/class/scsi_tape に 、 ア タ ッ チ し た デ バ イ ス と そ の デ バ イ ス に 割 当 て た パ ラ メ ー タ ー を エ ク ス ポ ー ト す る 。 デ ー タ 転 送 こ の ド ラ イ バ は 固 定 長 ブ ロ ッ ク モ ー ド と 可 変 長 ブ ロ ッ ク モ ー ド の 両 方 を サ ポ ー ト し て い る (ド ラ イ ブ が サ ポ ー ト し て い れ ば )。 固 定 長 ブ ロ ッ ク モ ー ド で は 、 ド ラ イ ブ は 決 ま っ た サ イ ズ の ブ ロ ッ ク を (複 数 個 ) 書 き 込 む 。 こ の ブ ロ ッ ク サ イ ズ は write シ ス テ ム コ ー ル の バ イ ト 数 に よ ら な い 。 可 変 長 ブ ロ ッ ク モ ー ド で は 、 write コ ー ル ご と に 一 つ の テ ー プ ブ ロ ッ ク に 書 き 込 み が 行 わ れ る 。 し た が っ て バ イ ト 数 が 対 応 す る テ ー プ ブ ロ ッ ク の サ イ ズ を 決 め る 。 テ ー プ 上 の ブ ロ ッ ク に は 、 書 き 込 み モ ー ド の 情 報 は 一 切 含 ま れ な い 。 読 み 込 み の と き に 重 要 な こ と は 、 テ ー プ の ブ ロ ッ ク サ イ ズ を 受 け 入 れ る コ マ ン ド を 使 う か ど う か だ け で あ る 。 可 変 長 ブ ロ ッ ク モ ー ド で は 、 読 み 込 み バ イ ト 数 は テ ー プ の ブ ロ ッ ク サ イ ズ と 必 ず し も 一 致 し て い な く て も 良 い 。 バ イ ト 数 が テ ー プ の 次 の ブ ロ ッ ク よ り も 大 き け れ ば 、 ド ラ イ バ は そ の デ ー タ を 返 し 、 関 数 は 実 際 の ブ ロ ッ ク サ イ ズ を 返 す 。 ブ ロ ッ ク サ イ ズ が バ イ ト 数 よ り も 大 き け れ ば 、 要 求 さ れ た 分 の デ ー タ が ブ ロ ッ ク の 先 頭 か ら 読 み 込 ま れ て 返 さ れ 、 ブ ロ ッ ク の 残 り は 破 棄 さ れ る 。 固 定 長 ブ ロ ッ ク モ ー ド で は 、 バ ッ フ ァ ー リ ン グ が 有 効 に な っ て い れ ば 読 み 込 み バ イ ト 数 は 任 意 の 大 き さ で よ い 。 バ ッ フ ァ ー リ ン グ が 無 効 の 場 合 は 、 テ ー プ の ブ ロ ッ ク サ イ ズ の 整 数 倍 で な け れ ば な ら な い 。 2.1.121 以 前 の カ ー ネ ル で は 、 バ ッ フ ァ ー リ ン グ が 有 効 な 場 合 に は 任 意 の バ イ ト 数 の 書 き 込 み が で き る 。 そ の 他 の 場 合 す べ て (2.1.121 以 前 の カ ー ネ ル で バ ッ フ ァ ー が 無 効 な 場 合 と 、 新 し い カ ー ネ ル の 場 合 ) で は 、 書 き 込 み バ イ ト 数 は テ ー プ ブ ロ ッ ク サ イ ズ の 整 数 倍 で な け れ ば な ら な い 。

2.6 カ ー ネ ル で は 、 こ の ド ラ イ バ は ユ ー ザ ー バ ッ フ ァ ー と デ バ イ ス 間 で 、 デ ー タ の 直 接 転 送 (direct transfer) を 試 み る 。 こ れ が 不 可 能 な 場 合 は 、 ド ラ イ バ の 内 部 バ ッ フ ァ ー を 用 い る 。 直 接 転 送 が で き な い 理 由 と し て は 、 ユ ー ザ ー バ ッ フ ァ ー の ア ラ イ ン メ ン ト が 適 切 で な い (デ フ ォ ル ト は 512 バ イ ト だ が HBA ド ラ イ バ に よ っ て 変 更 さ れ て い る 可 能 性 が あ る )、 ユ ー ザ ー バ ッ フ ァ ー の ペ ー ジ が SCSI ア ダ プ タ ー か ら 見 え な い 、 な ど が 考 え ら れ る 。 テ ー プ を ク ロ ー ズ す る 直 前 の テ ー プ 操 作 命 令 が 書 き 込 み で あ れ ば 、 フ ァ イ ル マ ー ク が 自 動 的 に テ ー プ へ 書 き 込 ま れ る 。 読 み 込 み 時 に フ ァ イ ル マ ー ク に 出 会 う と 、 以 下 が 実 行 さ れ る 。 フ ァ イ ル マ ー ク が 見 付 か っ た と き に バ ッ フ ァ ー に デ ー タ が 残 っ て い る と 、 バ ッ フ ァ ー の デ ー タ が 返 さ れ る 。 次 の 読 み 込 み 操 作 は 0 バ イ ト を 返 す 。 そ の 次 の 読 み 込 み は 次 の フ ァ イ ル か ら の デ ー タ を 返 す 。 記 録 デ ー タ の 末 尾 は 、 読 み 込 み 操 作 が 二 回 続 け て 0 バ イ ト を 返 し て 来 る か た ち で 通 知 さ れ る 。 三 回 目 の 読 み 込 み は エ ラ ー を 返 す 。

ioctl ド ラ イ バ は 3 つ の ioctl(2) 要 求 を サ ポ ー ト し て い る 。 st ド ラ イ バ に よ っ て 認 識 さ れ な か っ た 要 求 は SCSI ド ラ イ バ に わ た さ れ る 。 以 下 の 定 義 は /usr/include/linux/mtio.h に よ る 。

MTIOCTOP — テ ー プ 操 作 の 実 行 こ の 要 求 は (struct mtop *) 型 の 引 数 を と る 。 全 て の ド ラ イ ブ が 全 て の 操 作 を サ ポ ー ト し て い る わ け で は な い 。 ド ラ イ ブ が 操 作 を 拒 否 す る と 、 ド ラ イ バ は EIO エ ラ ー を 返 す 。

/* Structure for MTIOCTOP − mag tape op command: */
struct mtop {
short mt_op; /* operations defined below */
int mt_count; /* how many of them */ }; 通 常 の テ ー プ 利 用 の た め の 磁 気 テ ー プ 操 作 :

MTBSF

mt_count 個 の フ ァ イ ル マ ー ク (filemark) 分 の 後 方 ス ペ ー ス (backward space)。

MTBSFM

mt_count 個 の フ ァ イ ル マ ー ク 分 の 後 方 ス ペ ー ス 。 テ ー プ の 位 置 を 最 後 の フ ァ イ ル マ ー ク の EOT 側 に 変 更 す る 。

MTBSR

mt_count 個 の レ コ ー ド (テ ー プ ブ ロ ッ ク ) 分 の 後 方 ス ペ ー ス 。

MTBSS

mt_count 個 の セ ッ ト マ ー ク 分 の 後 方 ス ペ ー ス 。

MTCOMPRESSION

mt_count が 0 以 外 な ら 、 ド ラ イ ブ の デ ー タ 圧 縮 を 有 効 に す る 。 0 な ら 圧 縮 を 無 効 に す る 。 こ の コ マ ン ド は MODE ペ ー ジ 15 を 用 い る 。 こ れ は ほ と ん ど の DAT で サ ポ ー ト さ れ て い る 。

MTEOM

(フ ァ イ ル を 追 加 す る た め に ) メ デ ィ ア の 記 録 部 分 の 最 後 ま で 進 め る 。

MTERASE

テ ー プ の 内 容 を 消 去 す る 。 2.6 カ ー ネ ル で は 、 引 数 が 0 な ら ば short erase (テ ー プ が 空 だ と 印 を つ け る ) を 行 う 。 そ れ 以 外 の 場 合 は long erase (全 体 を 消 去 す る ) を 行 う 。
MTFSF

mt_count 個 の フ ァ イ ル マ ー ク 分 の 前 方 ス ペ ー ス (forward space)。

MTFSFM

mt_count 個 の フ ァ イ ル マ ー ク 分 の 前 方 ス ペ ー ス 。 テ ー プ の 位 置 は 最 後 の フ ァ イ ル マ ー ク の BOT 側 変 更 さ れ る 。

MTFSR

mt_count 個 の レ コ ー ド (テ ー プ ブ ロ ッ ク ) 分 の 前 方 ス ペ ー ス 。

MTFSS

mt_count 個 の セ ッ ト マ ー ク 分 の 前 方 ス ペ ー ス 。

MTLOAD

SCSI ロ ー ド コ マ ン ド を 実 行 す る 。 HP オ ー ト ロ ー ダ ー に 限 っ て 利 用 で き る 。 mt_count が 定 数 MT_ST_HPLOADER_OFFSET と あ る 数 値 の 和 で あ る 場 合 、 そ の 数 値 が ド ラ イ ブ に 送 ら れ 、 オ ー ト ロ ー ダ ー の 制 御 に 用 い ら れ る 。

MTLOCK

テ ー プ ド ラ イ ブ の 扉 を ロ ッ ク す る 。

MTMKPART テ ー プ を

1 ま た は 2 パ ー テ ィ シ ョ ン に フ ォ ー マ ッ ト す る 。

mt_count が 0 で な け れ ば 、 こ れ が 最 初 の パ ー テ ィ シ ョ ン の サ イ ズ を 与 え 、 二 番 目 の パ ー テ ィ シ ョ ン が テ ー プ の 残 り に な る 。 mt_count が 0 の 場 合 は 、 テ ー プ は 一 つ の パ ー テ ィ シ ョ ン と し て フ ォ ー マ ッ ト さ れ る 。 こ の コ マ ン ド は 、 パ ー テ ィ シ ョ ン の サ ポ ー ト が 有 効 に さ れ た ド ラ イ ブ で な け れ ば 使 え な い (以 下 の MT_ST_CAN_PARTITIONS を 見 よ )。

MTNOP 何 も 操 作 を 行 わ な い 。

—副 次 的 な 効 果 と し て 、 ド ラ イ バ ー の バ ッ

フ ァ ー を フ ラ ッ シ ュ す る 。 MTIOCGET を 使 っ て 状 態 を 読 み 出 す 前 に は こ の 操 作 を 行 う べ き で あ る 。

MTOFFL 巻 き 戻 し

(rewind) を 行 い 、 ド ラ イ ブ を オ フ ラ イ ン (off line)

に す る 。

MTRESET ド ラ イ ブ を リ セ ッ ト す る 。

MTRETEN テ ー プ を リ テ ン シ ョ ン

(re−tension) す る (テ ー プ を 最 後 ま で 巻 い た 後 、 最 初 ま で 巻 き 戻 す )。

MTREW 巻 き 戻 し 。

MTSEEK

mt_count で 指 定 さ れ た テ ー プ ブ ロ ッ ク 番 号 を シ ー ク す る 。 こ の 操 作 が 行 え る の は 、 LOCATE コ マ ン ド (デ バ イ ス 固 有 の ア ド レ ス ) を サ ポ ー ト す る SCSI−2 ド ラ イ ブ か 、 あ る い は Tandberg 互 換 の SCSI−1 ド ラ イ ブ (Tandberg, Archive, Viper, Wangtek,…) で あ る 。 デ バ イ ス 固 有 の ア ド レ ス が 利 用 さ れ て い る 場 合 は 、 ブ ロ ッ ク 番 号 は 以 前 に MTIOCPOS に よ っ て 返 さ れ た も の に す べ き で あ る 。

MTSETBLK

mt_count の 値 を ド ラ イ ブ の ブ ロ ッ ク 長 (block length) と し て セ ッ ト す る 。 ブ ロ ッ ク 長 を 0 に す る と ド ラ イ ブ は 可 変 長 ブ ロ ッ ク サ イ ズ モ ー ド に セ ッ ト さ れ る 。

MTSETDENSITY

テ ー プ 密 度 (tape density) を mt_count で 示 さ れ る コ ー ド に 変 更 す る 。 ド ラ イ ブ で サ ポ ー ト さ れ て い る 密 度 コ ー ド に つ い て は 、 ド ラ イ ブ の 文 書 に 書 い て あ る だ ろ う 。

MTSETPART

ア ク テ ィ ブ な パ ー テ ィ シ ョ ン を 第 mt_count 番 目 に 切 り 替 え る 。 パ ー テ ィ シ ョ ン は 0 か ら 数 え る 。 こ の コ マ ン ド は 、 パ ー テ ィ シ ョ ン の サ ポ ー ト が 有 効 に さ れ た ド ラ イ ブ で な け れ ば 使 え な い (以 下 の MT_ST_CAN_PARTITIONS を 見 よ )。
MTUNLOAD

SCSI unload コ マ ン ド を 実 行 す る (テ ー プ の イ ジ ェ ク ト は 行 わ な い )。

MTUNLOCK

テ ー プ ド ラ イ ブ の 扉 の ロ ッ ク を 解 除 す る 。

MTWEOF

mt_count 個 の フ ァ イ ル マ ー ク を 書 き 込 む 。

MTWSM

mt_count 個 の セ ッ ト マ ー ク を 書 き 込 む 。

デ バ イ ス オ プ シ ョ ン の 設 定 の た め の (ス ー パ ー ユ ー ザ ー に よ る ) 磁 気 テ ー プ 操 作 :

MTSETDRVBUFFER い ろ い ろ な ド ラ イ ブ と ド ラ イ バ ー の オ プ シ ョ ン を mt_count に エ ン コ ー ド さ れ た 各 ビ ッ ト に 従 っ て 設 定 す る 。 オ プ シ ョ ン に は 、 ド ラ イ ブ の バ ッ フ ァ ー リ ン グ モ ー ド 、 ブ ー ル 値 の ド ラ イ バ オ プ シ ョ ン の 集 合 、 バ ッ フ ァ ー の 書 き 込 み 閾 値 (デ フ ォ ル ト は ブ ロ ッ ク サ イ ズ と 密 度 )、 タ イ ム ア ウ ト 値 が 含 ま れ る (カ ー ネ ル 2.1 以 降 )。 一 回 の 操 作 で 変 え ら れ る の は 、 上 記 の リ ス ト の ど れ か 一 つ だ け で あ る (複 数 の ブ ー ル 値 は ま と め て 一 つ と 勘 定 さ れ る )。 高 位 の 4ビ ッ ト が ゼ ロ で あ る 値 は 、 ド ラ イ ブ の バ ッ フ ァ ー リ ン グ モ ー ド の 設 定 に 使 わ れ る 。 バ ッ フ ァ ー リ ン グ モ ー ド は 以 下 の 通 り :

0 ド ラ イ ブ は ラ イ ト コ マ ン ド に 対 し 、 デ ー タ ブ ロ ッ ク が 実 際 に 媒 体 に 書 き 込 ま れ る ま で

GOOD の ス テ ー タ ス を 返 さ な い 。

1 ド ラ イ ブ は ラ イ ト コ マ ン ド に 対 し 、 す べ て の デ ー タ が ド ラ イ ブ の 内 部 バ ッ フ ァ ー に 転 送 さ れ る と す ぐ に 、

GOOD の ス テ ー タ ス を 返 す こ と が で き る 。

2 ラ イ ト コ マ ン ド に 対 し 、 以 下 の

2 つ の 条 件 が そ ろ っ た 場 合 、

ド ラ イ ブ は す ぐ に GOOD ス テ ー タ ス を 返 す 事 が で き る 。 (a) す べ て の デ ー タ が ド ラ イ ブ の 内 部 バ ッ フ ァ ー に 転 送 さ れ た 。 (b) 別 々 の イ ニ シ エ ー タ ー か ら 来 た バ ッ フ ァ ー デ ー タ が 、 す べ て 媒 体 へ 問 題 な く 書 き 込 ま れ た 。 書 き 込 み 閾 値 を 制 御 す る に は 、 mt_count に は 、 定 数 MT_ST_WRITE_THRESHOLD と ブ ロ ッ ク カ ウ ン ト の ビ ッ ト 毎 の OR を と っ た 値 を 下 位 の 28ビ ッ ト に 含 ま ね ば な ら な い 。 こ の ブ ロ ッ ク カ ウ ン ト は 1024 バ イ ト ブ ロ ッ ク を 単 位 と し た も の で 、 テ ー プ の 物 理 ブ ロ ッ ク サ イ ズ を 単 位 と し た も の で は な い 。 ま た 、 閾 値 は ド ラ イ バ の 内 部 バ ッ フ ァ ー (上 記 の 説 明 参 照 ) の サ イ ズ を 越 え る 事 は で き な い 。 ブ ー ル 値 の フ ラ グ を 設 定 ・ 解 除 す る に は 、 mt_count の 値 は MT_ST_BOOLEANS, MT_ST_SETBOOLEANS, MT_ST_CLEARBOOLEANS, MT_ST_DEFBOOLEANS の い ず れ か 一 つ の 値 に 、 以 下 の オ プ シ ョ ン の 任 意 の 組 み 合 わ せ に 対 し て ビ ッ ト 毎 の OR を 取 っ た も の を 指 定 す る 。 MT_ST_BOOLEANSを 用 い る と 、 オ プ シ ョ ン を 対 応 す る ビ ッ ト に 対 し て 定 義 さ れ て い る 値 に 設 定 で き る 。 MT_ST_SETBOOLEANSを 用 い る と 、 オ プ シ ョ ン は 選 択 的 に 設 定 さ れ 、 MT_ST_DEFBOOLEANSを 用 い る と 選 択 的 に 解 除 さ れ る 。

テ ー プ デ バ イ ス の デ フ ォ ル ト の オ プ シ ョ ン は

MT_ST_DEFBOOLEANS

よ っ て 設 定 さ れ る 。 ア ク テ ィ ブ で な い テ ー プ デ バ イ ス (例 : マ イ ナ ー 番 号 が 32 や 160 の デ バ イ ス ) は 、 そ れ ら に 対 す る デ フ ォ ル ト の オ プ シ ョ ン が 最 初 に 定 義 さ れ た と き に ア ク テ ィ ブ に な る 。 ア ク テ ィ ブ に さ れ た デ バ イ ス は 、 起 動 時 に ア ク テ ィ ブ に さ れ た デ バ イ ス か ら 、 明 示 的 に 指 定 さ れ な か っ た オ プ シ ョ ン を 継 承 す る 。

ブ ー ル 値 の オ プ シ ョ ン は 以 下 の 通 り :

MT_ST_BUFFER_WRITES (デ フ ォ ル ト : 真 ) 固 定 長 ブ ロ ッ ク モ ー ド に お け る す べ て の 書 き 込 み 操 作 を バ ッ フ ァ ー リ ン グ す る 。 こ の オ プ シ ョ ン が 偽 で あ り 、 か つ ド ラ イ ブ が 固 定 長 ブ ロ ッ ク サ イ ズ の 時 は 、 す べ て の 書 き 込 み 操 作 は ブ ロ ッ ク サ イ ズ の 倍 数 の 大 き さ で 行 わ な け れ ば な ら な い 。 信 頼 性 の あ る マ ル チ ボ リ ュ ー ム ア ー カ イ ブ を 書 き 込 む た め に は 、 こ の オ プ シ ョ ン は 偽 に 設 定 さ れ て い な け れ ば な ら な い 。
MT_ST_ASYNC_WRITES
(デ フ ォ ル ト : 真 ) こ の オ プ シ ョ ン が 真 の 時 に は 、 デ ー タ が ド ラ イ バ の バ ッ フ ァ ー に 収 ま る 時 に は デ ー タ が ド ラ イ ブ に 転 送 さ れ る の を 待 た ず に 、 す ぐ に 書 き 込 み 操 作 が 返 っ て 来 る 。 バ ッ フ ァ ー が ど の く ら い 空 い た ら 次 の SCSI write コ マ ン ド を 発 行 で き る か は 、 書 き 込 み 閾 値 に よ っ て 決 ま る 。 ド ラ イ ブ が 返 す す べ て の エ ラ ー は 、 次 の 操 作 ま で 保 存 さ れ る 。 信 頼 性 の あ る マ ル チ ボ リ ュ ー ム ア ー カ イ ブ を 書 き 込 む た め に は 、 こ の オ プ シ ョ ン は 偽 に 設 定 さ れ て い な け れ ば な ら な い 。
MT_ST_READ_AHEAD
(デ フ ォ ル ト : 真 ) こ の オ プ シ ョ ン を 指 定 す る と 、 ド ラ イ バ は 固 定 長 ブ ロ ッ ク モ ー ド で 読 み 込 み バ ッ フ ァ ー リ ン グ と 先 読 み を す る よ う に な る 。 こ の オ プ シ ョ ン が 偽 で あ り 、 か つ ド ラ イ ブ が 固 定 長 ブ ロ ッ ク サ イ ズ の 時 は 、 す べ て の 読 み 込 み 操 作 は ブ ロ ッ ク サ イ ズ の 倍 数 の 大 き さ で 行 わ な け れ ば な ら な い 。
MT_ST_TWO_FM
(デ フ ォ ル ト : 偽 ) こ の オ プ シ ョ ン は フ ァ イ ル が ク ロ ー ズ さ れ た 時 の ド ラ イ バ ー の 振 舞 い を 変 更 す る 。 一 つ の フ ァ イ ル マ ー ク を 書 き 込 む の が 通 常 の 動 作 で あ る 。 こ の オ プ シ ョ ン が 真 の 時 に は 、 ド ラ イ バ ー は 2 つ の フ ァ イ ル マ ー ク を 書 き 込 ん で 、 2 つ め の フ ァ イ ル マ ー ク の と こ ろ に 戻 る 。 注 意 : QICテ ー プ ド ラ イ ブ は フ ァ イ ル マ ー ク に 上 書 き す る こ と が で き な い の で 、 こ の オ プ シ ョ ン を 真 に し て は な ら な い 。 こ れ ら の ド ラ イ ブ は 記 録 デ ー タ の 末 尾 の 検 知 に 、 フ ァ イ ル マ ー ク が 2つ 続 け て あ る か で は な く 、 ブ ラ ン ク テ ー プ か ど う か の テ ス ト を 用 い る 。 現 在 の 他 の ほ と ん ど の ド ラ イ ブ も 、 記 録 デ ー タ の 末 尾 を 検 知 す る 。 2 つ の フ ァ イ ル マ ー ク が 必 要 に な る の は 、 他 の シ ス テ ム と テ ー プ を や り と り す る 場 合 で あ る 。
MT_ST_DEBUGGING
(デ フ ォ ル ト : 偽 ) こ の オ プ シ ョ ン を 真 に す る と 、 ド ラ イ バ は い ろ い ろ な デ バ ッ グ 用 メ ッ セ ー ジ を 出 す よ う に な る (DEBUG を 非 ゼ ロ に 定 義 し て ド ラ イ バ を コ ン パ イ ル し て い る 時 の み 有 効 )。
MT_ST_FAST_EOM
(デ フ ォ ル ト : 偽 ) こ の オ プ シ ョ ン を 真 に す る と 、 MTEOM 操 作 が 直 接 ド ラ イ ブ に 送 ら れ る よ う に な る 。 操 作 が 早 く な る は ず だ が 、 ド ラ イ バ が 現 在 の フ ァ イ ル 番 号 を 見 失 う こ と に な る (こ れ は 通 常 な ら MTIOCGET リ ク エ ス ト に よ っ て 返 さ れ る )。 MT_ST_FAST_EOM が 偽 の 時 に は 、 ド ラ イ バ は MTEOM リ ク エ ス ト に 応 え る と き 、 前 方 に フ ァ イ ル を 一 つ 一 つ 進 め て い く 。
MT_ST_AUTO_LOCK
(デ フ ォ ル ト : 偽 ) こ の オ プ シ ョ ン が 真 の 時 に は 、 デ バ イ ス が オ ー プ ン さ れ る と ド ラ イ ブ の 扉 が ロ ッ ク さ れ 、 ク ロ ー ズ さ れ る と ア ン ロ ッ ク さ れ る 。
MT_ST_DEF_WRITES
(デ フ ォ ル ト : 偽 ) テ ー プ オ プ シ ョ ン (ブ ロ ッ ク サ イ ズ 、 モ ー ド 、 圧 縮 な ど ) が あ る ド ラ イ ブ に リ ン ク さ れ た デ バ イ ス で 変 更 さ れ る と 、 そ の 同 じ ド ラ イ ブ に リ ン ク さ れ た 他 の デ バ イ ス で も 変 更 さ れ る こ と が あ る (そ の デ バ イ ス の 定 義 に よ る )。 こ の オ プ シ ョ ン は 、 ド ラ イ バ に よ る 変 更 を い つ SCSI コ マ ン ド に よ っ て 反 映 さ せ る か と 、 ド ラ イ ブ の 自 動 検 知 機 能 が い つ 信 頼 し て 良 い の か を 定 義 す る 。 こ の オ プ シ ョ ン を 偽 に し て お く と 、 デ バ イ ス の 変 更 が あ る と ド ラ イ バ は す ぐ に SCSI コ マ ン ド を 送 る 。 真 に し て お く と 、 SCSI コ マ ン ド は 書 き 込 み が 要 求 さ れ る ま で 送 ら れ な い 。 後 者 の 場 合 は 、 読 み 込 み の 際 に ド ラ イ ブ の フ ァ ー ム ウ ェ ア に よ っ て テ ー プ 構 造 の 検 知 が 行 え る 。 ま た SCSI コ マ ン ド は 、 テ ー プ が 正 し い 指 定 に 沿 っ て 書 き 込 ま れ て い る か ど う か の 確 認 の た め だ け に 用 い ら れ る 。
MT_ST_CAN_BSR
(デ フ ォ ル ト : 偽 ) 先 読 み を 使 う と 、 テ ー プ を ク ロ ー ズ す る と き に 、 場 合 に よ っ て は テ ー プ を 正 し い 位 置 に 逆 戻 し し な け れ ば な ら な い こ と が あ る 。 こ れ に は 、 レ コ ー ド を 越 え て 逆 戻 し す る SCSI コ マ ン ド が 用 い ら れ る 。 古 い ド ラ イ ブ で は 、 こ の コ マ ン ド 処 理 の 信 頼 性 が 低 い こ と が あ る が 、 こ の オ プ シ ョ ン を 指 定 す る と 、 ド ラ イ バ に こ の コ マ ン ド の 利 用 を 禁 止 す る こ と が で き る 。 先 読 み と 固 定 長 ブ ロ ッ ク モ ー ド を 用 い て い る と 、 最 終 的 な 結 果 と し て 、 デ バ イ ス の ク ロ ー ズ 時 に テ ー プ が 正 し い 位 置 に な ら な い こ と が あ る 。 2.6 カ ー ネ ル で は 、 SCSI−3 を サ ポ ー ト し て い る ド ラ イ ブ に 対 し て 、 こ の 値 の デ フ ォ ル ト は 真 と な る 。
MT_ST_NO_BLKLIMS
(デ フ ォ ル ト : 偽 ) ド ラ イ ブ に よ っ て は READ BLOCK LIMITS SCSI コ マ ン ド を 受 け つ け な い こ と が あ る 。 こ の オ プ シ ョ ン を 用 い る と 、 ド ラ イ バ は こ の コ マ ン ド を 用 い な い 。 欠 点 は 、 指 定 し た ブ ロ ッ ク サ イ ズ が ド ラ イ ブ に 受 理 さ れ て し ま う と 、 ド ラ イ バ の コ マ ン ド 送 信 前 チ ェ ッ ク が で き な く な る 点 で あ る 。
MT_ST_CAN_PARTITIONS
(デ フ ォ ル ト : 偽 ) こ の オ プ シ ョ ン は 、 一 つ の テ ー プ に 複 数 パ ー テ ィ シ ョ ン を 置 く こ と を サ ポ ー ト す る か ど う か を 決 め る 。 こ の オ プ シ ョ ン は ド ラ イ ブ に リ ン ク さ れ た 全 て の デ バ イ ス に 適 用 さ れ る 。 こ の オ プ シ ョ ン は 、

seek お よ び tell 操 作 (両 者 と も MTSEEKMTIOCPOS コ マ ン ド を 伴 い 、 テ ー プ 位 置 を 変 更 す る と き ) の 際 に 、 SCSI−2 の 標 準 で 定 義 さ れ て い る 論 理 ブ ロ ッ ク ア ド レ ス を 用 い る か ど う か を ド ラ イ バ に 伝 え る 。 偽 だ と デ バ イ ス 固 有 の ア ド レ ス が 用 い ら れ る 。 ド ラ イ ブ が 論 理 ア ド レ ス を サ ポ ー ト し て い る と き は 、 こ の オ プ シ ョ ン を セ ッ ト す る こ と を 強 く 勧 め る 。 こ の モ ー ド で は フ ァ イ ル マ ー ク も カ ウ ン ト す る か ら で あ る 。 論 理 ブ ロ ッ ク ア ド レ ス し か サ ポ ー ト し な い ド ラ イ ブ も い く つ か 存 在 し て い る 。

MT_ST_SYSV (デ フ ォ ル ト : 偽 ) こ の オ プ シ ョ ン が 真 に な っ て い る と 、 テ ー プ デ バ イ ス は SystemV の ル ー ル を 用 い る 。 偽 だ と BSD の ル ー ル を 用 い る 。 こ れ ら の ル ー ル 間 の 最 も 大 き な 違 い は 、 読 み 込 み を 行 っ て い た デ バ イ ス が ク ロ ー ズ さ れ た と き の 振 舞 い で あ る 。 System V の ル ー ル で は 、 テ ー プ は 次 の フ ァ イ ル マ ー ク を 越 え て 移 動 す る (デ バ イ ス の 利 用 時 に こ れ が 行 わ れ な か っ た 場 合 )。 BSD の ル ー ル で は テ ー プ 位 置 は 変 更 さ れ な い 。
MT_NO_WAIT
(デ フ ォ ル ト : 偽 ) 即 時 モ ー ド (immediate mode; コ マ ン ド の 終 了 を 待 た な い ) を 、 あ る 種 の コ マ ン ド (rewind な ど ) に 対 し て 有 効 に す る 。 例 :

struct mtop mt_cmd;
mt_cmd.mt_op = MTSETDRVBUFFER;
mt_cmd.mt_count = MT_ST_BOOLEANS |
MT_ST_BUFFER_WRITES | MT_ST_ASYNC_WRITES;
ioctl(fd, MTIOCTOP, mt_cmd);

デ バ イ ス の デ フ ォ ル ト の ブ ロ ッ ク サ イ ズ は

MT_ST_DEF_BLKSIZE に よ っ

て 設 定 で き 、 デ フ ォ ル ト の 密 度 コ ー ド は MT_ST_DEFDENSITY に よ っ て 設 定 で き る 。 こ れ ら の パ ラ メ ー タ ー の 値 は 操 作 コ ー ド と OR し て 与 え る 。

2.1.x 以 降 の カ ー ネ ル で は 、 タ イ ム ア ウ ト 値 の 設 定 は 、 サ ブ コ マ ン ド MT_ST_SET_TIMEOUT に 秒 単 位 の タ イ ム ア ウ ト 値 を OR し て 与 え る こ と に よ っ て 行 え る 。 long タ イ ム ア ウ ト (巻 き 戻 し な ど 、 長 い 時 間 が か か る コ マ ン ド に 対 し て 用 い ら れ る ) は MT_ST_SET_LONG_TIMEOUT で 設 定 で き る 。 カ ー ネ ル の デ フ ォ ル ト は 非 常 に 長 く 、 ど の ド ラ イ ブ で も 成 功 し て い る コ マ ン ド が 決 し て タ イ ム ア ウ ト し な い よ う に な っ て い る 。 し た が っ て 、 ド ラ イ バ は タ イ ム ア ウ ト を 待 っ て い る だ け な の に 、 刺 さ っ た (stuck し た ) よ う に 見 え る こ と が あ る 。 こ れ ら の コ マ ン ド を 使 え ば 、 特 定 の ド ラ イ ブ に 対 し て も う 少 し 実 際 的 な 値 に 設 定 す る こ と が で き る 。 一 つ の デ バ イ ス に 設 定 し た タ イ ム ア ウ ト 値 は 、 そ れ と 同 じ ド ラ イ ブ に リ ン ク し た 全 て の デ バ イ ス に 適 用 さ れ る 。

2.4.19 お よ び 2.5.43 以 降 の カ ー ネ ル で は 、 こ の ド ラ イ バ は ド ラ イ ブ の ク リ ー ニ ン グ が 必 要 か ど う か を 示 す 状 態 ビ ッ ト を サ ポ ー ト す る 。 ド ラ イ ブ が ク リ ー ニ ン グ 情 報 を 返 さ せ る か ど う か は 、 MT_ST_SEL_CLN サ ブ コ マ ン ド に よ っ て 設 定 で き る 。 こ の 値 が 0 だ と 、 ク リ ー ニ ン グ ビ ッ ト は 常 に 0 と な る 。 値 を 1 に す る と 、 SCSI−3 標 準 で 規 定 さ れ て い る TapeAlert デ ー タ が 用 い ら れ る (ま だ 実 装 さ れ て い な い ) 値 と し て は 2 か ら 17 が 予 約 さ れ て い る 。 低 位 側 の 8 ビ ッ ト が 18 以 上 だ と 、 拡 張 状 態 デ ー タ (extended sense data) が 用 い ら れ る 。 第 9−16 ビ ッ ト は 注 目 す べ き ビ ッ ト を 選 択 す る た め の マ ス ク を 指 定 し 、 第 17−23 ビ ッ ト は 探 す べ き ビ ッ ト パ タ ー ン を 指 定 す る 。 こ の ビ ッ ト パ タ ー ン が 0 の と き は 、 マ ス ク 下 の ビ ッ ト (群 ) が ク リ ー ニ ン グ 要 求 を 示 す 。 パ タ ー ン が 0 で な け れ ば 、 こ の パ タ ー ン が マ ス ク 後 の 状 態 デ ー タ バ イ ト に マ ッ チ し な け れ ば な ら な い 。

MTIOCGET — ス テ ー タ ス の 取 得 こ の リ ク エ ス ト は (struct mtget *) と い う 型 の 引 数 を と る 。

/* structure for MTIOCGET − mag tape get status command */
struct mtget {
long mt_type;
long mt_resid;
/* the following registers are device dependent */
long mt_dsreg;
long mt_gstat;
long mt_erreg;
/* The next two fields are not always used */
daddr_t mt_fileno;
daddr_t mt_blkno; };

mt_type ヘ ッ ダ ー フ ァ イ ル 中 に は 多 く の

mt_type の 値 が 定 義 さ れ て い る

が 、 現 行 の ド ラ イ バ は 汎 用 の タ イ プ で あ る MT_ISSCSI1 (汎 用 SCSI−1 テ ー プ ) お よ び MT_ISSCSI2 (汎 用 SCSI−2 テ ー プ ) の み を 返 す 。

mt_resid 現 在 の テ ー プ 位 置 番 号 。

mt_dsreg ド ラ イ ブ の ブ ロ ッ ク サ イ ズ と 密 度 の 現 在 の 設 定 を 報 告 す る

(下 位

24 ビ ッ ト が ブ ロ ッ ク サ イ ズ 、 上 位 8 ビ ッ ト が 密 度 )。 こ れ ら の フ ィ ー ル ド は 、 MT_ST_BLKSIZE_SHIFT, MT_ST_BLKSIZE_MASK, MT_ST_DENSITY_SHIFT, MT_ST_DENSITY_MASK で 定 義 さ れ て い る 。

mt_gstat 汎 用 の

(デ バ イ ス に 依 存 し な い ) ス テ ー タ ス を 報 告 す る 。 こ れ ら

の ス テ ー タ ス ビ ッ ト を テ ス ト す る た め の マ ク ロ が ヘ ッ ダ ー フ ァ イ ル で 定 義 さ れ て い る 。

GMT_EOF(x): テ ー プ は フ ァ イ ル マ ー ク の 直 後 に 位 置 し て い る 。 (MTSEEK 操 作 の 後 で は 常 に 偽 )

GMT_BOT(x): テ ー プ は 最 初 の フ ァ イ ル の 先 頭 に 位 置 し て い る 。 (MTSEEK 操 作 の 後 で は 常 に 偽 )

GMT_EOT(x): テ ー プ 操 作 は テ ー プ の 物 理 的 な 終 点 に 達 し た 。

GMT_SM( x ) : テ ー プ は 現 在 セ ッ ト マ ー ク に 位 置 し て い る 。 (MTSEEK 操 作 の 後 で は 常 に 偽 )

GMT_EOD(x): テ ー プ は 記 録 デ ー タ の 末 尾 に 位 置 し て い る 。

GMT_WR_PROT(x): ド ラ イ ブ は ラ イ ト プ ロ テ ク ト さ れ て い る 。 こ れ は ド ラ イ ブ に よ っ て は 、 ド ラ イ ブ が 現 在 の メ デ ィ ア タ イ プ へ の 書 き 込 み を サ ポ ー ト し て い な い 事 を 意 味 す る 場 合 も あ る 。

GMT_ONLINE(x): も っ と も 最 近 の open(2) が 、 テ ー プ が 入 っ て い て 操 作 の 準 備 が で き て い る ド ラ イ ブ を 検 知 し た 。

GMT_D_6250(x), GMT_D_1600(x), GMT_D_800(x): こ の 「 汎 用 」 の ス テ ー タ ス 情 報 は 、 9−ト ラ ッ ク ½" テ ー プ ド ラ イ ブ の 場 合 に の み 、 現 在 の 密 度 の 設 定 を 報 告 す る 。

GMT_DR_OPEN(x): ド ラ イ ブ に テ ー プ が 入 っ て い な い 。

GMT_IM_REP_EN(x): 即 時 報 告 モ ー ド 。 write コ ー ル が 戻 っ た と き 、 テ ー プ に 対 し て 物 理 的 な 書 き 込 み が 行 わ れ た か ど う か を 保 証 で き な い 場 合 に 、 こ の ビ ッ ト が セ ッ ト さ れ る 。 ド ラ イ バ が デ ー タ を バ ッ フ ァ ー リ ン グ せ ず 、 ド ラ イ ブ も デ ー タ を バ ッ フ ァ ー リ ン グ し な い 場 合 に 限 っ て 、 こ の 値 は 0 に セ ッ ト さ れ る 。

GMT_CLN(x): ド ラ イ ブ が ク リ ー ニ ン グ を 要 求 し て い る 。 カ ー ネ ル 2.4.19 お よ び 2.5.43 以 降 で 実 装 さ れ た 。

mt_erreg

mt_erreg で 定 義 さ れ て い る フ ィ ー ル ド は 一 つ だ け で 、 下 位 の 16 ビ ッ ト が エ ラ ー を リ カ バ ー し た 回 数 で あ る (MT_ST_SOFTERR_SHIFTMT_ST_SOFTERR_MASK で 定 義 さ れ て い る )。 ド ラ イ ブ の 報 告 す る エ ラ ー リ カ バ ー 数 と 矛 盾 す る こ と が あ る の で 、 こ の 数 は ほ と ん ど の 場 合 維 持 さ れ な い (ほ と ん ど の ド ラ イ ブ で は 、 デ フ ォ ル ト で は ソ フ ト エ ラ ー を 報 告 し な い 。 し か し こ れ は SCSI MODE SELECT コ マ ン ド に よ っ て 変 更 で き る )。

mt_fileno

(ゼ ロ か ら 数 え た ) 現 在 の フ ァ イ ル 番 号 を 報 告 す る 。 フ ァ イ ル 番 号 が わ か ら な い 時 (例 え ば MTBSSMTSEEK の 後 な ど ) に は −1 に セ ッ ト さ れ る 。

mt_blkno

現 在 の フ ァ イ ル 中 の (ゼ ロ か ら 数 え た )ブ ロ ッ ク 番 号 を 報 告 す る 。 ブ ロ ッ ク 番 号 が わ か ら な い 時 (例 え ば MTBSF, MTBSS, MTSEEK の 後 な ど ) に は −1 に セ ッ ト さ れ る 。

MTIOCPOS — テ ー プ 位 置 の 取 得 こ の リ ク エ ス ト は (struct mtpos *) 型 の 引 数 を と り 、 ド ラ イ ブ が 保 持 し て い る 現 在 の テ ー プ ブ ロ ッ ク 番 号 を 報 告 す る 。 こ れ は 、 MTIOCGET に よ り 返 さ れ る mt_blkno と 同 じ で は な い 。 ド ラ イ ブ は READ POSITION コ マ ン ド (デ バ イ ス 固 有 ア ド レ ス ) を サ ポ ー ト す る SCSI−2ド ラ イ ブ か 、 Tandberg 互 換 の SCSI−1 ド ラ イ ブ (Tandberg, Archive, Viper, Wangtek, ... ) で な け れ ば な ら な い 。

/* structure for MTIOCPOS − mag tape get position command */
struct mtpos {
long mt_blkno; /* current block number */ };

返 り 値

EACCES 書 き 込 み 保 護 さ れ て い る テ ー プ に 書 き 込 み ま た は 消 去 を 行 お う と し た 。

(こ の エ ラ ー は open(2) 中 に は 検 知 さ れ な い 。 )

EBUSY デ バ イ ス が す で に 使 わ れ て い る か 、 ド ラ イ バ が バ ッ フ ァ ー を 割 当 て ら れ な か っ た 。

EFAULT コ マ ン ド の 引 数 が 、 呼 び だ し プ ロ セ ス に 属 し て い な い メ モ リ ー 位 置 を 指 し て い る 。

EINVAL

ioctl(2) の 引 数 が 不 正 で あ る か 、 要 求 し た ブ ロ ッ ク サ イ ズ が 不 正 。

EIO 14 要 求 さ れ た 操 作 が 最 後 ま で 行 え な か っ た 。

ENOMEM

read(2) の バ イ ト 数 が 、 テ ー プ に あ る 次 の 物 理 ブ ロ ッ ク よ り 小 さ い (2.2.18 お よ び 2.4.0−test6 以 前 で は 、 黙 っ て 余 分 の バ イ ト を 無 視 し て い た )。

ENOSPC メ デ ィ ア の 終 点 に 達 し た た め 、 書 き 込 み 操 作 が 完 了 し な か っ た 。

ENOSYS 不 明 な

ioctl(2)

ENXIO オ ー プ ン す る 時 に テ ー プ デ バ イ ス が 存 在 し な か っ た 。

EOVERFLOW ド ラ イ バ の 内 部 バ ッ フ ァ ー よ り 大 き い サ イ ズ の 可 変 長 ブ ロ ッ ク を 読 み 書 き し よ う と し た 。

EROFS ド ラ イ ブ に 入 っ て い る テ ー プ が ラ イ ト プ ロ テ ク ト さ れ て い る 場 合 に 、

O_WRONLY ま た は O_RDWR で open を 行 お う と し た 。

フ ァ イ ル

/dev/st* 自 動 巻 き 戻 し の

SCSI テ ー プ デ バ イ ス 。

/dev/nst* 巻 き 戻 し を し な い

SCSI テ ー プ デ バ イ ス 。

注 意

1. 異 な る シ ス テ ム で デ ー タ を 相 互 に や り と り す る 場 合 、 両 方 の シ ス テ ム で 物 理 的 な テ ー プ ブ ロ ッ ク サ イ ズ を 一 致 さ せ る 必 要 が あ る 。 起 動 直 後 の ド ラ イ ブ の パ ラ メ ー タ ー は 、 大 多 数 の

OS が そ の デ バ イ ス に 対 し て 用 い て い る 値 と 異 な っ て い る こ と も よ く あ る 。 多 く の シ ス テ ム は 、 ド ラ イ ブ が 対 応 し て い れ ば 可 変 長 ブ ロ ッ ク モ ー ド を 用 い る 。 DAT、 8mm ヘ リ カ ル ス キ ャ ン ド ラ イ ブ 、 DLT な ど の 最 近 の ド ラ イ ブ の ほ と ん ど は 可 変 長 ブ ロ ッ ク モ ー ド に 対 応 し て い る か ら 。 こ れ ら の ド ラ イ ブ は (少 な く と も 他 の シ ス テ ム と の デ ー タ 交 換 が あ る 場 合 は )、 Linux で も 可 変 長 ブ ロ ッ ク モ ー ド で 使 う ほ う が 良 い か も し れ な い (つ ま り シ ス テ ム の 起 動 時 の モ ー ド 設 定 に MTSETBLK ま た は MTSETDEFBLK を 用 い る )。 欠 点 と し て は 、 比 較 的 大 き な テ ー プ ブ ロ ッ ク サ イ ズ を 用 い な け れ ば 、 SCSI バ ス 上 で 満 足 の い く 転 送 速 度 が 得 ら れ な い こ と で あ る 。

2. 多 く の プ ロ グ ラ ム

(tar(1) な ど ) で は 、 コ マ ン ド ラ イ ン か ら

ユ ー ザ ー が ブ ロ ッ ク 関 連 の 値 を 指 定 で き る 。 こ の 値 に よ っ て テ ー プ 上 の 物 理 的 な ブ ロ ッ ク サ イ ズ を 決 定 で き る の は 、 可 変 長 ブ ロ ッ ク モ ー ド に 限 ら れ る こ と に 注 意 。

3.

SCSI テ ー プ ド ラ イ ブ を 用 い る に は 、 基 本 の SCSI ド ラ イ バ 、 SCSI ア ダ プ タ ー の ド ラ イ バ 、 SCSI テ ー プ ド ラ イ バ の す べ て が カ ー ネ ル に 組 み 込 ま れ て い る か 、 あ る い は モ ジ ュ ー ル と し て ロ ー ド さ れ て い る 必 要 が あ る 。 SCSI テ ー プ ド ラ イ バ が な い と 、 ド ラ イ ブ は 認 識 さ れ る が 、 こ の ペ ー ジ で 記 述 さ れ て い る テ ー プ の サ ポ ー ト は 利 用 で き な い 。

4.

ド ラ イ バ は エ ラ ー メ ッ セ ー ジ を コ ン ソ ー ル と ロ グ と に 書 き 出 す 。 カ ー ネ ル 設 定 で verbose SCSI messages が 有 効 に さ れ て い る と 、 SENSE コ ー ド が 自 動 的 に テ キ ス ト に 変 換 さ れ て 、 い く つ か の メ ッ セ ー ジ に 書 き だ さ れ る 。

5.

こ の ド ラ イ バ の 内 部 バ ッ フ ァ ー リ ン グ は 、 固 定 ブ ロ ッ ク モ ー ド な ら read(2)write(2) の バ イ ト 数 が 小 さ く て も 良 い ス ル ー プ ッ ト を 出 す 。 直 接 転 送 で は こ れ は 不 可 能 な の で 、 2.6 カ ー ネ ル に 移 行 し た と き に 驚 く か も し れ な い 。 解 決 法 と し て は 、 ソ フ ト ウ ェ ア に よ り 大 き な 転 送 を 行 う よ う 伝 え る (た い て い は よ り 大 き な ブ ロ ッ ク を 使 わ せ る ) こ と で あ る 。 こ れ が 不 可 能 な ら 、 直 接 転 送 を 無 効 に す る こ と も で き る 。

関 連 項 目

mt(1)

Linux カ ー ネ ル ソ ー ス の drivers/scsi/README.stDocumentation/scsi/st.txt (カ ー ネ ル 2.6 以 降 ) の 各 フ ァ イ ル に は 、 ド ラ イ バ に 関 す る よ り 新 し い 情 報 や 、 そ の 設 定 可 能 な 範 囲 に 関 す る 内 容 が 含 ま れ て い る 。

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。