Man page - st(4)
Packages contains this manual
- shm_overview(7)
- nss(5)
- proc_mtrr(5)
- intro(7)
- tcp(7)
- iso_8859-9(7)
- armscii-8(7)
- proc_kpagecount(5)
- initrd(4)
- mouse(4)
- proc_stat(5)
- x25(7)
- proc_interrupts(5)
- fifo(7)
- repertoiremap(5)
- icmp(7)
- futex(7)
- feature_test_macros(7)
- lp(4)
- bpf-helpers(7)
- epoll(7)
- proc_sys_dev(5)
- namespaces(7)
- proc_sysrq-trigger(5)
- proc_bus(5)
- cp1251(7)
- proc_pid_maps(5)
- proc_sys_vm(5)
- proc_pid_projid_map(5)
- st(4)
- proc_pid(5)
- issue(5)
- pid_namespaces(7)
- unicode(7)
- inode(7)
- hosts.equiv(5)
- iso-8859-13(7)
- proc_fb(5)
- proc_modules(5)
- proc_pid_autogroup(5)
- keyrings(7)
- sysvipc(7)
- proc_kmsg(5)
- cgroups(7)
- latin6(7)
- proc_pid_uid_map(5)
- unix(7)
- proc_pid_io(5)
- pts(4)
- packet(7)
- ld-linux.so(8)
- tzselect(8)
- iconv(1)
- proc_pid_syscall(5)
- proc_pid_net(5)
- proc_pid_pagemap(5)
- tty(4)
- proc_profile(5)
- standards(7)
- proc_pid_mounts(5)
- filesystems(5)
- iso-8859-15(7)
- locale(5)
- iso_8859_3(7)
- xattr(7)
- iso-8859-2(7)
- proc_uptime(5)
- persistent-keyring(7)
- credentials(7)
- proc_pid_timers(5)
- utmpx(5)
- vcsa(4)
- proc_pid_exe(5)
- proc_net(5)
- proc_timer_stats(5)
- ip(7)
- proc_pid_fd(5)
- ptmx(4)
- user_namespaces(7)
- resolv.conf(5)
- url(7)
- iso_8859_5(7)
- iso_8859-8(7)
- urn(7)
- process-keyring(7)
- proc_pid_auxv(5)
- proc_ksyms(5)
- proc_ide(5)
- veth(4)
- ldd(1)
- proc_swaps(5)
- landlock(7)
- proc_vmstat(5)
- system_data_types(7)
- cp1252(7)
- lirc(4)
- proc_kpageflags(5)
- random(7)
- precedence(7)
- cpuset(7)
- proc_pid_ns(5)
- acct(5)
- latin4(7)
- proc_pid_cgroup(5)
- proc_cpuinfo(5)
- iso_8859-2(7)
- proc_keys(5)
- charsets(7)
- pldd(1)
- proc_pid_stat(5)
- rtnetlink(7)
- netlink(7)
- ram(4)
- mem(4)
- iso-8859-6(7)
- proc_key-users(5)
- iso_8859_15(7)
- fanotify(7)
- proc_sys_net(5)
- sysfs(5)
- math_error(7)
- latin1(7)
- proc_pid_root(5)
- nptl(7)
- proc_cgroups(5)
- proc_iomem(5)
- proc_pid_statm(5)
- sem_overview(7)
- hier(7)
- full(4)
- proc_pid_status(5)
- proc_pid_cwd(5)
- proc_pid_cpuset(5)
- proc_scsi(5)
- uri(7)
- proc_diskstats(5)
- iso_8859_6(7)
- latin2(7)
- latin5(7)
- man-pages(7)
- ld.so(8)
- uts_namespaces(7)
- proc_pid_mountstats(5)
- intro(3)
- proc_pid_seccomp(5)
- proc_pid_wchan(5)
- attributes(7)
- symlink(7)
- mount_namespaces(7)
- charmap(5)
- tis-620(7)
- iso-8859-10(7)
- getent(1)
- proc_buddyinfo(5)
- ttytype(5)
- rtc(4)
- proc_malloc(5)
- suffixes(7)
- sln(8)
- signal(7)
- proc_sys_abi(5)
- signal-safety(7)
- time_namespaces(7)
- proc_pid_comm(5)
- raw(7)
- gai.conf(5)
- proc_crypto(5)
- locale(1)
- iso-8859-3(7)
- motd(5)
- proc_meminfo(5)
- iso-8859-8(7)
- protocols(5)
- proc_pid_map_files(5)
- pthreads(7)
- null(4)
- proc(5)
- zdump(8)
- socket(7)
- proc_sys_kernel(5)
- ddp(7)
- memusagestat(1)
- hd(4)
- iso-8859-14(7)
- shells(5)
- pipe(7)
- glob(7)
- proc_self(5)
- network_namespaces(7)
- utmp(5)
- proc_kcore(5)
- nsswitch.conf(5)
- sd(4)
- iso-8859-5(7)
- iso_8859_16(7)
- man(7)
- iso_8859-6(7)
- dir_colors(5)
- mq_overview(7)
- vsock(7)
- ascii(7)
- thread-keyring(7)
- fs(5)
- proc_pid_attr(5)
- proc_sys_debug(5)
- proc_sys(5)
- proc_pid_cmdline(5)
- pty(7)
- services(5)
- cgroup_namespaces(7)
- securetty(5)
- netdevice(7)
- iso_8859_13(7)
- host.conf(5)
- proc_pid_setgroups(5)
- proc_slabinfo(5)
- sock_diag(7)
- iso_8859-14(7)
- iso-8859-11(7)
- iso_8859_11(7)
- operator(7)
- regex(7)
- wavelan(4)
- proc_sys_fs(5)
- nologin(5)
- proc_pci(5)
- koi8-r(7)
- erofs(5)
- intro(2)
- utf8(7)
- proc_kallsyms(5)
- proc_sysvipc(5)
- queue(7)
- proc_sys_sunrpc(5)
- intro(5)
- latin8(7)
- mtrace(1)
- ipc_namespaces(7)
- dsp56k(4)
- iso_8859_4(7)
- proc_pid_smaps(5)
- proc_cmdline(5)
- rpc(5)
- proc_tty(5)
- proc_version(5)
- smartpqi(4)
- proc_pid_timerslack_ns(5)
- aio(7)
- session-keyring(7)
- resolver(5)
- slabinfo(5)
- wtmp(5)
- iso_8859_9(7)
- proc_locks(5)
- mailaddr(7)
- proc_pid_oom_score(5)
- kmem(4)
- iconvconfig(8)
- iso_8859-7(7)
- glibc(7)
- hostname(7)
- proc_thread-self(5)
- ipv6(7)
- iso_8859_7(7)
- proc_kpagecgroup(5)
- core(5)
- time(7)
- units(7)
- proc_dma(5)
- loop(4)
- address_families(7)
- zero(4)
- intro(4)
- procfs(5)
- iso_8859-4(7)
- vdso(7)
- tmpfs(5)
- iso-8859-16(7)
- iso_8859_10(7)
- user-session-keyring(7)
- libc(7)
- proc_fs(5)
- koi8-u(7)
- latin3(7)
- proc_tid_children(5)
- proc_pid_limits(5)
- proc_pid_coredump_filter(5)
- iso_8859-15(7)
- arp(7)
- urandom(4)
- iso_8859-10(7)
- hpsa(4)
- proc_pid_environ(5)
- boot(7)
- ftm(7)
- ld-linux(8)
- proc_driver(5)
- loop-control(4)
- iso_8859-16(7)
- proc_filesystems(5)
- tzfile(5)
- sprof(1)
- proc_pid_task(5)
- proc_pid_oom_score_adj(5)
- proc_mounts(5)
- iso-8859-4(7)
- iso_8859-1(7)
- utf-8(7)
- iso_8859-13(7)
- intro(6)
- proc_timer_list(5)
- rtld-audit(7)
- iso_8859-3(7)
- group(5)
- sched(7)
- proc_pid_clear_refs(5)
- hosts(5)
- iso_8859-11(7)
- numa(7)
- iso_8859_2(7)
- locale(7)
- iso-8859-1(7)
- fuse(4)
- proc_tid(5)
- proc_execdomains(5)
- proc_pid_mountinfo(5)
- intro(8)
- iso_8859_8(7)
- proc_loadavg(5)
- proc_pid_oom_adj(5)
- re_format(7)
- iso_8859_14(7)
- zic(8)
- bootparam(7)
- inotify(7)
- posixoptions(7)
- proc_partitions(5)
- iso-8859-9(7)
- proc_pid_mem(5)
- networks(5)
- proc_sys_user(5)
- udp(7)
- proc_zoneinfo(5)
- latin10(7)
- proc_pid_fdinfo(5)
- proc_pid_stack(5)
- memusage(1)
- spufs(7)
- pkeys(7)
- path_resolution(7)
- proc_ioports(5)
- intro(1)
- ldconfig(8)
- msr(4)
- svipc(7)
- port(4)
- proc_pid_personality(5)
- cciss(4)
- latin9(7)
- capabilities(7)
- localedef(1)
- vcs(4)
- iso_8859-5(7)
- elf(5)
- proc_sys_proc(5)
- console_codes(4)
- random(4)
- iso-8859-7(7)
- termcap(5)
- cpuid(4)
- environ(7)
- string_copying(7)
- proc_pid_gid_map(5)
- queue(3)
- termio(7)
- user-keyring(7)
- complex(7)
- latin7(7)
- proc_config.gz(5)
- udplite(7)
- kernel_lockdown(7)
- proc_devices(5)
- proc_apm(5)
- iso_8859_1(7)
- proc_pid_numa_maps(5)
apt-get install manpages
Available languages:
en fr pt_BR es pl ja ru deManual
ST
名 前書 式
説 明
デ ー タ 転 送
ioctl
MTIOCTOP — テ ー プ 操 作 の 実 行
MTIOCGET — ス テ ー タ ス の 取 得
MTIOCPOS — テ ー プ 位 置 の 取 得
返 り 値
フ ァ イ ル
注 意
関 連 項 目
こ の 文 書 に つ い て
名 前
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
Format the tape into one or two partitions. If mt_count is positive, it gives the size of partition 1 and partition 0 contains the rest of the tape. If mt_count is zero, the tape is formatted into one partition. From kernel version 4.6, a negative mt_count specifies the size of partition 0 and the rest of the tape contains partition 1. The physical ordering of partitions depends on the drive. This command is not allowed for a drive unless the partition support is enabled for the drive (see MT_ST_CAN_PARTITIONS below).
|
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 操 作 (両 者 と も MTSEEK ・ MTIOCPOS コ マ ン ド を 伴 い 、 テ ー プ 位 置 を 変 更 す る と き ) の 際 に 、 SCSI-2 の 標 準 で 定 義 さ れ て い る 論 理 ブ ロ ッ ク ア ド レ ス を 用 い る か ど う か を ド ラ イ バ に 伝 え る 。 偽 だ と デ バ イ ス 固 有 の ア ド レ ス が 用 い ら れ る 。 ド ラ イ ブ が 論 理 ア ド レ ス を サ ポ ー ト し て い る と き は 、 こ の オ プ シ ョ ン を セ ッ ト す る こ と を 強 く 勧 め る 。 こ の モ ー ド で は フ ァ イ ル マ ー ク も カ ウ ン ト す る か ら で あ る 。 論 理 ブ ロ ッ ク ア ド レ ス し か サ ポ ー ト し な い ド ラ イ ブ も い く つ か 存 在 し て い る 。
MT_ST_SYSV (デ フ ォ ル ト : 偽 )
こ の オ プ シ ョ ン が 真 に な っ て い る と 、 テ ー プ デ バ イ ス は System V の ル ー ル を 用 い る 。 偽 だ と 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_SHIFT と MT_ST_SOFTERR_MASK で 定 義 さ れ て い る )。 ド ラ イ ブ の 報 告 す る エ ラ ー リ カ バ ー 数 と 矛 盾 す る こ と が あ る の で 、 こ の 数 は ほ と ん ど の 場 合 維 持 さ れ な い (ほ と ん ど の ド ラ イ ブ で は 、 デ フ ォ ル ト で は ソ フ ト エ ラ ー を 報 告 し な い 。 し か し こ れ は SCSI MODE SELECT コ マ ン ド に よ っ て 変 更 で き る )。
mt_fileno
(ゼ ロ か ら 数 え た ) 現 在 の フ ァ イ ル 番 号 を 報 告 す る 。 フ ァ イ ル 番 号 が わ か ら な い 時 (例 え ば MTBSS や MTSEEK の 後 な ど ) に は -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 以 前 で は 、 黙 っ て 余 分 の バ イ ト を 無 視 し て い た )。 |
||
|
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.st や Documentation/scsi/st.txt (カ ー ネ ル 2.6 以 降 ) の 各 フ ァ イ ル に は 、 ド ラ イ バ に 関 す る よ り 新 し い 情 報 や 、 そ の 設 定 可 能 な 範 囲 に 関 す る 内 容 が 含 ま れ て い る 。
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man-pages プ ロ ジ ェ ク ト の リ リ ー ス 5.10 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は https://www.kernel.org/doc/man-pages/ に 書 か れ て い る 。