Kompletní přečtení celé DDS4 kazety

Kitter

Kompletní přečtení celé DDS4 kazety
« kdy: 09. 01. 2017, 01:59:18 »
Zdravím všechny,

kdysi dávno jsem byl obdarován DDS4 mechanikou Seagate STD2401LW (scsi), ke které jsem si tenkrát koupil i DDS4 kazetu. Mechanika fungovala, tak jsem si tam uložil nějaká nahraná videa z televize (jó, v mládí byl čas na blbosti.... ;D).
Nedávno jsem dostal další tři DDS3 kazety, tak jsem je teď chtěl otestovat a případně na ně taky něco nahrnout, ovšem vlivem neupřesněných událostí jsem si přepsal tu původní kazetu  :)
Respektive proběhl zápis cca 20MB než jsem si to uvědomil a zápis zastavil.

Můj problém tedy je, že je kazeta úplně zaplněná tar archivem s nějakými video soubory, ale následkem přepsání lze z ní vyčíst jen 20MB a poté se kazeta tváří, že na ní už nic není. Jak chápu práci s páskami, tak si udržují určitý "souborový systém". Na mojí pásce je teď "jakoby" jeden 20MB soubor a pak už nic, předtím tam byl jeden velký soubor přes celou pásku (zmíněný tar archiv).

Ví někdo o možnosti, jak (vy)načíst celou pásku i za posledním (jediným) souborem?


Jak jsem psal, data bych oželel, co tam mám by mě zajímalo spíše ze zvědavosti, ale taky mě zajímá, jestli je takováhle "obnova" možná.
Pro práci s mechanikou používám Debian 7, program mt a block device /dev/(n)st0. Konkrétně byly data zapsány příkazem: "tar cf /dev/st0 *.avi".
Děkuji všem za rady.


sadfaseferqwer

Re:Kompletní přečtení celé DDS4 kazety
« Odpověď #1 kdy: 09. 01. 2017, 03:12:43 »
tar archiv neni nijak komprimovany, coz skyta nadeji.

dd if=zarizeni_pasky of=vycuc_dat

nevim jak funguje paska, zda se tim prikazem projede cela paska a ulozi se i pripadne nuly, takze to zabere moooc mista,
nebo se samo prestane nacitat, kdyz na pasce nic uz neni, to nevim.

kazdopadne pak lze z obludneho souboru vycuc_dat hledat zacatky souboru, podle hlavicek avi apod.
a zkusit z toho vysekat ty fajly.

robotron

Re:Kompletní přečtení celé DDS4 kazety
« Odpověď #2 kdy: 09. 01. 2017, 04:09:49 »
kazdopadne pak lze z obludneho souboru vycuc_dat hledat zacatky souboru, podle hlavicek avi apod.
a zkusit z toho vysekat ty fajly.

Ja bych na vycuc pouzil samotnej tar, zanadava, ze mu nesedi zacatek, ale pak by mel aspon zbyly soubory rozbalit normalne. Dokonce bych rekl, ze za pouziti neceho jako tail -c +20000000 < /dev/kazetak | tar tf - by to mohlo chodit i bez prebalovani kazety na disk.

Tuxik

  • *****
  • 1 473
    • Zobrazit profil
    • E-mail
Re:Kompletní přečtení celé DDS4 kazety
« Odpověď #3 kdy: 09. 01. 2017, 05:16:41 »
Obávám se, že ani dd nepřeskočí přes místo označené jako konec. Nevím, jestli je to práce přímo mechaniky, nebo ovladače, každopádně normálně se páska chová tak, že konec prostě nepřeleze a pokud tam zapíšeš 20MB, dd vytáhne 20MB, pokud 100MB, dd vytáhne 100MB, ale nedonutíš ho číst dál. Mechanika si na konci zápisu udělá značku a to je prostě konec. Variantou by bylo začátek pásky ustřihnout, nebo pásku jinak mechanicky upravit tak, aby byl začátek až později, zbytek přečíst a pak by neměl být problém ze zbytku obnovit co půjde.

robotron

Re:Kompletní přečtení celé DDS4 kazety
« Odpověď #4 kdy: 09. 01. 2017, 06:31:33 »
Obávám se, že ani dd nepřeskočí přes místo označené jako konec. Nevím, jestli je to práce přímo mechaniky, nebo ovladače, každopádně normálně se páska chová tak, že konec prostě nepřeleze a pokud tam zapíšeš 20MB, dd vytáhne 20MB, pokud 100MB, dd vytáhne 100MB, ale nedonutíš ho číst dál. Mechanika si na konci zápisu udělá značku a to je prostě konec. Variantou by bylo začátek pásky ustřihnout, nebo pásku jinak mechanicky upravit tak, aby byl začátek až později, zbytek přečíst a pak by neměl být problém ze zbytku obnovit co půjde.

Ja mam takovej matnej pocit z doby QICu a DDS od HP, ze tak moc chytry ty pasky nebyly a prikaz mt umel leccos. Mam dojem, ze kdyz se mt najede nekam doprostred a pak je tar donucen cist, tak proste neco cte.

Kód: [Vybrat]
eod, seod
    Space to end of valid data. Used on streamer tape drives to append data to the logical end of tape.

seek
    (SCSI tapes) Seek to the count block on the tape. This operation is available on some Tandberg and Wangtek streamers and some SCSI-2 tape drives. The block address should be obtained from a tell call earlier.

Zajimave je, co o /dev/st* pise Linux man:

When a filemark is encountered while reading, the following happens. If there are data remaining in the buffer when the filemark is found, the buffered data is returned. The next read returns zero bytes. The following read returns data from the next file. The end of recorded data is signaled by returning zero bytes for two consecutive read calls. The third read returns an error.

Takze se zda, ze to nejdriv vrati len=0 jako by EOF, ale pak jde normalne cist dal. Takze by na to sel asi napsat i triradkovej prog catinfinitetape v C, kdyby nejhur.


Tuxik

  • *****
  • 1 473
    • Zobrazit profil
    • E-mail
Re:Kompletní přečtení celé DDS4 kazety
« Odpověď #5 kdy: 09. 01. 2017, 06:47:50 »
Obávám se, že ani dd nepřeskočí přes místo označené jako konec. Nevím, jestli je to práce přímo mechaniky, nebo ovladače, každopádně normálně se páska chová tak, že konec prostě nepřeleze a pokud tam zapíšeš 20MB, dd vytáhne 20MB, pokud 100MB, dd vytáhne 100MB, ale nedonutíš ho číst dál. Mechanika si na konci zápisu udělá značku a to je prostě konec. Variantou by bylo začátek pásky ustřihnout, nebo pásku jinak mechanicky upravit tak, aby byl začátek až později, zbytek přečíst a pak by neměl být problém ze zbytku obnovit co půjde.

Ja mam takovej matnej pocit z doby QICu a DDS od HP, ze tak moc chytry ty pasky nebyly a prikaz mt umel leccos. Mam dojem, ze kdyz se mt najede nekam doprostred a pak je tar donucen cist, tak proste neco cte.

Kód: [Vybrat]
eod, seod
    Space to end of valid data. Used on streamer tape drives to append data to the logical end of tape.

seek
    (SCSI tapes) Seek to the count block on the tape. This operation is available on some Tandberg and Wangtek streamers and some SCSI-2 tape drives. The block address should be obtained from a tell call earlier.

Zajimave je, co o /dev/st* pise Linux man:

When a filemark is encountered while reading, the following happens. If there are data remaining in the buffer when the filemark is found, the buffered data is returned. The next read returns zero bytes. The following read returns data from the next file. The end of recorded data is signaled by returning zero bytes for two consecutive read calls. The third read returns an error.

Takze se zda, ze to nejdriv vrati len=0 jako by EOF, ale pak jde normalne cist dal. Takze by na to sel asi napsat i triradkovej prog catinfinitetape v C, kdyby nejhur.
Ono to bude asi závislé především na HW nebo ovladači, technicky nemůže být problém v tom to přečíst, ale minimálně některé (IMHO většina) mechaniky se chovají tak, že se k tomu běžným způsobem nedají donutit. Nejjednodušší mi přijde mechaniku rozebrat, vrazit tam pásku přetočenou o kousek dál, při rewindu podržet motorek, aby si myslel, že je na začátku a pak na to pustit dd.

Boo

Re:Kompletní přečtení celé DDS4 kazety
« Odpověď #6 kdy: 09. 01. 2017, 09:58:33 »
Tady je nejaky navod http://pages.cs.wisc.edu/~plonka/sysadmin/backup.html

TLDR: prepsat ten EOF marker pomoci dd a pak vypnut proud nez sync udela EOF :-)