複数のテープにまたがるデータを途中のテープから戻す方法 [小技(Linux)]
例えばLTOとか、DDSとか、QMT(CMT)とか、DLTとかいったようなテープデバイスにデータを退避してあるとする。データ量が多くて1本のテープに収まりきらない場合にはcpioコマンドなら複数のテープにまたがって一つのボリュームなりバックアップデータなりをまとめて退避することができる。
が、この場合に特有の困った問題が発生することがある。テープの読み取りエラーである。
8ビットパソコン世代のオッサンなら、Tape read errorとでも言えばイメージが涌きやすいだろうか。(大笑)
例えば、cpioコマンドでデータをテープにバックアップしたとする。退避するときに
cd /some/directory
find . -print | cpio -oBv -H newc >/dev/st0
とかいう具合にデータをバックアップしたとする。(オプション類はお好みに応じてどうぞ)
で、復元する場合、普通は…
cd /some/restore
cpio -iBvumd < /dev/st0
とかいう感じで戻すことになると思う。(オプション類はお好みに応じてどうぞ)
このとき、テープの1本目の先頭部分には「-H」オプションを指定した場合のフォーマット情報が保存されるそうで、復元する場合には「-H」オプションは省略しても構わないことになっている。(別に記述してもよいけど)
さて。ここで不幸にして1本目のテープでエラーが出ちゃったとする。しかしお目当てのデータはまだ復元されていない!!2本目のテープに望みをかけたいが先に進まず止まっちゃった! みたいな場合。
あるいは、なぜか1本目のテープが見当たらない!!テープの保管場所にあるはずなのにど~しても見当たらない!! みたいな場合。
もしくは、1本目のテープにうっかり全然違うデータを上書きして壊しちゃった!!!どーしよう!!! みたいな場合。
2本目以降から(3本目でも4本目でもいいけど)復元したい場合は、普通にcpioコマンドを実行するが、「-H」オプションを必須で指定する必要がある。
cd /some/restore
cpio -iBvumd -H newc< /dev/st0
すると、テープをまたがって記録されているファイルの次のファイルから復元することができる。
実行するとおそらくこんな具合にワーニングメッセージが出るが。
cpio: warning: skipped ??????? bytes of junk
「???????」のところには何らかの数値が入る。要するに読み飛ばされるデータのバイト数である。
ひとまずこれで、2本目以降のデータをなんとか復元することも可能ではある。
が、この場合に特有の困った問題が発生することがある。テープの読み取りエラーである。
8ビットパソコン世代のオッサンなら、Tape read errorとでも言えばイメージが涌きやすいだろうか。(大笑)
例えば、cpioコマンドでデータをテープにバックアップしたとする。退避するときに
cd /some/directory
find . -print | cpio -oBv -H newc >/dev/st0
とかいう具合にデータをバックアップしたとする。(オプション類はお好みに応じてどうぞ)
で、復元する場合、普通は…
cd /some/restore
cpio -iBvumd < /dev/st0
とかいう感じで戻すことになると思う。(オプション類はお好みに応じてどうぞ)
このとき、テープの1本目の先頭部分には「-H」オプションを指定した場合のフォーマット情報が保存されるそうで、復元する場合には「-H」オプションは省略しても構わないことになっている。(別に記述してもよいけど)
さて。ここで不幸にして1本目のテープでエラーが出ちゃったとする。しかしお目当てのデータはまだ復元されていない!!2本目のテープに望みをかけたいが先に進まず止まっちゃった! みたいな場合。
あるいは、なぜか1本目のテープが見当たらない!!テープの保管場所にあるはずなのにど~しても見当たらない!! みたいな場合。
もしくは、1本目のテープにうっかり全然違うデータを上書きして壊しちゃった!!!どーしよう!!! みたいな場合。
2本目以降から(3本目でも4本目でもいいけど)復元したい場合は、普通にcpioコマンドを実行するが、「-H」オプションを必須で指定する必要がある。
cd /some/restore
cpio -iBvumd -H newc< /dev/st0
すると、テープをまたがって記録されているファイルの次のファイルから復元することができる。
実行するとおそらくこんな具合にワーニングメッセージが出るが。
cpio: warning: skipped ??????? bytes of junk
「???????」のところには何らかの数値が入る。要するに読み飛ばされるデータのバイト数である。
ひとまずこれで、2本目以降のデータをなんとか復元することも可能ではある。
コメント 0