Często zachodzi konieczność naprawy uszkodzonych płyt
cd lub
dvd. Skopiowanie takiej płyty na dysk nie jest możliwe, a niekiedy nie mamy dostępu do innej jej kopii lub jest to płyta pamiątkowa, w jednym egzemplarzu.
Wykorzystałem w tym celu program
dd_rescue z pakietu
recovery oraz program
Xdialog (do tworzenia okien dialogowych) i skrypt powłoki o nazwie
dd_rescue.sh.
Jak widać na poniższych zrzutach ekranu na początku podajemy
plik do kopiowania, potem podajemy
gdzie i pod jaką nazwą mamy go zapisać i na końcu podajemy
od jakiego miejsca mamy zacząć kopiowanie (w którym miejscu przerwaliśmy pracę). Wartość tą można odczytać z
konqerora i pomniejszyć o
1 Mb. Ta funkcja jest bardzo przydatna, bo niekiedy naprawa płyty trwa kilka dni.
Z własnego doświadczenia wiem, że naprawiona płyta z filmem da się normalnie oglądać, a miejsce zarysowania płyty powoduje pojawienie się na ekranie kilkusekundowej przerwy, w postaci kolorowych plam. Do ich wycięcia można użyć programu
Avidemux lub innego edytora filmów.
Dla ułatwienia instalacji przygotowałem archiwum
tar.gz z programami
Xdialog, dd_rescue oraz
dd_rescue.sh
dla Slackware 10.1
Musimy jeszcze dodać nową pozycję do
menu start zgodnie z poniższym zrzutem.
Ponieważ niektóre płyty
cd,
dvd można było czytać tylko z konta
root, to należy w pliku
/etc/sudors dopisać linię o treści
/usr/local/bin/dd_rescue.sh, dla konkretnego użytkownika.
Można także używać polecenia
kdesu dd_rescue.sh.
W skrypcie
/usr/local/bin/dd_rescue.sh musimy jeszcze zmienić katalog do zapisu z
/home/andrzej na inny, aktualny.
Program
dd_rescue ma następującą składnię polecenia:
dd_rescue -s (wartość) -S (wartość) plik źródłowy plik wyjściowy
Plik żródłowy (
s) pokazuje nam od jakiej wartości mamy zacząć kopiowanie, a plik wyjściowy (
S) mówi nam od jakiej wartości należy je zapisać.
Zmieniając te wartości możemy wyciąć zepsuty fragment i zapisać go zachowując ciągłość pliku wyjściowego.
W skrypcie
dd_rescue.sh należy w tym celu dodać jedno okno dialogowe
inputbox do zmainy parametru
S.
Dla zainteresowanych podaję kod skryptu powłoki: