日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
SA(4) FreeBSD カーネルインタフェースマニュアル SA(4) 名称 sa -- SCSI シーケンシャルアクセスデバイスドライバ 書式 device sa 解説 sa ドライバは、サポートしている SCSI ホストアダプタを経由してシステムにア タッチされているシーケンシャルアクセスのクラスのすべての SCSI デバイスの サポートを行ないます。シーケンシャルアクセスのクラスは、テープと他のリニ アアクセスデバイスを含んでいます。 また、SCSI ホストアダプタは、SCSI シーケンシャルアクセスデバイスを設定さ れる前にシステムに別々に設定しなければなりません。 マウントセッション sa ドライバは、テープがマウントされる時間と、それがアンマウントされる時間 の間の期間として定義される ``マウントセッション'' の概念に基づいていま す。マウントセッションの間に設定されたあらゆるパラメータは、セッションの 残り、または置き換えられるまで、有効です。いくつかの方法でセッションを終 わらせ、テープをアンマウントすることができます。これらは、次のものを含ん でいます: 1. 下記のサブモード 00 のように、`rewind device' をクローズします。例え ば、/dev/sa0 です。 2. mt(1) の `offline' コマンドを通して到達可能な MTOFFL ioctl(2) コマン ドを使用します。 制御モードデバイスがオープンされる場合を除いて、テープデバイスが排他的な オープンデバイスであることに注意すべきです。後者の場合では、(例えば、パラ メータを設定するために) 必要なときに排他的にアクセスされます。 サブモード マイナ番号のビット 0 と 1 は `サブモード' として解釈されます。サブモード は、デバイスがクローズされるときに取られるアクションで異なります: 00 クローズされるとデバイスを巻き戻します。テープに書き込まれると、巻 き戻しが要求される前にファイルマークが書き込まれます。デバイスは、 アンマウントされます。 01 クローズされてもテープは、マウントされたままにします。テープに書き 込まれていたなら、ファイルマークが書き込まれます。他のヘッドの位置 決めは行われません。さらなる読み込みか、または書き込みは、最後に読 み込まれるか、またはファイルマークが書き込まれた直後に起こります。 10 クローズされるとデバイスを巻き戻します。テープに書き込まれると巻き 戻しが要求される前にファイルマークが書き込まれます。巻き戻しが完了 すると、アンロードコマンドが発行されます。デバイスは、アンマウント されます。 ブロッキングモード SCSI テープは、`可変' または `固定' ブロックサイズモードのいずれかで実行 します。ほとんどの QIC タイプのデバイスは、固定ブロックサイズモードで実行 し、そこでは、ほとんどの 9 トラックのテープと多くの新しいカートリッジ形式 は、可変ブロックサイズを許可します。2 つの違いは、次の通りです: 可変ブロックサイズ: デバイスに行なわれるそれぞれの書き込みは、テープに書 き込まれた単一の論理レコードの結果となります。(より大きなブロックを要求 し、より小さなレコードを読み込むかもしれませんが) テープからレコードの一 部を読み込むか、書き込むことは決してできます。また、複数のブロックを読み 込むことはできません。したがって、ただ 1 つの書き込まれたデータは、単一の 読み込みによって読み込まれます。使用されるブロックサイズは、デバイス SCSI アダプタとシステムでサポートされた (通常 1 バイトと 64 キロバイトの間、と きどきより大きな) 任意の値を指定できます。 テープから可変長のレコード/ブロックを読み込むとき、ヘッドは、最後の項目を 読み込んだ直後、とその以後の次の項目の前にあると論理的に考えられます。次 の項目がファイルマークであるが、それが決して読み込まれなかったなら、次の 読み込むプロセスは、直ちにファイルマークに遭遇し、ファイルの終り (end-of file) の通知を受け取ります。 固定ブロックサイズ:ユーザによって書き込まれたデータは、一連の固定サイズの ブロックとしてテープに渡されます。メモリで連続しているかもしれませんが、 それは、一連の独立したブロックであると見なされます。ブロックサイズの正確 な倍数でないデータの量は、決して書き込めません。異なった組のレコードと同 じデータを読み込み書き込みできます。言い換えれば、一緒に書き込まれたロッ クは、別々に読み込むことができますし、逆もまた同様です。 ファイル中に残っているものより多くのブロックが要求されるなら、ドライブ は、ファイルマークに遭遇します。返されるいくつかのデータがあるので、(ファ イルマークの前にレコードがなかったなら)、読み込みは、そのデータを返して、 成功します。次の読み込みは、直ちに 0 の値を返します。(上記のように、ファ イルマークが決して読み込まれないなら、巻き戻さないモードの場合は、次の読 み込むプロセスのために残ります。) ブロックサイズ デフォルトで、ドライバは、単一の書き込みまたは読み込み要求を使用してマウ ントされたテープから書き込むか、または読み込むより大きなテープデバイスに 読み込むか、または書き込みを受け付け「ません」。このために、アプリケー ションの作者は、テープに書き込まれたブロックサイズに関して作者の希望が尊 重されるということを確信しています。例えば、ユーザがテープに 256KB ブロッ クを書き込むことを試みるが、コントローラが、128KB を越えで扱うことができ ないなら、書き込みは、失敗します。以前の FreeBSD の振る舞いは、FreeBSD 10.0 より前に、テープに行くとき、大きな読み込みまたは書き込みをより小さな ブロックに分解することでした。しかしながら、その振る舞いに関する問題は、 少なくとも可変ブロックモードで、アプリケーションの作者から実際のオンテー プブロックサイズを隠すことです。 ユーザが作者の大きな読み込みと書き込みのように個別の部分に分割されるな ら、作者は、次のローダ調整変数を設定します。これらの調整変数は、 FreeBSD 11.0 に「立ち去る」ことに注意してください。それらは、移行の目的だ けに提供されています。 kern.cam.sa.allow_io_split この変数は、1 に設定されたとき、必要である場合に、大きなバッファより 小さな部分に分割する、すべての sa デバイスを設定します。 kern.cam.sa.%d.allow_io_split この変数は、1 に設定されたとき、大きなバッファを複数の部分に分割する ために与えられた sa ユニットを設定します。これは、それが存在するな ら、グローバルな設定を上書きします。 パラメータを扱うブロックを見るために利用可能ないくつかの sysctl(8) 変数が あります: kern.cam.sa.%d.allow_io_split この変数によって、ユーザは、現在の I/O 分割の設定を修正せずに、見るこ とができます。ユーザは、テープがマウントされる間に、アプリケーション のために変更する振る舞いの機会がないように、この設定を修正することは 許されません。 kern.cam.sa.%d.maxio この変数は、カーネル調整パラメータ (MAXPHYS、DFLTPHYS) とテープドライ ブにアタッチされるコントローラのケーパビリティの組み合わせによって許 可される、バイト単位の最大の I/O サイズを表示します。アプリケーション は、どれくらい大きな I/O が許可されるかのガイドのためのこの値を見ます が、実際の最大が SCSI READ BLOCK LIMITS コマンドを通してテープドライ ブによってさらに制限されると留意するべきです。 kern.cam.sa.%d.cpi_maxio この変数は、CAM パス問い合わせ CCB (XPT_PATH_INQ) によって報告され る、バイト単位のコントローラによってサポートされた最大の I/O サイズを 表示します。これが 0 であるなら、それは、コントローラが最大の I/O サ イズを報告しないことを意味します。 ファイルマークの扱い 書き込みでのファイルマークの扱いは、自動的です。ユーザがテープに書き込 み、最終の書き込みのときから読み込みが行なわれなかったなら、デバイスがク ローズされるとき、ファイルマークが、テープに書き込まれます。巻き戻しが書 き込みの後に要求されるなら、ドライバは、テープ上の最後のファイルが書き込 まれたと仮定し、テープに書き込まれた 2 つのファイルマークがあることを保証 します。これの例外は、特定のタイプのテープが、読み込みではなく、テープに 2 つのファイルマークを実際に書き込まないで、最後のファイルが読み込まれる とき、`幻' のファイルマークを報告する (我々は、これに従いますが、理由は、 わかりません) 規格となるように思われます。これらのデバイスは、デバイスの QIC ファミリを含んでいます。(このデバイスのセットは、固定ブロックのデバイ スのものと同じセットであるということかもしれません。これは、まだ決定され ず、それらは、現時点でドライバによって別々の振る舞いとして扱われます。) パラメータ sa ドライバは、多くのパラメータをサポートしています。ユーザは、 (MTIOCPARAMGET ioctl を使用する) ``mt param -l'' を使用してパラメータを問 い合わせることができ、ユーザは、(MTIOCPARAMSET ioctl を使用する) ``mt param -s'' を使用してパラメータを設定することができます。インタフェースに 関する詳細については、mt(1) と mtio(4) を参照してください。 サポートされるパラメータは、次の通りです: sili デフォルトは、0 です。1 に設定されるとき、読み込むテープで、Sup press Incorrect Length Indicator (SILI; 抑制不正確長さインジケー タ) ビットを設定します。通常、テープドライブは、アプリケーション が、要求されたデータ量と同じ長さではないブロックを読み込むとき、 (残りを含んでいる) センスデータを返します。SILI ビットは、 supresses that ほとんどの場合に通知を抑制します。詳細については、 特に READ(6) コマンドのセクションの (t10.org で利用可能な) SSC-5 スペックを参照してください。 eot_warn デフォルトは、0 です。デフォルトで、sa ドライバは、0 バイトの書き 込みで書き込みを返すことによって Programmable Early Warning (プロ グラム可能早期警戒)、Early Warning (早期警戒) と End of Media (メ ディアの終り) 条件の入力を報告し、errno に 0 を設定します。 eot_warn が 1 に設定されるなら、sa ドライバは、容量不足の状態のの いずれかに入るとき、errno を ENOSPC に設定します。 protection.protection_supported これは、読み込み専用パラメータであり、テープドライブが保護情報をサ ポートするなら、1 に設定されます。 protection.prot_method 保護がサポートされるなら、テープドライブによってサポートされる要求 された保護方法に、これを設定します。(t10.org で利用可能な) SSC-5r03 現在で、保護方法の値は、次の通りです: 0 保護なし。 1 Reed-Solomon CRC、4 バイトの長さ。 2 CRC32C、4 バイトの長さ。 protection.pi_length 保護情報の長さ、長さにつては、上記参照。 protection.lbp_w 1 に設定されるなら、書き込みで論理的なブロック保護を有効にします。 CRC は、テープドライバに書き込まれるブロックの終わりに追加されなけ ればなりません。テープドライブは、それがブロックを受け取るとき、 CRC を検証します。 protection.lbp_r 1 に設定されるなら、読み込みで論理的なブロック保護を有効にします。 CRC は、テープドライバから読み込まれるブロックの終わりに追加されま す。アプリケーションは、それがブロックを受け取るとき、CRC を検証す るべきです。 protection.rdbp 1 に設定されるなら、RECOVER BUFFERED DATA コマンドで論理的なブロッ ク保護を有効にします。sa ドライバは、現在 RECOVER BUFFERED DATA コ マンドを使用していません。 IOCTL sa ドライバは、mtio(4) の ioctl のすべてサポートします。 関連ファイル /dev/[n][e]sa[0-9] 一般的な形式: /dev/sa0 クローズで巻き戻す /dev/nsa0 クローズで巻き戻さない /dev/esa0 (能力があるなら) クローズでイジェクトする /dev/sa0.ctl (例えば、別のプログラムがデバイスにアクセスしている間 に状態を調査するための) 制御モードデバイス。 診断 sa ドライバは、アプリケーション開発とテストを援助する End Of Media (EOM; メディアの終り) 通知の注入をサポートしています。EOM は、0 バイトの書き込 みで読み込みまたは書き込みを返すことによってアプリケーションに示されま す。さらに、EOM が注入されるとき、テープ位置の状態は、Beyond of the Pro grammable Early Warning (BPEW; プログラム可能な早期警戒の越える) 状態を表 示するために一時的に更新されます。BPEW 状態を調べるために、``mt status'' コマンドによって使用される、MTIOCEXTGET ioctl を使用します。EOM 通知を注 入するために、 kern.cam.sa.%d.inject_eom sysctl 変数を 1 に設定します。1 つの EOM 通知が送られて、BPEW 状態は、1 つの位置の問い合わせのために設定されて、次に、ドライバの状態は、正常にリ セットされます。 関連項目 mt(1), cam(4) 作者 sa ドライバは、CAM SCSI サブシステムのために Justin T. Gibbs と Kenneth Merry によって書かれました。Julian Elischer によって書かれ Mach 2.5 から 移植された st ドライバから多くのアイデアが取り入れられました。 何年も記録の所有者は、Matthew Jacob でした。現在の管理者は、Kenneth Merry です。 バグ このドライバは、より古いデバイスを処理するために必要とされる多くのハック が不足しています。多くより古い SCSI-1 デバイスは、まだこのドライバで適切 に動作しないかもしれません。 さらに、FreeBSD 2.X の下で書き込まれた特定のテープ (ほとんどは QIC テー プ) は、このドライバで自動的に正しく読み込めません: FreeBSD 2.X の下で書 き込まれたテープを読み込むためには、利用者が明白に可変ブロックモードを設 定するか、または利用者のデバイスのために最もよく動作するブロックサイズを 設定する必要があります。 パーティションは、状態情報と位置に対してのみサポートされます。それは、 テープのパーティションを作成して、編集するためのサポートを追加すると良い でしょう。 FreeBSD 11.2 May 5, 2017 FreeBSD 11.2