FreeBSD tar und streamer

max93

Well-Known Member
Hallo!

Ich habe mal wieder eine Sicherung auf Band gemacht. Natürlich mit tar, weil ich nur einen Verzeichniszweig sichern wollte. Das ging auch gut. Wenn ich jedoch mit tar versuche die Daten testweise einzulesen, dann bricht der nach wenigen Sekunden ab (genau genommen läuft das Band nur ganz kurz an):

Code:
root@tyan:/mnt/jails# tar -tv -b 64 -f /dev/sa0
drwxrwxr-x  0 mann   users       0 Jul 19 22:12 grafik
drwxrwxr-x  0 mann   users       0 Jan 30  2005 grafik/Schottland-20040718
drwxrwxr-x  0 mann   users       0 Aug  4  2002 grafik/bak
drwxrwxr-x  0 mann   users       0 Aug  9  2002 grafik/bootlogo
drwxrwxr-x  0 mann   users       0 Aug  2  2005 grafik/erde
drwxrwxr-x  0 mann   users       0 Jan 30  2005 grafik/flugzeuge
drwxrwxr-x  0 mann   users       0 Jun 28 13:12 grafik/gif-anim
drwxrwxr-x  0 mann   users       0 Aug  4  2002 grafik/gimp
drwxrwxr-x  0 mann   users       0 Mar 21  2004 grafik/icons
drwxrwxr-x  0 mann   users       0 Jan 30  2005 grafik/katzen-photos
drwxrwxr-x  0 mann   users       0 Jan 30  2005 grafik/lan-party
drwxrwxr-x  0 mann   users       0 Jan 30  2005 grafik/libella
drwxrwxr-x  0 mann   users       0 Aug  4  2002 grafik/lordofrings
drwxrwxr-x  0 mann   users       0 Aug  4  2002 grafik/mame
drwxrwxr-x  0 mann   users       0 Aug  4  2002 grafik/musik
drwxrwxr-x  0 mann   users       0 Apr 15 15:42 grafik/norikum
drwxrwxr-x  0 mann   users       0 Oct  8  2003 grafik/personen
drwxrwxr-x  0 mann   users       0 Jan 21  2004 grafik/pfeffermann
drwxrwxr-x  0 mann   users       0 Nov 29  2002 grafik/sonstiges
drwxrwxr-x  0 mann   users       0 Dec  8  2005 grafik/steinklang
drwxrwxr-x  0 mann   users       0 Jan 30  2005 grafik/strich8
drwxrwxr-x  0 mann   users       0 Mar  3  2003 grafik/thelema
drwxrwxr-x  0 mann   users       0 May 18  2003 grafik/windows
-rw-rw-r--  0 mann   users  128809 Feb 19  2004 grafik/Vorschau.jpg
tar: Unrecognized archive format: Inappropriate file type or format

Die Rahmenbedinugen:

OS: FreeBSD 6.2-p6
Streamer: HP DDS3 Laufwerk, aber DDS2 Band (reicht locker für die Daten)
SCSI-Controller: Adaptec AHA2940UW

Sicherung mit:

Code:
mt comp off # Kompression zwecklos, das sind JPEGs
tar -cvp -b 64 -f /dev/sa0 verzeichnis

Probelesen mit:
Code:
mt comp off # ist ja nicht komprimiert
tar -tv -b 64 -f /dev/sa0

dabei kommt die oben erwähnte Fehlermeldung. Das sonderbare kommt jetzt: Ich kann ja Daten auch mit dd wieder einlesen. Was soll ich sagen, das funktioniert auch! Warum kann aber tar seine selbst geschriebenen Daten nicht mehr vom Band kratzen?

Code:
dd if=/dev/sa0 of=/platz/archiv-band.tar bs=32k files=1

Die so gewonnene Datei kann ich problemlos mit tar -tvf /platz/archiv-band.tar überprüfen. Kann sich darauf jemand einen Reim machen? Offensichtlich ist das Laufwerk und das Band völlig in Ordnung, sonst hätte ja dd das Archiv nicht mehr von Band holen können.

Ciao.
Markus Mann
];-)
 
warum hast du das -b 64 im funktionsaufruf drinne?

hast du schonmal ein stinknormales
Code:
% tar cvf /dev/sa0 *
% mt -f /dev/sa0 rewind
% tar tvf /dev/sa0
probiert?

sonst geht auch bestimmt ein
Code:
dd if=/dev/sa0 bs=32k | tar tvf -
 
Hallo!

