Mengapa saya tidak bisa menyalin DVD saya dengan dd?

12

Saya mencoba dd, dd_rescue , dan ddrescue , semuanya gagal. Saya pikir alat-alat ini mem-bypass sistem file dan membuat salinan bitwise.

dd tertipu, itu selesai tetapi hanya menghasilkan file kecil dan menyatakan itu selesai.

dd_rescuse dan ddrescue mengeluh tentang kesalahan baca dan sangat lambat. Alat-alat ini dapat menyalin hanya beberapa MB dalam 10 menit.

Mengapa ini terjadi, mengapa alat-alat ini gagal?


AnyDVD membuat cakram dapat disalin dalam sedetik pada host Win7. Dikatakan bahwa sistem file UDF ditambal, anehnya, ia juga mengatakan bahwa tidak ada bad sector. Seluruh disk dapat disalin dalam 10 menit.
UPDATE: Adapun solusinya, lihat pertanyaan saya yang sama tentang superuser .

Ali
sumber

Jawaban:

16

Saya pikir jawaban paling sederhana adalah bahwa dd, dd_rescue dan ddrescue tidak dirancang untuk mengalahkan skema perlindungan salinan. Mereka tidak membuat asumsi tentang format data dan mencoba untuk mempertahankan integritas dari yang asli pada data disk.

Dalam kasus ddsaya menduga itu diakhiri karena kesalahan baca yang disengaja pada disk yang merupakan bagian dari skema perlindungan salinan. Ini akan membantu untuk mengkonfirmasi ini jika Anda menyertakan keluaran commandline dari dddengan pertanyaan Anda. Anda juga dapat menemukan beberapa kesalahan baca yang direkam dalam dmesgoutput perintah.

Anda bisa ddmenyalin lebih banyak file dengan mengirimkan noerrorflag padanya di commandline. Namun Anda mungkin menemukan bahwa ini hanya membuat Anda korupsi di gambar akhir Anda.

Richm
sumber
Terima kasih, terunggah. Jika saya mem-bypass sistem file dan melakukan salinan "bitwise", dan mengganti kesalahan baca dengan nol byte, apakah itu masih menghasilkan gambar yang rusak? Lagi pula saya hanya mengganti data itu dengan nol byte yang tidak bisa dibaca. Saya akan menyertakan keluaran dmesg nanti, saya tidak membawa DVD.
Ali
Sungguh satu-satunya cara untuk menentukan apakah gambar akhir "rusak" adalah untuk mengetahui apakah itu dapat digunakan. Sebagian dari itu akan memastikan bahwa hanya blok yang rusak aktual dibaca sebagai nol dan tidak ada blok di sekitarnya. Itu mungkin berarti bahwa Anda perlu meneruskan parameter bs = 512 (dari memori yang merupakan ukuran blok CD / DVD) ke dd. Benar-benar hal semacam itu adalah apa yang dd_rescue dirancang untuk dilakukan. Mungkin butuh waktu tetapi mencoba untuk kehilangan jumlah minimum data yang mungkin.
Richm
OK, terima kasih atas semua bantuan Anda. Saya kacau terlalu banyak level. Saya akhirnya menggunakan AnyDVD.
Ali
15

Orang-orang menyebutkan bahwa membuka DVD dengan VLC (yang menampilkan menu DVD) secara ajaib membuat data dapat diakses dd, tetapi belum ada yang menjelaskan mengapa itu dan bagaimana VLC mencapai prestasi ini.

Saya berhasil meniru perilaku ini ketika mencoba memutar DVD di komputer saya dari perangkat Kodi yang terhubung ke TV saya, dengan menggunakan SMB untuk berbagi akar drive DVD melalui jaringan. Itu tidak berhasil, kecuali saya pertama kali membuka DVD dengan VLC, di mana Kodi secara ajaib dapat memutar file.

Sihir semacam ini menyinggung perasaanku, jadi aku pergi menggali. Penyebab mendasar dari masalah ini adalah bahwa drive DVD Anda bekerja melawan Anda . Sesuai Wikipedia :

Namun, jika drive mendeteksi disk yang telah dikompilasi dengan CSS, drive tersebut menolak akses ke blok logis yang ditandai sebagai hak cipta (§6.15.3 [2]). Pemain harus menjalankan jabat tangan otentikasi terlebih dahulu (§4.10.2.2 [2]).

Jadi bukan hanya Anda akan mendapatkan data terenkripsi yang tidak dapat diputar jika Anda membaca DVD; drive tidak akan mengirim kembali bit kecuali beberapa program pada mesin Anda telah mengotentikasi dirinya ke drive, menggunakan beberapa IOCTL spesifik DVD yang diekspos oleh kernel Linux (dalam hal ini, DVD_AUTH ). Itu sebabnya ini bermanifestasi sebagai kesalahan I / O.

Informasi lebih lanjut tentang cara kerja IOCTL ini tersedia di pos milis ini dari orang yang menerapkannya , tetapi pada dasarnya mereka menyediakan cara bagi perangkat lunak userland untuk melakukan jabat tangan rahasia dengan perangkat keras drive DVD.

VLC melakukan jabat tangan rahasia ini libdvdcss, yang sepertinya melakukannya di GetBusKey()dalamcss.c . Agaknya program mandiri yang ditautkan libdvdcssdapat ditulis untuk membuka kunci drive untuk diakses sebagai file, alih-alih mengandalkan semua VLC. Setelah tidak terkunci, drive tidak dapat mengetahui program mana yang membacanya, sehingga mengirimkan kembali bit (masih terenkripsi tetapi sekarang dapat dibaca) kepada siapa pun, termasuk ddatau cp.

(Menariknya, DVD IOCTL juga merupakan satu-satunya cara nyata untuk mendapatkan kunci dekripsi yang digunakan untuk mendekripsi data pada disk, setelah Anda membacanya. Jika Anda memainkan direktori file yang disalin, Anda tidak memiliki akses ke IOCTL untuk mendapatkan kunci, jadi menggunakan libdvdcsskriptanalisis statistik untuk memecahkan enkripsi .)

memotong
sumber
Terima kasih. DVD saya tidak dapat dibuka dengan VLC; Sayangnya, situasi saya jauh lebih rumit. Namun demikian, jawab Anda terbalik.
Ali
Ini sepertinya juga berhasil bagi saya. Meskipun tidak semua isos saya dengan benar menunjukkan menu dvd ketika dibuka vlcsetelahnya (bukan yang utama - saya hanya melakukan ini sebagai cadangan untuk disk saya dan tidak kehilangan konten adalah hal yang penting bagi saya di sini). Saya menduga alat suka makemkvatau handbrakemungkin juga memiliki efek yang sama vlc. Sebagai tambahan, ini bekerja untuk saya dengan vlcmenjalankan di Windows dengan ddmenjalankan dari dalam Linux VM.
LRE
Penjelasan hebat! Terima kasih, interfect. Itu menjelaskan semuanya. Saya memiliki teka-teki yang sama tetapi tidak berhasil untuk memeriksa artikel Wikipedia mana.
Shi B.
1
Ada juga program, cssauth , yang dapat membuka kunci DVD dari baris perintah. Pada dasarnya Anda mengetik testdvd /dev/dvddan hanya itu.
Antonis Christofides
14

Saya tidak yakin mengapa ini bekerja tetapi membuka DVD pertama dengan VLC, cukup untuk melihat menu, dan kemudian berhenti, mari bekerja.

Ron McCy
sumber
Terima kasih. DVD saya tidak dapat dibuka dengan VLC; Sayangnya, situasi saya jauh lebih rumit.
Ali
Bekerja untuk saya pada saat komentar ini, tetapi saya membuka dengan totem (tidak punya vlc). Aneh.
Kyle
2

Saya dapat mengkonfirmasi bahwa membuka disk dengan VLC tidak memintas perlindungan. Namun, ketika menggunakan dd, saya harus menggunakan perintah ini setelah membuka VLC (ditemukan dengan memuat disk dan menggunakan direktori yang terbuka di VLC).

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

Yang berbeda dari banyak posting yang telah saya baca yang mengatakan perintah ini harus bekerja:

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

bukti:

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:~$ 
Mycool
sumber
0

Saya dapat merekomendasikan program yang disebut dvdbackup

Saya dapat membuat salinan cadangan DVD sebagai folder. Saya tidak berpikir itu membuat iso. Jadi, Anda perlu mengambil langkah itu secara manual.

akan
sumber
0

Orang-orang menyebutkan bahwa membuka DVD dengan VLC (yang menampilkan menu DVD) secara ajaib membuat data dapat diakses ke dd, tetapi belum ada yang menjelaskan mengapa itu dan bagaimana VLC mencapai prestasi ini.

Saya juga mengalami 'open DVD with VLC'. Jadi, ketika menggunakan dd dalam skrip saya, saya menggunakan urutan ini:

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

`dd if=/dev/sr0 of=/home/user/Videos/name.iso`
Adriaan
sumber
2
Apa tepatnya yang kamu katakan? Mengapa Anda mengutip "belum ada yang menjelaskan mengapa itu dan bagaimana ...?" mempertanyakan apakah Anda tidak akan menjawabnya? Mengapa Anda menunjukkan ddperintah Anda di backticks? ..... edit  jawaban Anda untuk membuatnya lebih jelas dan lebih lengkap.
G-Man Mengatakan 'Reinstate Monica'
@ G-ManSays'ReinstateMonica 'pada dasarnya jawaban yang diusulkan menggunakan command line vlc untuk berjalan tanpa GUI, mulai dari video pada 16 detik dan bermain selama 6 detik dan cukup vlc setelah itu. Angka-angka ini agak sewenang-wenang, tetapi ini merupakan pilihan alternatif yang baik.
Shi B.