/dev/nst0でテープデバイスへ書込みを行う場合、テープは巻き戻されずに追記で書き込まれます。
■質問事項
以下図の⑧付近でテープデバイスに対して書き込もうとした場合の挙動を
お教え願います。
※自動でテープの先頭まで巻き戻った後に、書込みが行われるのでしょうか?その場合、途中まではテープ後方部にも書込みデータの一部が存在して
しまうことになるのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
/dev/nst0は、自動的に巻き戻されないテープ装置のデバイスです。
- 図の⑧まで書き込んだ場合、テープドライブのヘッドが最後のEOFを書き込んだ直後で、テープは停まっています。
- 再びテープデバイスに書き込むと、そのEOFの後に、データ (と、もうひとつのEOF) が書き込まれます。/dev/nst0に書き込んだのなら、再びテープは最後のEOFの直後で停まります [1]。
テープには、EOFで区切られた複数のデータブロック (レコード) が記録されることになります。
mt(1)コマンドを使えば、レコードからレコードへ移動できます。次のEOFの位置まで移動することで次のレコードの先頭へ、前の前のEOFの位置まで移動することで前のレコードの先頭へ移動できます (詳しくはman mt
して下さい)。これにより、特定のレコードへ移動した上で、そのレコードの内容を読み取ったり、またはデータを書き込んでレコードの内容を更新したりできます (当然、書き込むデータは元のレコードより長くてはいけません。次のレコードを上書きして壊してしまいますから)。
こうして、1本のテープに複数のデータを格納して管理することができます (もっとも、データを区別する方法は「テープの最初から何番目のレコードか」ということだけです。ディスク上のファイルシステムのようにファイル名をつけたりディレクトリで分けたりはできません) [2]。
ところで、テープにはもともと何か書いてあったかもしれません。新たに書き込みして途中まで上書きした場合、上書きした場所より後にあるレコードは、まだ読み出せるかもしれません。途中まで上書きされたレコードについては、残りのデータも壊れてもう読み出せないかもしれません。
[1] もともと巻き戻すデバイスがあって巻き戻さないオプションができたのではないです。逆で、初期のテープ装置には巻き戻し機能がありませんでした (巻き戻しは、テープを装置から外して手作業、または専用の機器で行いました)。そのためデバイス名で、巻き戻しに対応したものとしていないものを区別しました。
[2] 「これ以降はデータがない」ということを示すために、最後にEOFを2回 (以上) 続けて書き込んでおく、といった規約を設ける場合もあります。テープのこれ以降は空き領域とみなし、読み込みに使いません。新規のレコードを追加するときは、2個目のEOFを上書きして書き込みます。
投稿2017/01/11 05:04
編集2017/01/11 13:38総合スコア4227
0
過去の経験からですが
1本のテープに収まりきらないようなデータをテープにバックアップしようとした時には、
途中まで(入りきるところまで)1本目のテープにバックアップされ、
2本目のテープに変えるように促され、
2本目のテープに続きがバックアップされていました。
リストア時にも同じように1本目からリストアを開始すると途中で2本目を要求されました。
参考になりますでしょうか。
投稿2017/01/11 02:58
総合スコア219
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/12 02:49
2017/01/12 11:39
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/11 13:09
2017/01/11 13:23
2017/01/12 11:28