warum hast du das -b 64 im funktionsaufruf drinne?
Schiere Verzweiflung.

hast du schonmal ein stinknormales (...tar...) probiert?

Ja, bei den ersten Versuchen. Dann habe ich es mal mit dem -b versucht, aber das brachte auch keine Besserung.

sonst geht auch bestimmt ein (...dd | tar...)
Ja, natürlich geht das, aber tar sollte das doch auch ohne dd wieder lesen können, oder? Das kommt ja einem "usesless use of dd Award" schon recht nahe. ];-)

Natürlich könnte man hier aufhören und "works for me" sagen, aber vielleicht hat bsdtar ja irgendein Problem, dem man auf die Spur kommen sollte. Kann jemand anderes mit einer ähnlichen Konfiguration versuchen ein Archiv mit tar -c auf Band zu schreiben und das dann mit tar -tv probelesen? Mein Archiv wird lt. du -sh ca. 2,8 GB groß.

Danke & Ciao.
Markus Mann
];-)
 
Umgebung: FreeBSD 6-STABLE von letzter Woche oder so (ist ein Testrechner, habe das daher nicht so genau im Blick), Quantum DLT4000 (feiert nächstes Jahr sein Zehnjähriges :)), Adaptec 29160N.
Code:
> du -sh /usr
2,5G    /usr
> mt -f /dev/sa2 comp off
> tar cvf /dev/sa2 /usr
tar: Removing leading '/' from member names
a usr
a usr/.snap
a usr/bin
a usr/bin/bc
[...]
> tar tvf /dev/sa2
drwxr-xr-x  0 root   wheel       0 Jul 21  08:42 usr
drwxrwxr-x  0 root   operator    0 Jul  7  12:11 usr/.snap
drwxr-xr-x  0 root   wheel       0 Jul 16  21:55 usr/bin
-r-xr-xr-x  0 root   wheel   64144 Jul 16  14:03 usr/bin/bc
-r-xr-xr-x  0 root   wheel  337980 Jul 16  14:03 usr/bin/addr2line
-r-xr-xr-x  0 root   wheel  416260 Jul 16  14:03 usr/bin/ar
-r-xr-xr-x  0 root   wheel  615828 Jul 16  14:04 usr/bin/as
-r-xr-xr-x  0 root   wheel  693424 Jul 16  14:04 usr/bin/ld
[...]
Funktioniert bei mir also einwandfrei.

Wo jetzt bei dir der Fehler liegt, kann ich nicht sagen. Allerdings möchte ich noch ein paar allgemeine Dinge anmerken:
  • DAT/DDS würde ich persönlich auf keinen Fall zur Datensicherung verwenden - eigentlich würde ich das für überhaupt nichts mehr verwenden. Eher würde ich meine Daten nach /dev/null sichern: Geht schneller, ist billiger und ist genauso zuverlässig wie DAT/DDS. ;)
  • Beim Schreiben auf Band sollte man grundsätzlich noch misc/mbuffer davorschalten. Das hat auch eine schöne Anzeige für die bereits geschriebene Datenmenge. Vielleicht kann tar(1) ja das auslesen, was mbuffer geschrieben hat. Ansonsten könntest du versuchen, das mit mbuffer geschriebene Band auch wieder mit mbuffer auszulesen. Das wäre dann zwar immer noch seltsam, aber zumindest ein Kompromiss, mit dem man vielleicht leben kann.
  • Bei tar -c wird -p ignoriert. -p ist nur im Zusammenhang mit -x wirksam.
  • Beim Auslesen sollte automatisch erkannt werden, ob das Band komprimiert ist oder nicht, daher ist mt comp nur wirksam, wenn das Band anschließend beschrieben wird.
Falls das alles nichts hilft, könnte man vielleicht archivers/star ausprobieren. Das hat auch einen eingebauten Ringpuffer. Gut, vom Autor kann man halten, was man will... Ansonsten gibt es im Basissystem auch gtar (GNU tar, das Standard-tar bis FreeBSD 4.x). Einfach mal alle durchprobieren. :rolleyes:
 
Hallo!

Vielen Dank für deinen Test (ich war ein paar Tage im Urlaub, daher keine Reaktion)! Damit wäre also bewiesen, dass bsdtar nicht grundsätzlich kaputt ist. Ich werde mal mbuffer ausprobieren und dann wieder berichten.

Ciao.
Markus Mann
];-)
 
Koennte das der lseek() "bug" sein, der vor kurzem gefixed wurde? Kannst du dein System auf RELENG_6 aktualisieren?
 
Back
Top