Dit is een oude revisie van het document!
LTFS en Tape
Tapedrive informatie
Om informatie over de drive zelf uit te lezen kun je het volgende doen:
sudo sg_logs -a /dev/sg3
Dan krijg je mogelijk de volgende output:
Device statistics log page (ssc-3 and adc) Lifetime media loads: 2200 Lifetime cleaning operations: 6 Lifetime power on hours: 61183 Lifetime media motion (head) hours: 11204 Lifetime metres of tape processed: 132126786
Wanneer het lang geleden is dat een tape gereinigd is, kun je een cleaning-tape laden. Dan wordt de drive automatisch gereinigd.
WORM
Op een WORM-tape kun je geen LTFS schrijven. Daarom schrijven met bijv. tar. Hiervoor moet je eerst naar het einde van de tape omdat je vanaf daar met het tar-commando kunt schrijven:
sudo mt -f /dev/nst0 eod
Vrije ruimte
Vervolgens kun je uit de sg_logs informatie halen welke grootte nog vrij is. Daarvan kun je het beste wat extra ruimte vrijhouden.
Er is een sh-bestandje (onderaan de bron) waarmee de grootte getoond wordt. Dit gaat met het volgende commando:
./list_size.sh
Data schrijven
Daadwerkelijk schrijven van de data doe je met het tar commando. Dat gaat als volgt:
sudo tar -cvf /dev/nst0 "/mnt/data/sessions.zip"
of meerdere bestanden als één set:
sudo tar -cvf /dev/nst0 "/mnt/data/sessions.zip" "/mnt/data/sessions_bestandslijst.txt"
Anders worden het losse sets.
Data teruglezen
De data teruglezen vanaf tape gaat als volgt:
sudo mt -f /dev/st0 rewind sudo tar -xvf /dev/st0 -C /mnt/restore "mnt/data/music_bestandslijst.txt"
Broncodes
list_size.sh
sudo sg_logs -p 0x31 /dev/sg3 \
| awk -F': ' '
/Main partition remaining capacity/ {rem=$2}
END{
safe=rem*0.90
printf "Vrij: %.1f GiB (%.1f GB)\n", rem/1024, rem/1024*1.073741824
printf "Veilig: %.1f GiB (%.1f GB) [10%% marge]\n", safe/1024, safe/1024*1.073741824
}'
list_all_sets.sh
#!/usr/bin/env bash
set -euo pipefail
DEV=/dev/nst0
sudo mt -f "$DEV" rewind
i=1
while true; do
echo
echo "===== SET $i ====="
if ! sudo tar -tvf "$DEV"; then
echo "Einde tape of geen tar-set meer."
break
fi
# spring naar volgende set (filemark overslaan)
if ! sudo mt -f "$DEV" fsf 1; then
echo "Kan niet verder spoelen (waarschijnlijk EOT)."
break
fi
i=$((i+1))
done
