LinuxQuestions.org
LinuxAnswers - the LQ Linux tutorial section.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - General
User Name
Password
Linux - General This Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.

Notices

Reply
 
Search this Thread
Old 01-20-2008, 08:59 AM   #1
nanobis
LQ Newbie
 
Registered: Jan 2008
Posts: 11

Rep: Reputation: 0
Reading DVD burnt with Vista


I got a DVD having plenty of pictures. This DVD was burnt with Vista by a friend of me. But with my Debian machine I cann't read it. How can I solve this issue ? In advance thank you for helping me
 
Old 01-20-2008, 09:20 AM   #2
bigrigdriver
LQ Addict
 
Registered: Jul 2002
Location: East Centra Illinois, USA
Distribution: Debian Squeeze
Posts: 5,772

Rep: Reputation: 309Reputation: 309Reputation: 309Reputation: 309
Which viewer applications have you tried? What error messages do you get? Try starting the viewer from the command line, then try to view the files on the dvd. If it fails, you should see error messages in the console window.
 
Old 01-20-2008, 09:27 AM   #3
nanobis
LQ Newbie
 
Registered: Jan 2008
Posts: 11

Original Poster
Rep: Reputation: 0
Thanks for the answer. The problem is more fundamental ! the Disk cann't be mounted. So, my usual viewers are not operative.

Last edited by nanobis; 01-20-2008 at 09:28 AM.
 
Old 01-20-2008, 10:02 AM   #4
bigrigdriver
LQ Addict
 
Registered: Jul 2002
Location: East Centra Illinois, USA
Distribution: Debian Squeeze
Posts: 5,772

Rep: Reputation: 309Reputation: 309Reputation: 309Reputation: 309
Music and video (I suppose also photo) dvds aren't mounted; they don't have a file system. You just put the disk in the drive and use a viewer to see the files.

Data dvds, such as isos and archived files must be mounted (they have a filesystem) before viewing the files.
 
Old 01-20-2008, 11:00 AM   #5
nanobis
LQ Newbie
 
Registered: Jan 2008
Posts: 11

Original Poster
Rep: Reputation: 0
I am surprised by your answer. How can I enter to my DVD ? as I don't see it in the system ? For instance I can use kuickShow.
I click on "file tab" after on "open" I don't see again my files ...... What can I do more ? I tried to copy it with K3b without result !
 
Old 02-18-2008, 12:55 PM   #6
rostedt
Red Hat kernel hacker
 
Registered: Feb 2008
Posts: 4

Rep: Reputation: 0
Udf 2.50

Sorry I can't help get this solved for you, but I can point you in the right direction of what you're facing.

The problem is that Vista burns DVDs in a default UDF 2.50 format. At this time, I do not know of another OS that can even read that. A friend sent me pictures on a DVD burnt by Vista, and I've tried all my Linux boxes as well as my Mac, with no luck. Here's the kicker, I even tried my wife's XP box and it can't read it either.

Looking through the web, I've discovered that this problem is a complaint even by Windows users. Seems that MS wants everybody to upgrade to their latest OS, even if you really don't need to.

See here for more info on the subject.

http://forums.microsoft.com/TechNet/...0392&SiteID=17

Note, there's a patch that claims to support this (I haven't been lucky with it yet) but perhaps it can help you:

http://sourceforge.net/projects/linux-udf/
 
Old 02-18-2008, 03:31 PM   #7
lleb
Senior Member
 
Registered: Dec 2005
Location: Florida
Distribution: CentOS/Fedora
Posts: 2,540

Rep: Reputation: 462Reputation: 462Reputation: 462Reputation: 462Reputation: 462
Quote:
Originally Posted by rostedt View Post
Sorry I can't help get this solved for you, but I can point you in the right direction of what you're facing.

The problem is that Vista burns DVDs in a default UDF 2.50 format. At this time, I do not know of another OS that can even read that. A friend sent me pictures on a DVD burnt by Vista, and I've tried all my Linux boxes as well as my Mac, with no luck. Here's the kicker, I even tried my wife's XP box and it can't read it either.

Looking through the web, I've discovered that this problem is a complaint even by Windows users. Seems that MS wants everybody to upgrade to their latest OS, even if you really don't need to.

See here for more info on the subject.

http://forums.microsoft.com/TechNet/...0392&SiteID=17

Note, there's a patch that claims to support this (I haven't been lucky with it yet) but perhaps it can help you:

http://sourceforge.net/projects/linux-udf/

nice find. good info i will keep this in mind when helping customers.

one more reason to avoid Vista.
 
Old 02-18-2008, 04:06 PM   #8
Emerson
Senior Member
 
Registered: Nov 2004
Location: Saint Amant, Acadiana
Distribution: Gentoo ~
Posts: 3,177

Rep: Reputation: Disabled
A short Google revealed there is UDF-2.5 patch for Linux kernels. Didn't dig deep, maybe it's already in kernel for now.
 
Old 02-18-2008, 11:42 PM   #9
rostedt
Red Hat kernel hacker
 
Registered: Feb 2008
Posts: 4

Rep: Reputation: 0
patch

Quote:
Originally Posted by Emerson View Post
A short Google revealed there is UDF-2.5 patch for Linux kernels. Didn't dig deep, maybe it's already in kernel for now.
Yeah, I linked to the location of the patch in my previous post. Unfortunately, it still doesn't read vista burned files. Seems that vista DVDs have too many bugs in the format.

Anyway, I got the files I wanted off of it. I did a major hack to do so. I found a web site from Philips http://www.hitech-projects.com/udf/ .

That link shows how to get a "udf_test" program that verifies UDF. You must register to get that file, but the registering is free.

Here's the hack I did.

I got the source for the udf_test (UDF Verifier). Which I found has a way to do CRC checksums on the files on the UDF. I put a hook in the code (the source is available, but not under GPL).

In src/utc_core/utcfiles.c, I found the function: readFileBodyAndTail

There's a loop in there that does:

for (bytesRead = 0;
bytesRead < bodySize && result == TRUE;
bytesRead += readThisTime) {

Just before that loop, I added a function call my_open_files();

after "THERead" I added my_write_files(buffer, readThisTime);

And after the loop I added my_end_files();

Then before that function, I added:

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
static int my_fd = -1;
void my_start_file(void)
{
static int num;
char buf[64];
sprintf(buf, "/tmp/f%d", num++);
my_fd = open(buf, O_WRONLY|O_CREAT);
if (my_fd < 0)
fprintf(stderr, "BAHHHHH!\n");
}

void my_write_file(char *buf, Uint64 r)
{
if (my_fd >= 0)
write(my_fd, buf, r);
}

void my_end_file(void)
{
if (my_fd >= 0)
close(my_fd);
}


I recompiled, and ran:

./udf_test -udf 2.50 -filecrc /dev/hdc

Where the /dev/hdc had my dvd in it.

it created all the files in the /tmp directory named f0 to fN (N being the number of files).

I just needed to get the files off, I didn't need to keep the directory structure or anything. But, it wouldn't be that hard to take this code and convert it to something that can read the dvd and create the file structure. It has everything in that code to see where things go and file names. I just don't have the time to make those changes.

But if someone else would like to ;-)

I ran it through astyle since I really couldn't stand the C coding style they chose.

Good luck (the next time I'm telling my friend to change the default UDF when they burn a DVD for me).

-- Steve
 
Old 02-20-2008, 03:10 PM   #10
nanobis
LQ Newbie
 
Registered: Jan 2008
Posts: 11

Original Poster
Rep: Reputation: 0
Many thanks for your information. I downloaded th UDF tester from Philips. It works fine. I am not sure to apply the proposed hack, which is convenient for me. It is a bit too difficult for me. But I'll try it.
 
Old 02-21-2008, 09:31 AM   #11
rostedt
Red Hat kernel hacker
 
Registered: Feb 2008
Posts: 4

Rep: Reputation: 0
hack

Quote:
Originally Posted by nanobis View Post
Many thanks for your information. I downloaded th UDF tester from Philips. It works fine. I am not sure to apply the proposed hack, which is convenient for me. It is a bit too difficult for me. But I'll try it.
Cut and paste the stuff I posted:

#include <sys/types.h>
[...]
void my_end_file(void)
{
if (my_fd >= 0)
close(my_fd);
}

Before:

static bool readFileBodyAndTail(UdfMountContext *mc, Node *node)


And then add these lines: (that start with the '+' but do not add the '+')


+ my_start_file();
for (bytesRead = 0;
bytesRead < bodySize && result == TRUE;
bytesRead += readThisTime) {

[...]

+ my_write_file(buffer, readThisTime);
#ifdef FAKE_BIGFILES /* force fake read for big files */
fileCrc = 0;
if (uctDoFileCRC && buffer != NULL)


[...]

} /* endfor bytesRead ... */

+ my_end_file();
/* result may be FALSE in case of a read error.
* In that case, bytesRead is not equal to bodySize,



The posting is removing my whitespace I added, so the indenting is not correct.

Then run:

/udf_test -udf 2.50 -filecrc /dev/hdc

the files you want will end up in /tmp

Again, this is very much a hack, and can be done much cleaner, but I simply don't have the time to do it. The code is also not under GPL, but I'm sure if someone gives Philips a patch, they may incorporate it.

I do thank Philips for providing this tool (and more importantly, the source), that gave me the ability to extract the files.

-- Steve
 
Old 03-04-2008, 09:47 AM   #12
nanobis
LQ Newbie
 
Registered: Jan 2008
Posts: 11

Original Poster
Rep: Reputation: 0
I tried the the proposed hack:
in src/utc_core/utcfiles.c, I amended as I understood ie :

* FCRC_MAXBUFSIZE:
* buffer for file CRC calculation, multiple of the blockSize.
*/
#define FCRC_MAXBUFSIZE ((Uint32)(32*1024*1024)) /* mult of blockSize */
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
static int my_fd = -1;
void my_start_file(void)
{
static int num;
char buf[64];
sprintf(buf, "/tmp/f%d", num++);
my_fd = open(buf, O_WRONLY|O_CREAT);
if (my_fd < 0)
fprintf(stderr, "BAHHHHH!\n");
}

void my_write_file(char *buf, Uint64 r)
{
if (my_fd >= 0)
write(my_fd, buf, r);
}

void my_end_file(void)
{
if (my_fd >= 0)
close(my_fd);
}
my_start_file();
for (bytesRead = 0;
bytesRead < bodySize && result == TRUE;
bytesRead += readThisTime) {
my_write_file(buffer, readThisTime);
#ifdef FAKE_BIGFILES /* force fake read for big files */
fileCrc = 0;
if (uctDoFileCRC && buffer != NULL)

} /* endfor bytesRead ... */
+ my_end_file();
/* result may be FALSE in case of a read error.
* In that case, bytesRead is not equal to bodySize,


static bool readFileBodyAndTail( UdfMountContext *mc, Node *node )
{
Uint64 bodySize, readChunk, bytesRead, readThisTime;
static Uint32 staticBufSize = FCRC_MAXBUFSIZE;
Ui

I got compilation errors as :

uctfiles.c:4092: warning: data definition has no type or storage class
uctfiles.c:4092: error: conflicting types for ‘my_start_file’
uctfiles.c:4072: error: previous definition of ‘my_start_file’ was here
uctfiles.c:4093: error: expected identifier or ‘(’ before ‘for’
uctfiles.c:4094: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘<’ token
uctfiles.c:4095: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘+=’ token
uctfiles.c:4097:1: error: unterminated #ifdef
make[1]: *** [uctfiles.o] Erreur 1
make[1]: quittant le répertoire « /home/nano/Desktop/Téléchargements/essai_udf/udfct_1.5r6/src/uct_core »
make: *** [all] Erreur 2


I think I misunderstood somethings !

What can I do ?
 
Old 03-05-2008, 02:30 PM   #13
nanobis
LQ Newbie
 
Registered: Jan 2008
Posts: 11

Original Poster
Rep: Reputation: 0
cancelled cancelled

Last edited by nanobis; 03-07-2008 at 02:37 PM.
 
Old 03-05-2008, 02:57 PM   #14
nanobis
LQ Newbie
 
Registered: Jan 2008
Posts: 11

Original Poster
Rep: Reputation: 0
I have read again the posts. My last one must be cancelled.
1- I have shifted the main hack from before the function to before static bool... It is clear.
2- Adding these lines It is not clear for me where I have to place these lines. I don't understand the meaning of [...]

A precedent post proposed :
1- to add a function : my_open_file() It seems clear.
2- to add the function after THERead Where is it exactly ?
3- To add my_end_files() after th loop seems clear too.

If all these points are made clear, the life will be happier !!!
 
Old 03-23-2008, 01:12 PM   #15
nanobis
LQ Newbie
 
Registered: Jan 2008
Posts: 11

Original Poster
Rep: Reputation: 0
Finally, I found a solution which was satistactory for me. I used ISOBUSTER, last version, in cooperation with WINE. So I was able to get all my files from this VISTA dvd without problems
 
  


Reply

Tags
dvd, vista


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
reading vista partitions? sohmc Linux - Kernel 2 02-27-2007 03:50 AM
How do I verify my burnt installation DVD? noob_nz Suse/Novell 6 02-16-2006 07:29 PM
How do I verify the MD5 of my burnt DVD? noob_nz Fedora 2 02-16-2006 06:00 PM


All times are GMT -5. The time now is 09:42 AM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration