Narzędzia użytkownika

Narzędzia witryny


wiki:tape_storage

Taśma DAT/DLT na Linuksie

Słowniczek mt oraz tar:

Polecenie Wyjaśnienie
ls -la /dev/nst0 Sprawdzenie, czy istnieje plik urządzenia taśmy
mt -f /dev/nst0 status Stan taśmy oraz aktualny File number
sudo mt -f /dev/nst0 setblk 65536 Ustawienie rozmiaru bloku
mt -f /dev/nst0 load Wymuszenie załadowania taśmy (powinno odbyć się automatycznie)
mt -f /dev/nst0 fsf 1 Przewinięcie o jeden File number do przodu
mt -f /dev/nst0 bsfm 1 Przewinięcie do początku obecnego File number
mt -f /dev/nst0 rewind Przewinięcie do początku taśmy
tar -b 128 -cvf /dev/nst0 /home/lukasz/dir/ Utworzenie archiwum na taśmie, na obecnym numerze pliku
tar -b 128 -tvf /dev/nst0 Pokazanie zawartości archiwum z obecnego numeru pliku
tar -b 128 -xvf /dev/nst0 Rozpakowanie archiwum z obecnego numeru pliku do aktualnego katalogu
mt -f /dev/nst0 erase Zerowanie taśmy (zajmuje dużo czasu)
mt -f /dev/nst0 eject Wyjęcie taśmy z napędu
mt -f /dev/nst0 stsetoptions debug Zwiększenie gadatliwości logu
journalctl -f | grep 'st0' Czytanie na bieżąco logów

Scenariusz:

  • należy zarchiwizować katalogi /home/lukasz/Dokumenty/battletech/rpg oraz /home/lukasz/Dokumenty/craft na taśmie,
  • system to Fedora 33, streamer to (stary model, ale w przypadku nowszych archiwizuje się w ten sam sposób) HP DW022A, kaseta to HP DDS40.

Przygotowanie systemu oraz magnetofonu.

Warto dodać swojego użytkownika do grupy tape i na chwilę się wylogować:

# sudo usermod -aG tape lukasz

Po umieszczeniu taśmy w napędzie:

# ls -la /dev/nst0
crw-rw---- 1 root tape 9, 128 01-12 14:04 /dev/nst0

# mt -f /dev/nst0 status
SCSI 2 tape drive:
File number=0, block number=0, partition=0.
Tape block size 65536 bytes. Density code 0x26 (DDS-4 or QIC-4GB).
Soft error count since last status=0
General status bits on (41010000):
 BOT ONLINE IM_REP_EN

Jeżeli taśma została zakupiona używana, można ją wyzerować, co zajmuje jednak prawie dwie godziny:

# mt -f /dev/nst0 erase
# mt -f /dev/nst0 rewind

Ustawienie bloku (może być potrzebne sudo):

# sudo mt -f /dev/nst0 setblk 65536

Zapisanie katalogu na taśmie i weryfikacja

# tar -b 128 -cvf /dev/nst0 /home/lukasz/Dokumenty/battletech/rpg/
tar: Removing leading `/' from member names
/home/lukasz/Dokumenty/battletech/rpg/
/home/lukasz/Dokumenty/battletech/rpg/mapy/
/home/lukasz/Dokumenty/battletech/rpg/mapy/openterrain1.jpg
[...]
# tar -b 128 -tvf /dev/nst0
drwxr-xr-x lukasz/lukasz     0 2020-04-12 18:36 home/lukasz/Dokumenty/battletech/rpg/
drwxr-xr-x lukasz/lukasz     0 2020-04-12 18:22 home/lukasz/Dokumenty/battletech/rpg/mapy/
-rw-r--r-- lukasz/lukasz 4299522 2020-04-12 17:44 home/lukasz/Dokumenty/battletech/rpg/mapy/openterrain1.jpg
[...]

Po zapisie pliku taśma będzie ustawiona na następnym file number. Dla pewności można przewijać taśmą o 100 plików do przodu, zakładając, że na żadnej taśmie nie ma 100 archiwów. Przewinięcie taśmy do przodu i zapisanie kolejnego archiwum:

# mt -f /dev/nst0 fsf 100
[komunikat read/write error, ponieważ osiągnięto EOT - End of Tape]
# tar -b 128 -cvf /dev/st0 /home/lukasz/Dokumenty/craft/
tar: Removing leading `/' from member names
/home/lukasz/Dokumenty/craft/
/home/lukasz/Dokumenty/craft/zew_cthulhu.pdf
/home/lukasz/Dokumenty/craft/zapomniane_miasto.pdf
/home/lukasz/Dokumenty/craft/w_gorach_szalenstwa.pdf
[...]

Rozpakowanie archiwum w celu weryfikacji.

# tar -b 128 -xvf /dev/nst0
drwxr-xr-x lukasz/lukasz     0 2020-04-12 18:36 home/lukasz/Dokumenty/battletech/rpg/
drwxr-xr-x lukasz/lukasz     0 2020-04-12 18:22 home/lukasz/Dokumenty/battletech/rpg/mapy/
-rw-r--r-- lukasz/lukasz 4299522 2020-04-12 17:44 home/lukasz/Dokumenty/battletech/rpg/mapy/openterrain1.jpg
-rw-r--r-- lukasz/lukasz 4491530 2020-04-11 15:44 home/lukasz/Dokumenty/battletech/rpg/mapy/tortuga_mapa.jpg
[...]

Sztuczka z md5 do sprawdzenia sum kontrolnych plików:

# find home/lukasz/Dokumenty/battletech/rpg/ -type f -print0 | xargs -0 md5sum
wiki/tape_storage.txt · ostatnio zmienione: 2022/08/18 11:44 przez 127.0.0.1

Wszystkie treści w tym wiki, którym nie przyporządkowano licencji, podlegają licencji: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki