DVD'imi neden dd ile kopyalayamıyorum?


12

Ben dd, dd_rescue ve ddrescue denedim , hepsi başarısız oldu. Bu araçların dosya sistemini atladığını ve bitsel bir kopya yaptığını düşündüm.

dd kandırılır, biter ancak sadece küçük bir dosya üretir ve bittiğini belirtir.

dd_rescuse ve ddrescue, okuma hataları hakkında şikayette bulunur ve dayanılmaz derecede yavaştır. Bu araçlar 10 dakikada yalnızca birkaç MB kopyalayabilir.

Bu neden oluyor, bu araçlar neden başarısız oluyor?


AnyDVD , diski bir Win7 ana bilgisayarında bir saniyede kopyalanabilir hale getirir. UDF dosya sisteminin yamalı bir şekilde yamalı olduğunu söylüyor, aynı zamanda kötü sektörlerin olmadığını söylüyor. Diskin tamamı 10 dakika içinde kopyalanabilir.
GÜNCELLEME: Çözüme gelince , süper kullanıcı hakkındaki benzer sorumu inceleyin .

Yanıtlar:


16

Ben en basit cevap dd, dd_rescue ve ddrescue kopya koruma düzenlerini yenmek için tasarlanmış olmadığını düşünüyorum. Verilerin formatı hakkında herhangi bir varsayımda bulunmazlar ve disk verilerindeki tüm orijinalin bütünlüğünü korumaya çalışırlar.

Durumunda ddI o kopya koruma düzeninin bir parçası olan diskte kasıtlı bir okuma hatası nedeniyle sonlandırma şüpheleniyorsanız. ddSorunuza gelen komut satırı çıktısını eklerseniz bunu onaylamanız yardımcı olacaktır . dmesgKomut çıkışında kaydedilmiş bazı okuma hataları da bulabilirsiniz .

Sen alabilirsiniz ddgeçirerek dosyanın daha kopyalamak için noerrorkomut satırında kendisine bayrak. Ancak bunun sadece son görüntünüzde yolsuzluk bıraktığını görebilirsiniz.


Teşekkürler, seçildi. Dosya sistemini atlar ve "bitsel" bir kopya yapar ve okuma hatalarını sıfır bayt ile değiştirirsem, bu yine de bozuk bir görüntü verir mi? Sonuçta ben sadece veri zaten okunamayan sıfır bayt ile değiştirin. Daha sonra dmesg çıkışını ekleyeceğim, yanımda DVD yok.
Ali

Gerçekten, son görüntünün "bozuk" olup olmadığını belirlemenin tek yolu, kullanılabilir olduğunda çalışmaktır. Bunun bir kısmı, sadece gerçek kırık blokların sıfır olarak okunmasını ve çevreleyen blokların hiçbirinin okunmamasını sağlayacaktır. Bu, bir bs = 512 (CD / DVD blok boyutu olan bellekten) parametresini dd'ye geçirmeniz gerektiği anlamına gelebilir. Gerçekten bu tür bir şey dd_rescue yapmak için tasarlanmış olsa da. Zaman alabilir, ancak mümkün olan en düşük veri miktarını kaybetmeye çalışır.
Richm

Tamam, yardımlarınız için teşekkürler. Çok fazla seviyede vidalandım. Ben AnyDVD kullanarak sona erdi.
Ali

15

İnsanlar DVD'yi VLC (DVD menüsünü gösteren) ile açmanın verileri sihirli bir şekilde erişilebilir hale getirdiğini dd, ancak bunun neden olduğunu ve VLC'nin bu başarıyı nasıl başardığını henüz kimse açıklamadı.

Ağımda DVD sürücüsünün kökünü paylaşmak için SMB kullanarak, televizyonuma bağlanan Kodi cihazından bilgisayarımda DVD oynatmaya çalışırken bu davranışı çoğaltmayı başardım. O, değil çalışma yaptı sürece ben ilk nokta Kodi sihirli dosyaları oynayabilir hangi VLC ile DVD'yi açıldı.

Bu tür bir sihir hassasiyetlerimi rahatsız ediyor, bu yüzden kazmaya gittim. Sorunun altında yatan neden, DVD sürücünüzün size karşı çalışmasıdır . Gereğince Vikipedi :

Ancak, sürücü CSS ile derlenmiş bir disk algılarsa, telif hakkı ile işaretlenmiş mantıksal bloklara erişimi reddeder (§6.15.3 [2]). Oynatıcının önce bir kimlik doğrulama anlaşması yürütmesi gerekir (§4.10.2.2 [2]).

Yani sadece DVD'yi okuduğunuzda oynatılamayan şifrelenmiş veriler elde edemezsiniz; makinenizdeki bir program Linux çekirdeği tarafından maruz bırakılan DVD'ye özgü bazı IOCTL'ler (bu durumda DVD_AUTH ) kullanarak sürücünün kimliği doğrulanmadıkça sürücü bitleri geri göndermez . Bu yüzden bu bir G / Ç hatası olarak kendini gösterir.

Bu IOCTL'lerin nasıl çalıştığı hakkında daha fazla bilgi, bu posta listesi postasında onları uygulayan kişiden edinilebilir , ancak temel olarak kullanıcı alanı yazılımının DVD sürücüsü donanımıyla gizli el sıkışmasını gerçekleştirmesi için bir yol sağlar.

