Hardware (UNIX server product)
1748228 メンバー
4234 オンライン
108759 解決策
新規ポスト

テープ「バークレー形式」「AT&T形式」の違いは何でしょうか?

 
akasatana
アドバイザー

テープ「バークレー形式」「AT&T形式」の違いは何でしょうか?

ご質問させて下さい。

テープに書き込む際、「バークレー形式」で動作させるデバイスファイルと、「AT&T形式」で動作させるデバイスファイルが選択出来ます。

この、「バークレー形式」と「AT&T形式」では、データの書き込みにどういった違いが有るのでしょうか?

ちなみに、

HP-UXのマニュアルを調べてみたところ、

・バークレー形式:テープクローズ後どんな方法でも再配置されない

・AT&T形式:テープが(書き込み終了時?)EOFの後ろに移動する

と有りました。

バークレー形式の「どんな方法でも再配置されない」とは、テープに書き込んでEOFを記録した後、全くヘッドが動かないという事なのでしょうか?

通常、テープに書き込んでクローズする際、テープは最初まで巻き戻ると思っていたのですが、バークレー形式にすると、巻き戻らないという事になるのでしょうか?

何卒宜しくお願い致します。
3件の返信3
rawsq
貴重なコントリビューター

テープ「バークレー形式」「AT&T形式」の違いは何でしょうか?

>この、「バークレー形式」と「AT&T形式」では、データの書き込みにどういった違いが有るのでしょうか?

書き込みには違いがないと思います。

違いがあるとすれば、読み取り時だと思います。

・バークレー形式:読み取り後ヘッドは移動しない。

・AT&T形式:読み取り後、EOFの後へヘッドが移動。

と認識しております。

>バークレー形式の「どんな方法でも再配置されない」とは、テープに書き込んでEOFを記録した後、全くヘッドが動かないという事なのでしょうか?

>通常、テープに書き込んでクローズする際、テープは最初まで巻き戻ると思っていたのですが、バークレー形式にすると、巻き戻らないという事になるのでしょうか?

書き込み時/dev/rmt/0mや/dev/rmt/0mbを利用した場合、ヘッドは先頭まで巻き戻されます。

一方nがつくデバイスファイル、つまり/dev/rmt/0mnや/dev/rmt/0mnbを利用した場合、ヘッドは巻き戻されず最後に記録される2つのEOFの間で止まっています。

バークレーだとまき戻されない、というわけではありません。

詳しくはmt(7)になります。

以下、ご参考。

# mt -f /dev/rmt/0mnb status

などでヘッドの位置を確認しながら試すとわかりやすいかも。

書き込み(バークレーもAT&Tも同じ)

# tar cvf /dev/rmt/0mn a

| BOT | <-a-> | EOF | | EOF |

# tar cvf /dev/rmt/0mn b

| BOT | <-a-> | EOF | <-b-> | EOF | | EOF |

# tar cvf /dev/rmt/0m c

| BOT | | <-a-> | EOF | <-b-> | EOF | <-c-> | EOF | EOF |

読み込み(AT&T)

# tar xvf /dev/rmt/0mn

aが展開され、テープヘッドはEOFの次へ移動。

| BOT | <-a-> | EOF | | <-b-> | EOF | <-c-> | EOF | EOF |

# tar xvf /dev/rmt/0mn

bが展開され、テープヘッドはEOFの次へ移動。

| BOT | <-a-> | EOF | <-b-> | EOF | | <-c-> | EOF | EOF |

# tar xvf /dev/rmt/0m

cが展開されヘッドは先頭へ戻る。

| BOT | | <-a-> | EOF | <-b-> | EOF | <-c-> | EOF | EOF |

読み込み(バークレー)

# tar xvf /dev/rmt/0mnb

aが展開されるが、次の読み取りのためヘッド移動はない。

| BOT | <-a-> | | EOF | <-b-> | EOF | <-c-> | EOF | EOF |

# tar xvf /dev/rmt/0mnb

Tar: blocksize = 0; broken pipe?

EOFを読み取るがtarフォーマットではないのでエラー。ただしヘッドは進む。

| BOT | <-a-> | EOF | | <-b-> | EOF | <-c-> | EOF | EOF |

# tar xvf /dev/rmt/0mnb

bが展開されるが、次の読み取りのためヘッド移動はない。

| BOT | <-a-> | EOF | <-b-> | | EOF | <-c-> | EOF | EOF |

# tar xvf /dev/rmt/0mnb

Tar: blocksize = 0; broken pipe?

同じくエラー。ただしヘッドは進む。

| BOT | <-a-> | EOF | <-b-> | EOF | | <-c-> | EOF | EOF |

# tar xvf /dev/rmt/0m

cが展開されヘッドは先頭へ。

| BOT | | <-a-> | EOF | <-b-> | EOF | <-c-> | EOF | EOF |

rawsq
貴重なコントリビューター

テープ「バークレー形式」「AT&T形式」の違いは何でしょうか?

なんだか日本語が変です。

読み替えてください。

読み込み(バークレー)のところ

>aが展開されるが、次の読み取りのためヘッド移動はない。

aが展開されるが、次の読み取りのためのヘッド移動はない。

akasatana
アドバイザー

テープ「バークレー形式」「AT&T形式」の違いは何でしょうか?

ご返信、ありがとうございました。

バークレーとAT&T形式では、読み込み時に注意する必要が有るんですね。。

バークレーの場合は、2件目以降のデータを続けて読み込む場合等は、ヘッドをわざわざ移動させたりしないといけないんですね。。