dump | restore fails: unknown tape header type 1853384566

Hywel Mallett hywel at hmallett.co.uk
Wed Mar 25 11:13:40 PDT 2009


Quoting Dimitry Andric <dimitry at andric.com>:

> On 2009-03-24 07:30, Mikhail T. wrote:
>>     dump a0f  - /old | restore -rf -
>>     [...]
>>       DUMP: 17.25% done, finished in 3:27 at Tue Mar 24 05:42:00 2009
>>       DUMP: 20.36% done, finished in 3:09 at Tue Mar 24 05:28:13 2009
>>       DUMP: 23.83% done, finished in 2:50 at Tue Mar 24 05:14:32 2009
>>     unknown tape header type -621260722
>>     abort? [yn]
>>
>> Looks like a junk value somewhere... Unitialized variable or some such.

Looking at the restore code (tape.c, in findinode), restore is  
expecting a header type in the range 1-6, so the header type  
-621260722 is way out. Assuming that findinode is being passed the  
correct variable, it would indicate that dump is writing the header  
(or at least the header type incorrectly). I can't work out where this  
header is getting written though. It looks like plenty of data gets  
written into a header (such as inode, magic number, checksum). I  
wonder if one of these values is overflowing and overwriting the  
header type?

>
> Maybe the dump output gets corrupted in some way?  (E.g. faulty RAM, or
> disk?)  If you are dumping a live filesystem, could it possibly help to
> add the -L option?

It might be worth fscking the original volume (though I suspect the OP  
has done this already), and also passing the -D option to restore, as  
restore will then try and continue, rather than abort on getting the  
invalid header type. Fixing the root cause would be better, but that  
might be a workaround for now.



More information about the freebsd-fs mailing list