VLC ile bu gizli el sıkışma gerçekleştiren libdvdcsssırayla bunu yapmak görünüyor, GetBusKey()içindecss.c . Muhtemelen libdvdcsstüm VLC'ye güvenmek yerine sürücünün dosya olarak erişim için kilidini açmak üzere bağlantılı olan bağımsız bir program yazılabilir. Kilidi açıldıktan sonra, sürücü hangi programın okuduğunu söyleyemez, bu nedenle (hala şifrelenmiş ancak şimdi okunabilir) bitleri ddveya dahil olmak üzere herkese geri gönderir cp.

(İlginç bir şekilde, DVD IOCTL'ler de, bir kez okuduktan sonra, diskteki verilerin şifresini çözmek için kullanılan şifre çözme anahtarını almanın tek gerçek yoludur. Kopyalanmış bir dosya dizini oynatıyorsanız, anahtarları almak için IOCTL'ler, bu nedenle libdvdcssşifrelemeyi kırmak için istatistiksel kriptanalize başvurur .)


Teşekkürler. DVD'im VLC ile açılamıyor; maalesef durumum çok daha karmaşıktı. Yine de cevabınızı iptal ettiniz.
Ali

Bu benim için de işe yaramış gibi görünüyor. Tüm isos'um vlcdaha sonra açıldığında dvd menüsünü doğru bir şekilde göstermese de (büyük değil - bunu sadece disklerim için bir yedekleme olarak yapıyorum ve içerik kaybetmemek benim için önemli olan şey). Ben gibi araçlar şüpheli makemkvveya handbrakeayrıca aynı etkiye sahip olabilir vlc. Bir kenara, bu benim için bir Linux VM içinden çalışan vlcWindows üzerinde ddçalışan ile çalıştı .
LRE

Harika bir açıklama! Teşekkür ederim interfect. Bu her şeyi açıklıyor. Ben aynı bulmacayı vardı ama hangi Wikipedia makalesi kontrol etmek için egzersiz yapmadım.
Shi B.

1
Ayrıca komut satırından DVD'nin kilidini açabilen bir program olan cssauth da vardır . Aslında yazıyorsunuz testdvd /dev/dvdve hepsi bu.
Antonis Christofides

14

Bunun neden işe yaradığından emin değilim, önce VLC ile DVD'yi açmak, menüyü görüntülemek için yeterli ve ardından duraklatma dd'nin çalışmasına izin veriyor.


Teşekkürler. DVD'im VLC ile açılamıyor; maalesef durumum çok daha karmaşıktı.
Ali

Bu yorum sırasında benim için çalıştı, ama totem ile açtım (vlc yok). Tuhaf.
Kyle

2

Diski VLC ile açmanın korumayı atladığını doğrulayabilirim. Ancak, kullanırken dd, bu komutu VLC'yi açtıktan sonra kullanmak zorunda kaldım (diski yükleyerek ve VLC'de bulunan dizini kullanarak keşfettim).

dd if=/dev/sr0 of=image_of_disc.iso

Bu komutun çalışması gerektiğini söyleyen birçok mesajdan farklı olan:

dd if=/dev/cdrom of=image_of_disc.iso - NON-WORKING

kanıt:

me@me:~$ dd if=/dev/cdrom of=/media/me/image_of_disc.iso
dd: error reading ‘/dev/cdrom’: Input/output error
103336+0 records in
103336+0 records out
52908032 bytes (53 MB) copied, 2.04212 s, 25.9 MB/s

me@me:~$ dd if=/dev/sr0 of=/media/me/image_of_disc.iso
dd: error reading ‘/dev/sr0’: Input/output error
2846992+0 records in
2846992+0 records out
1457659904 bytes (1.5 GB) copied, 314.351 s, 4.6 MB/s
me@me:~$ 


0

İnsanlar DVD'yi VLC ile açmanın (DVD menüsünü görüntüleyen) sihirli bir şekilde verileri dd için erişilebilir hale getirdiğini belirtiyor, ancak kimse bunun neden olduğunu ve VLC'nin bu başarıyı nasıl başardığını henüz açıklamadı.

Ben de 'önce VLC ile açık DVD' yaşadı. Yani, betiğimde dd kullanırken bu sırayı kullanıyorum:

cvlc --run-time 6 --start-time 16 /dev/sr0 vlc://quit 

`dd if=/dev/sr0 of=/home/user/Videos/name.iso`

2
Tam olarak ne diyorsun? Neden “kimse bunun neden olduğunu ve nasıl açıklandığını henüz açıklamamıştır?” soru cevap vermeyecek misin? Neden gösteriyor ddters tırnakların komut? ……………………………………………………… Lütfen yorumlara cevap vermeyin;  daha net ve eksiksiz hale getirmek için cevabınızı düzenleyin .
G-Man, 'Monica'yı Yeniden

@ G-ManSays'ReinstateMonica 'temelde GUI olmadan çalıştırmak için vlc komut satırı kullanılarak önerilen cevap, 16 saniyede videodan başlayıp 6 saniye oynar ve bundan sonra oldukça vlc. Rakamlar biraz keyfi, ama iyi bir alternatif seçenektir.
Shi B.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.