DUMP(5) — NEWS-OS Programmer’s Manual
名称
dump, dumpdates − 増分ダンプフォーマット
形式
#include <sys/types.h>
#include <sys/inode.h>
#include <protocols/dumprestore.h>
解説
dump および restore(8) によって使用されるテープには次のものがあります。
ヘッダレコード
2つのグループのビットマップレコード
ディレクトリを記述する 1つのレコードグループ
ファイルを記述する 1つのレコードグループ
インクルードファイル <protocols/dumprestore.h> に収められている、ヘッダレコードのフォーマットおよび各記述の 最初のレコードのフォーマットは次の通りです。
#define NTREC 10
#define MLEN 16
#define MSIZ 4096
#define TS_TAPE 1
#define TS_INODE2
#define TS_BITS 3
#define TS_ADDR 4
#define TS_END 5
#define TS_CLRI 6
#define MAGIC (int) 60011
#define CHECKSUM(int) 84446
structspcl {
intc_type;
time_tc_date;
time_tc_ddate;
intc_volume;
daddr_tc_tapea;
ino_tc_inumber;
intc_magic;
intc_checksum;
structdinodec_dinode;
intc_count;
charc_addr[BSIZE];
} spcl;
structidates {
charid_name[16];
charid_incno;
time_tid_ddate;
};
#define DUMPOUTFMT"%:-16s %c %s"/∗ printf 用 ∗/
/∗ name, incno, ctime(date) ∗/
#define DUMPINFMT%16s %c %[^\n]\n"/∗ scanf 用の同じもの ∗/
NTREC は、物理的なテープブロック内の 1024 バイトレコードの数です。 MLEN は、1つのビットマップワード当りのビット数です。MSIZ はビット マップワードの数です。
TS_ エントリは、このヘッダの種類を示すために c_type フィールド内で使用されます。ヘッダの種類およびその意味を次に示します。
TS_TAPE テープボリュームラベル
TS_INODE ファイルあるいはディレクトリが続きます。 c_dinode フィールドは、ディスク iノードのコピーであり、 これがどのような種類の iノードであるかを示すビットを含みます。
TS_BITS ビットマップが続きます。このビットマップでは、ダンプされた iノード ごとに 1ビットが割り当てられます。
TS_ADDR ファイル記述のサブレコードです。下記の c_addr を参照してください。
TS_END テープレコードの終わりです。
TS_CLRI ビットマップが続きます。このビットマップでは、ダンプされた時 にファイルシステムにおいて空であったすべての iノードについて ゼロビットが割り当てられます。
MAGIC すべてのヘッダレコードは、 c_magic 内にこの数字を備えています。
CHECKSUM ヘッダレコードのチェックサムです。
ヘッダ構造体の各フィールドは次の通りです。
c_type ヘッダのタイプです。
c_date ダンプが行われた日付です。
c_ddate ファイルシステムがダンプされた日付です。
c_volume ダンプのカレントボリューム番号です。
c_tapea この(1024バイト)レコードのカレント番号です。
c_inumber ダンプされている iノードの番号です(その iノードのタイプ が TS_INODE である場合)。
c_magic これには、(必要に応じて切り詰められた)上記の MAGIC の値が 含まれます。
c_checksum これには、レコードに対してチェックサムを行うために必要とされる 値が含まれます。
c_dinode これは、ファイルシステム上に現れる通りの i ノードのコピーです。 fs(5) を参照してください。
c_count c_addr 内に含まれる文字数です。
c_addr ダンプされたファイルのブロックを記述する文字の配列です。 文字に関連したブロックがファイルシステム上に存在しなかった場合には、 その文字はゼロになり、存在した場合には非ゼロの値になります。 ブロックがファイルシステム上に存在しない場合には、 ブロックはダンプされません。 そのブロックはファイル内のホールとして復元されます。 ファイル内のすべてのブロックを記述するのに十分な空間がこの レコード内に存在しない場合、 TS_ADDR レコードはファイル内に分散されてしまい、 それぞれの TS_ADDR レコードは、最後のレコードが終わった場所に置かれます。
最後のボリュームを除いたすべてのボリュームは、テープマークで 終わります(これは EOF を読んだときのように振舞います)。 最後のボリュームは、TS_END レコード、そしてその後にテープマークで終わります。
idates 構造体は、ダンプの履歴が保持されている /etc/dumpdates ファイル内のエントリを記述しています。この構造体のフィールド は次の通りです。
id_name ダンプされたファイルシステムは /dev/id_nam です。
id_incno ダンプテープのレベル番号です。 dump(8) を参照してください。
id_ddate システムフォーマット内の増分ダンプの日付です。 types(5) を参照してください。
関連ファイル
/etc/dumpdates
関連事項
dump(8), restore(8), fs(5), types(5)
NEWS-OSRelease 4.1C