Why can't I copy my DVD with dd?
I tried dd, dd_rescue and ddrescue, all failed. I thought these tools bypass the filesystem and make a bitwise copy.
dd is fooled, it finishes but just produces a small file and states it's finished.
dd_rescuse and ddrescue are complaining about read errors and are intolerably slow. These tools can copy only a few MB in 10 minutes.
Why is this happening, why are these tools failing?
AnyDVD makes the disc copyable in a second on a Win7 host. It says that the UDF filesystem is patched, curiously, it also says that there are no bad sectors. The whole disc can be copied in 10 minutes.
UPDATE: As for the solution, see my similar question on superuser.
filesystems backup data-recovery dd dvd
add a comment |
I tried dd, dd_rescue and ddrescue, all failed. I thought these tools bypass the filesystem and make a bitwise copy.
dd is fooled, it finishes but just produces a small file and states it's finished.
dd_rescuse and ddrescue are complaining about read errors and are intolerably slow. These tools can copy only a few MB in 10 minutes.
Why is this happening, why are these tools failing?
AnyDVD makes the disc copyable in a second on a Win7 host. It says that the UDF filesystem is patched, curiously, it also says that there are no bad sectors. The whole disc can be copied in 10 minutes.
UPDATE: As for the solution, see my similar question on superuser.
filesystems backup data-recovery dd dvd
add a comment |
I tried dd, dd_rescue and ddrescue, all failed. I thought these tools bypass the filesystem and make a bitwise copy.
dd is fooled, it finishes but just produces a small file and states it's finished.
dd_rescuse and ddrescue are complaining about read errors and are intolerably slow. These tools can copy only a few MB in 10 minutes.
Why is this happening, why are these tools failing?
AnyDVD makes the disc copyable in a second on a Win7 host. It says that the UDF filesystem is patched, curiously, it also says that there are no bad sectors. The whole disc can be copied in 10 minutes.
UPDATE: As for the solution, see my similar question on superuser.
filesystems backup data-recovery dd dvd
I tried dd, dd_rescue and ddrescue, all failed. I thought these tools bypass the filesystem and make a bitwise copy.
dd is fooled, it finishes but just produces a small file and states it's finished.
dd_rescuse and ddrescue are complaining about read errors and are intolerably slow. These tools can copy only a few MB in 10 minutes.
Why is this happening, why are these tools failing?
AnyDVD makes the disc copyable in a second on a Win7 host. It says that the UDF filesystem is patched, curiously, it also says that there are no bad sectors. The whole disc can be copied in 10 minutes.
UPDATE: As for the solution, see my similar question on superuser.
filesystems backup data-recovery dd dvd
filesystems backup data-recovery dd dvd
edited Mar 20 '17 at 10:04
Community♦
1
1
asked Feb 24 '12 at 11:21
AliAli
1,72651417
1,72651417
add a comment |
add a comment |
5 Answers
5
active
oldest
votes
I think that the simplest answer is that dd, dd_rescue and ddrescue are not designed to defeat copy protection schemes. They make no assumptions about the format of the data and try to maintain the integrity of the whole of the original on disk data.
In the case of dd
I suspect that it is terminating due to an intentional read error on the disk that is part of the copy protection scheme. It would help to confirm this if you included the commandline output from dd
with your question. You may also find some read errors recorded in the dmesg
command output.
You may get dd
to copy more of the file by passing the noerror
flag to it on the commandline. However you may find that this just leaves you with corruption in your final image.
Thanks, upvoted. If I bypass the filesystem and do a "bitwise" copy, and replace the read errors with zero bytes, would that still yield a corrupted image? After all I only replace that data with zero bytes that cannot be read anyhow. I will include the dmesg output later, I do not have the DVD with me.
– Ali
Feb 24 '12 at 15:43
Really the only way to determine if the final image is "corrupted" is to work out if it is usable. Part of that will be making sure that only the actual broken blocks are read as zeros and none of the surrounding blocks. That might mean that you need to pass a bs=512 (from memory that is the CD/DVD blocksize) parameter to dd. Really though that sort of thing is what dd_rescue is designed to do. It might take time but it tries to lose the minimum amount of data possible.
– Richm
Feb 24 '12 at 16:40
OK, thanks for all your help. I am screwed on way too many levels. I ended up using AnyDVD.
– Ali
Feb 28 '12 at 21:08
add a comment |
I'm not sure why this works but opening the DVD first with VLC, just enough to view the menu, and then pausing lets dd work.
Thanks. My DVD cannot be opened with VLC; unfortunately, my situation was a lot more complicated.
– Ali
Dec 30 '13 at 16:07
Worked for me at the time of this comment, but I opened with totem (don't have vlc). Weird.
– Kyle
Aug 5 '16 at 18:32
add a comment |
I can confirm that opening the disc with VLC does bypass the protection. However, when using dd
, I had to use this command after opening VLC (discovered by loading the disc and using the directory exposed in VLC).
dd if=/dev/sr0 of=image_of_disc.iso
Which is different from many posts I have read that say this command should work:
dd if=/dev/cdrom of=image_of_disc.iso - NON-WORKING
proof:
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:~$
I hope this helps.
add a comment |
I can recommend a program called dvdbackup
- http://dvdbackup.sourceforge.net/
I can make a copy of the back-up of the DVD as folders. I don't think it makes an iso. So you need to take that step manually.
add a comment |
People mention that opening the DVD with VLC (which displays the DVD menu) magically makes the data accessible to dd
, but nobody has yet explained why that is and how VLC accomplishes this feat.
I managed to replicate this behavior when trying to play a DVD in my computer from a Kodi device hooked up to my TV, by using SMB to share the root of the DVD drive over the network. It didn't work, unless I first opened the DVD with VLC, at which point Kodi could magically play the files.
This sort of magic offends my sensibilities, so I went digging. The underlying cause of the issue is that your DVD drive is working against you. As per Wikipedia:
However, if the drive detects a disc that has been compiled with CSS,
it denies access to logical blocks that are marked as copyrighted
(§6.15.3[2]). The player has to execute an authentication handshake
first (§4.10.2.2[2]).
So it's not just that you will get encrypted data that can't be played if you read the DVD; the drive won't send back the bits unless some program on your machine has authenticated itself to the drive, using some DVD-specific IOCTLs exposed by the Linux kernel (in this case, DVD_AUTH). That's why this manifests as an I/O error.
More information on how these IOCTLs work is available in this mailing list post from the person who implemented them, but basically they provide a way for userland software to perform the secret handshake with the DVD drive hardware.
VLC performs this secret handshake through libdvdcss
, which in turn seems to do it in GetBusKey()
in css.c
. Presumably a standalone program that linked against libdvdcss
could be written to unlock the drive for access as files, instead of relying on all of VLC. Once it's unlocked, the drive can't tell which program is reading from it, so it sends back the (still encrypted but now readable) bits to anyone, including dd
or cp
.
(Interestingly, the DVD IOCTLs are also the only real way to get the decryption key used to decrypt the data on the disk, once you've read it. If you are playing a copied directory of files, you don't have access to the IOCTLs to get the keys, so libdvdcss
resorts to statistical cryptanalysis to crack the encryption.)
New contributor
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f32564%2fwhy-cant-i-copy-my-dvd-with-dd%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
5 Answers
5
active
oldest
votes
5 Answers
5
active
oldest
votes
active
oldest
votes
active
oldest
votes
I think that the simplest answer is that dd, dd_rescue and ddrescue are not designed to defeat copy protection schemes. They make no assumptions about the format of the data and try to maintain the integrity of the whole of the original on disk data.
In the case of dd
I suspect that it is terminating due to an intentional read error on the disk that is part of the copy protection scheme. It would help to confirm this if you included the commandline output from dd
with your question. You may also find some read errors recorded in the dmesg
command output.
You may get dd
to copy more of the file by passing the noerror
flag to it on the commandline. However you may find that this just leaves you with corruption in your final image.
Thanks, upvoted. If I bypass the filesystem and do a "bitwise" copy, and replace the read errors with zero bytes, would that still yield a corrupted image? After all I only replace that data with zero bytes that cannot be read anyhow. I will include the dmesg output later, I do not have the DVD with me.
– Ali
Feb 24 '12 at 15:43
Really the only way to determine if the final image is "corrupted" is to work out if it is usable. Part of that will be making sure that only the actual broken blocks are read as zeros and none of the surrounding blocks. That might mean that you need to pass a bs=512 (from memory that is the CD/DVD blocksize) parameter to dd. Really though that sort of thing is what dd_rescue is designed to do. It might take time but it tries to lose the minimum amount of data possible.
– Richm
Feb 24 '12 at 16:40
OK, thanks for all your help. I am screwed on way too many levels. I ended up using AnyDVD.
– Ali
Feb 28 '12 at 21:08
add a comment |
I think that the simplest answer is that dd, dd_rescue and ddrescue are not designed to defeat copy protection schemes. They make no assumptions about the format of the data and try to maintain the integrity of the whole of the original on disk data.
In the case of dd
I suspect that it is terminating due to an intentional read error on the disk that is part of the copy protection scheme. It would help to confirm this if you included the commandline output from dd
with your question. You may also find some read errors recorded in the dmesg
command output.
You may get dd
to copy more of the file by passing the noerror
flag to it on the commandline. However you may find that this just leaves you with corruption in your final image.
Thanks, upvoted. If I bypass the filesystem and do a "bitwise" copy, and replace the read errors with zero bytes, would that still yield a corrupted image? After all I only replace that data with zero bytes that cannot be read anyhow. I will include the dmesg output later, I do not have the DVD with me.
– Ali
Feb 24 '12 at 15:43
Really the only way to determine if the final image is "corrupted" is to work out if it is usable. Part of that will be making sure that only the actual broken blocks are read as zeros and none of the surrounding blocks. That might mean that you need to pass a bs=512 (from memory that is the CD/DVD blocksize) parameter to dd. Really though that sort of thing is what dd_rescue is designed to do. It might take time but it tries to lose the minimum amount of data possible.
– Richm
Feb 24 '12 at 16:40
OK, thanks for all your help. I am screwed on way too many levels. I ended up using AnyDVD.
– Ali
Feb 28 '12 at 21:08
add a comment |
I think that the simplest answer is that dd, dd_rescue and ddrescue are not designed to defeat copy protection schemes. They make no assumptions about the format of the data and try to maintain the integrity of the whole of the original on disk data.
In the case of dd
I suspect that it is terminating due to an intentional read error on the disk that is part of the copy protection scheme. It would help to confirm this if you included the commandline output from dd
with your question. You may also find some read errors recorded in the dmesg
command output.
You may get dd
to copy more of the file by passing the noerror
flag to it on the commandline. However you may find that this just leaves you with corruption in your final image.
I think that the simplest answer is that dd, dd_rescue and ddrescue are not designed to defeat copy protection schemes. They make no assumptions about the format of the data and try to maintain the integrity of the whole of the original on disk data.
In the case of dd
I suspect that it is terminating due to an intentional read error on the disk that is part of the copy protection scheme. It would help to confirm this if you included the commandline output from dd
with your question. You may also find some read errors recorded in the dmesg
command output.
You may get dd
to copy more of the file by passing the noerror
flag to it on the commandline. However you may find that this just leaves you with corruption in your final image.
answered Feb 24 '12 at 15:00
RichmRichm
3,1341612
3,1341612
Thanks, upvoted. If I bypass the filesystem and do a "bitwise" copy, and replace the read errors with zero bytes, would that still yield a corrupted image? After all I only replace that data with zero bytes that cannot be read anyhow. I will include the dmesg output later, I do not have the DVD with me.
– Ali
Feb 24 '12 at 15:43
Really the only way to determine if the final image is "corrupted" is to work out if it is usable. Part of that will be making sure that only the actual broken blocks are read as zeros and none of the surrounding blocks. That might mean that you need to pass a bs=512 (from memory that is the CD/DVD blocksize) parameter to dd. Really though that sort of thing is what dd_rescue is designed to do. It might take time but it tries to lose the minimum amount of data possible.
– Richm
Feb 24 '12 at 16:40
OK, thanks for all your help. I am screwed on way too many levels. I ended up using AnyDVD.
– Ali
Feb 28 '12 at 21:08
add a comment |
Thanks, upvoted. If I bypass the filesystem and do a "bitwise" copy, and replace the read errors with zero bytes, would that still yield a corrupted image? After all I only replace that data with zero bytes that cannot be read anyhow. I will include the dmesg output later, I do not have the DVD with me.
– Ali
Feb 24 '12 at 15:43
Really the only way to determine if the final image is "corrupted" is to work out if it is usable. Part of that will be making sure that only the actual broken blocks are read as zeros and none of the surrounding blocks. That might mean that you need to pass a bs=512 (from memory that is the CD/DVD blocksize) parameter to dd. Really though that sort of thing is what dd_rescue is designed to do. It might take time but it tries to lose the minimum amount of data possible.
– Richm
Feb 24 '12 at 16:40
OK, thanks for all your help. I am screwed on way too many levels. I ended up using AnyDVD.
– Ali
Feb 28 '12 at 21:08
Thanks, upvoted. If I bypass the filesystem and do a "bitwise" copy, and replace the read errors with zero bytes, would that still yield a corrupted image? After all I only replace that data with zero bytes that cannot be read anyhow. I will include the dmesg output later, I do not have the DVD with me.
– Ali
Feb 24 '12 at 15:43
Thanks, upvoted. If I bypass the filesystem and do a "bitwise" copy, and replace the read errors with zero bytes, would that still yield a corrupted image? After all I only replace that data with zero bytes that cannot be read anyhow. I will include the dmesg output later, I do not have the DVD with me.
– Ali
Feb 24 '12 at 15:43
Really the only way to determine if the final image is "corrupted" is to work out if it is usable. Part of that will be making sure that only the actual broken blocks are read as zeros and none of the surrounding blocks. That might mean that you need to pass a bs=512 (from memory that is the CD/DVD blocksize) parameter to dd. Really though that sort of thing is what dd_rescue is designed to do. It might take time but it tries to lose the minimum amount of data possible.
– Richm
Feb 24 '12 at 16:40
Really the only way to determine if the final image is "corrupted" is to work out if it is usable. Part of that will be making sure that only the actual broken blocks are read as zeros and none of the surrounding blocks. That might mean that you need to pass a bs=512 (from memory that is the CD/DVD blocksize) parameter to dd. Really though that sort of thing is what dd_rescue is designed to do. It might take time but it tries to lose the minimum amount of data possible.
– Richm
Feb 24 '12 at 16:40
OK, thanks for all your help. I am screwed on way too many levels. I ended up using AnyDVD.
– Ali
Feb 28 '12 at 21:08
OK, thanks for all your help. I am screwed on way too many levels. I ended up using AnyDVD.
– Ali
Feb 28 '12 at 21:08
add a comment |
I'm not sure why this works but opening the DVD first with VLC, just enough to view the menu, and then pausing lets dd work.
Thanks. My DVD cannot be opened with VLC; unfortunately, my situation was a lot more complicated.
– Ali
Dec 30 '13 at 16:07
Worked for me at the time of this comment, but I opened with totem (don't have vlc). Weird.
– Kyle
Aug 5 '16 at 18:32
add a comment |
I'm not sure why this works but opening the DVD first with VLC, just enough to view the menu, and then pausing lets dd work.
Thanks. My DVD cannot be opened with VLC; unfortunately, my situation was a lot more complicated.
– Ali
Dec 30 '13 at 16:07
Worked for me at the time of this comment, but I opened with totem (don't have vlc). Weird.
– Kyle
Aug 5 '16 at 18:32
add a comment |
I'm not sure why this works but opening the DVD first with VLC, just enough to view the menu, and then pausing lets dd work.
I'm not sure why this works but opening the DVD first with VLC, just enough to view the menu, and then pausing lets dd work.
answered Dec 30 '13 at 14:48
Ron McCyRon McCy
11112
11112
Thanks. My DVD cannot be opened with VLC; unfortunately, my situation was a lot more complicated.
– Ali
Dec 30 '13 at 16:07
Worked for me at the time of this comment, but I opened with totem (don't have vlc). Weird.
– Kyle
Aug 5 '16 at 18:32
add a comment |
Thanks. My DVD cannot be opened with VLC; unfortunately, my situation was a lot more complicated.
– Ali
Dec 30 '13 at 16:07
Worked for me at the time of this comment, but I opened with totem (don't have vlc). Weird.
– Kyle
Aug 5 '16 at 18:32
Thanks. My DVD cannot be opened with VLC; unfortunately, my situation was a lot more complicated.
– Ali
Dec 30 '13 at 16:07
Thanks. My DVD cannot be opened with VLC; unfortunately, my situation was a lot more complicated.
– Ali
Dec 30 '13 at 16:07
Worked for me at the time of this comment, but I opened with totem (don't have vlc). Weird.
– Kyle
Aug 5 '16 at 18:32
Worked for me at the time of this comment, but I opened with totem (don't have vlc). Weird.
– Kyle
Aug 5 '16 at 18:32
add a comment |
I can confirm that opening the disc with VLC does bypass the protection. However, when using dd
, I had to use this command after opening VLC (discovered by loading the disc and using the directory exposed in VLC).
dd if=/dev/sr0 of=image_of_disc.iso
Which is different from many posts I have read that say this command should work:
dd if=/dev/cdrom of=image_of_disc.iso - NON-WORKING
proof:
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:~$
I hope this helps.
add a comment |
I can confirm that opening the disc with VLC does bypass the protection. However, when using dd
, I had to use this command after opening VLC (discovered by loading the disc and using the directory exposed in VLC).
dd if=/dev/sr0 of=image_of_disc.iso
Which is different from many posts I have read that say this command should work:
dd if=/dev/cdrom of=image_of_disc.iso - NON-WORKING
proof:
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:~$
I hope this helps.
add a comment |
I can confirm that opening the disc with VLC does bypass the protection. However, when using dd
, I had to use this command after opening VLC (discovered by loading the disc and using the directory exposed in VLC).
dd if=/dev/sr0 of=image_of_disc.iso
Which is different from many posts I have read that say this command should work:
dd if=/dev/cdrom of=image_of_disc.iso - NON-WORKING
proof:
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:~$
I hope this helps.
I can confirm that opening the disc with VLC does bypass the protection. However, when using dd
, I had to use this command after opening VLC (discovered by loading the disc and using the directory exposed in VLC).
dd if=/dev/sr0 of=image_of_disc.iso
Which is different from many posts I have read that say this command should work:
dd if=/dev/cdrom of=image_of_disc.iso - NON-WORKING
proof:
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:~$
I hope this helps.
edited Aug 4 '15 at 18:04
Jakuje
16.2k52953
16.2k52953
answered Aug 4 '15 at 17:20
MycoolMycool
111
111
add a comment |
add a comment |
I can recommend a program called dvdbackup
- http://dvdbackup.sourceforge.net/
I can make a copy of the back-up of the DVD as folders. I don't think it makes an iso. So you need to take that step manually.
add a comment |
I can recommend a program called dvdbackup
- http://dvdbackup.sourceforge.net/
I can make a copy of the back-up of the DVD as folders. I don't think it makes an iso. So you need to take that step manually.
add a comment |
I can recommend a program called dvdbackup
- http://dvdbackup.sourceforge.net/
I can make a copy of the back-up of the DVD as folders. I don't think it makes an iso. So you need to take that step manually.
I can recommend a program called dvdbackup
- http://dvdbackup.sourceforge.net/
I can make a copy of the back-up of the DVD as folders. I don't think it makes an iso. So you need to take that step manually.
answered Nov 1 '15 at 21:41
willwill
216139
216139
add a comment |
add a comment |
People mention that opening the DVD with VLC (which displays the DVD menu) magically makes the data accessible to dd
, but nobody has yet explained why that is and how VLC accomplishes this feat.
I managed to replicate this behavior when trying to play a DVD in my computer from a Kodi device hooked up to my TV, by using SMB to share the root of the DVD drive over the network. It didn't work, unless I first opened the DVD with VLC, at which point Kodi could magically play the files.
This sort of magic offends my sensibilities, so I went digging. The underlying cause of the issue is that your DVD drive is working against you. As per Wikipedia:
However, if the drive detects a disc that has been compiled with CSS,
it denies access to logical blocks that are marked as copyrighted
(§6.15.3[2]). The player has to execute an authentication handshake
first (§4.10.2.2[2]).
So it's not just that you will get encrypted data that can't be played if you read the DVD; the drive won't send back the bits unless some program on your machine has authenticated itself to the drive, using some DVD-specific IOCTLs exposed by the Linux kernel (in this case, DVD_AUTH). That's why this manifests as an I/O error.
More information on how these IOCTLs work is available in this mailing list post from the person who implemented them, but basically they provide a way for userland software to perform the secret handshake with the DVD drive hardware.
VLC performs this secret handshake through libdvdcss
, which in turn seems to do it in GetBusKey()
in css.c
. Presumably a standalone program that linked against libdvdcss
could be written to unlock the drive for access as files, instead of relying on all of VLC. Once it's unlocked, the drive can't tell which program is reading from it, so it sends back the (still encrypted but now readable) bits to anyone, including dd
or cp
.
(Interestingly, the DVD IOCTLs are also the only real way to get the decryption key used to decrypt the data on the disk, once you've read it. If you are playing a copied directory of files, you don't have access to the IOCTLs to get the keys, so libdvdcss
resorts to statistical cryptanalysis to crack the encryption.)
New contributor
add a comment |
People mention that opening the DVD with VLC (which displays the DVD menu) magically makes the data accessible to dd
, but nobody has yet explained why that is and how VLC accomplishes this feat.
I managed to replicate this behavior when trying to play a DVD in my computer from a Kodi device hooked up to my TV, by using SMB to share the root of the DVD drive over the network. It didn't work, unless I first opened the DVD with VLC, at which point Kodi could magically play the files.
This sort of magic offends my sensibilities, so I went digging. The underlying cause of the issue is that your DVD drive is working against you. As per Wikipedia:
However, if the drive detects a disc that has been compiled with CSS,
it denies access to logical blocks that are marked as copyrighted
(§6.15.3[2]). The player has to execute an authentication handshake
first (§4.10.2.2[2]).
So it's not just that you will get encrypted data that can't be played if you read the DVD; the drive won't send back the bits unless some program on your machine has authenticated itself to the drive, using some DVD-specific IOCTLs exposed by the Linux kernel (in this case, DVD_AUTH). That's why this manifests as an I/O error.
More information on how these IOCTLs work is available in this mailing list post from the person who implemented them, but basically they provide a way for userland software to perform the secret handshake with the DVD drive hardware.
VLC performs this secret handshake through libdvdcss
, which in turn seems to do it in GetBusKey()
in css.c
. Presumably a standalone program that linked against libdvdcss
could be written to unlock the drive for access as files, instead of relying on all of VLC. Once it's unlocked, the drive can't tell which program is reading from it, so it sends back the (still encrypted but now readable) bits to anyone, including dd
or cp
.
(Interestingly, the DVD IOCTLs are also the only real way to get the decryption key used to decrypt the data on the disk, once you've read it. If you are playing a copied directory of files, you don't have access to the IOCTLs to get the keys, so libdvdcss
resorts to statistical cryptanalysis to crack the encryption.)
New contributor
add a comment |
People mention that opening the DVD with VLC (which displays the DVD menu) magically makes the data accessible to dd
, but nobody has yet explained why that is and how VLC accomplishes this feat.
I managed to replicate this behavior when trying to play a DVD in my computer from a Kodi device hooked up to my TV, by using SMB to share the root of the DVD drive over the network. It didn't work, unless I first opened the DVD with VLC, at which point Kodi could magically play the files.
This sort of magic offends my sensibilities, so I went digging. The underlying cause of the issue is that your DVD drive is working against you. As per Wikipedia:
However, if the drive detects a disc that has been compiled with CSS,
it denies access to logical blocks that are marked as copyrighted
(§6.15.3[2]). The player has to execute an authentication handshake
first (§4.10.2.2[2]).
So it's not just that you will get encrypted data that can't be played if you read the DVD; the drive won't send back the bits unless some program on your machine has authenticated itself to the drive, using some DVD-specific IOCTLs exposed by the Linux kernel (in this case, DVD_AUTH). That's why this manifests as an I/O error.
More information on how these IOCTLs work is available in this mailing list post from the person who implemented them, but basically they provide a way for userland software to perform the secret handshake with the DVD drive hardware.
VLC performs this secret handshake through libdvdcss
, which in turn seems to do it in GetBusKey()
in css.c
. Presumably a standalone program that linked against libdvdcss
could be written to unlock the drive for access as files, instead of relying on all of VLC. Once it's unlocked, the drive can't tell which program is reading from it, so it sends back the (still encrypted but now readable) bits to anyone, including dd
or cp
.
(Interestingly, the DVD IOCTLs are also the only real way to get the decryption key used to decrypt the data on the disk, once you've read it. If you are playing a copied directory of files, you don't have access to the IOCTLs to get the keys, so libdvdcss
resorts to statistical cryptanalysis to crack the encryption.)
New contributor
People mention that opening the DVD with VLC (which displays the DVD menu) magically makes the data accessible to dd
, but nobody has yet explained why that is and how VLC accomplishes this feat.
I managed to replicate this behavior when trying to play a DVD in my computer from a Kodi device hooked up to my TV, by using SMB to share the root of the DVD drive over the network. It didn't work, unless I first opened the DVD with VLC, at which point Kodi could magically play the files.
This sort of magic offends my sensibilities, so I went digging. The underlying cause of the issue is that your DVD drive is working against you. As per Wikipedia:
However, if the drive detects a disc that has been compiled with CSS,
it denies access to logical blocks that are marked as copyrighted
(§6.15.3[2]). The player has to execute an authentication handshake
first (§4.10.2.2[2]).
So it's not just that you will get encrypted data that can't be played if you read the DVD; the drive won't send back the bits unless some program on your machine has authenticated itself to the drive, using some DVD-specific IOCTLs exposed by the Linux kernel (in this case, DVD_AUTH). That's why this manifests as an I/O error.
More information on how these IOCTLs work is available in this mailing list post from the person who implemented them, but basically they provide a way for userland software to perform the secret handshake with the DVD drive hardware.
VLC performs this secret handshake through libdvdcss
, which in turn seems to do it in GetBusKey()
in css.c
. Presumably a standalone program that linked against libdvdcss
could be written to unlock the drive for access as files, instead of relying on all of VLC. Once it's unlocked, the drive can't tell which program is reading from it, so it sends back the (still encrypted but now readable) bits to anyone, including dd
or cp
.
(Interestingly, the DVD IOCTLs are also the only real way to get the decryption key used to decrypt the data on the disk, once you've read it. If you are playing a copied directory of files, you don't have access to the IOCTLs to get the keys, so libdvdcss
resorts to statistical cryptanalysis to crack the encryption.)
New contributor
New contributor
answered 25 mins ago
interfectinterfect
1011
1011
New contributor
New contributor
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f32564%2fwhy-cant-i-copy-my-dvd-with-dd%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown