Page 1 of 2

Puppy 528 can't read DVD data disk made by Windows

Posted: Wed 11 Jan 2012, 07:49
by Volhout
Subject description: can't mount

--------------------------------------------------------------------------------
Yesterday night I had my first encounter of a challenge 528 can't solve.
My wife gave me a DVD+R with photo's from a happening at her local school, and she wanted a copy.

DVD in reader/burner, start Pburn, and Pburn gave me a strange reading. In the size/free bar it indicated 4.8Gbytes free + 2.2 Gbytes occupied (7 Gbyte total). And any action (copy or save to iso file on harddisk) did not work. Stopped Pburn.

Then I tried to mount the drive. Pmount responded with a red "cannot mount" popup.

I started to doubt the DVD (bad disk ?) and rebooted the PC in Windows XP (never even took the disk from the drive), and XP opended the disk, and said it was 4.8Gbytes total standard DVD+R and had 2.2Gbytes occupied. It was a data disk. It copied the 4 folders (with all the JPG pictures in it) fine.

I was stunned, this was the first time 528 could not help me. My experience up to now was that it did anything. Whatever task you throw at it, it simply has a way to solve the problem. (Last challenge was recording protected audio from internet, via audio out - audio in analog cable ... it has tools for everything).

I am not sure if anyone has a clue what this problem is ? Maybe it is a disk format that 528 does not support. If I can help to improve Puppy by debugging, tell me what I can do. I am curious what causes this.
Noticed on Lucid 528-2 with all instant updates up to rerwin patch 6.
Will test today on fresh iso 528-4.


Volhout


This bug has been confirmed by others (see puppy:projects:lucid528 thread), also happens at DVD-RW and DVD-R data disks.

Posted: Wed 11 Jan 2012, 08:53
by 8-bit
This is a problem due to the format being used when the DVD was made.
I have had the very same problem with picture DVDs made in Windows that were not readable by Puppy and PBurn also failed.
But if I remember correctly, an update to PBurn has been recently made that might fill the bill. No promises though. One would just have to try it and see.
I would like to see Puppy capable of reading those windows formats that it currently cannot read though.

I have also found that even with Windows, if the version of it is too early an install demo disk of Windows 8 would give me a text message stating I was not using a late enough version of Windows to be able to read the true contents of the DVD.

Posted: Wed 11 Jan 2012, 20:57
by Karl Godt
what does

Code: Select all

modprobe -l | grep -i udf
gives you ?

if the dvd was formatted udf filesystem , this kernel driver would need to be loaded i guess :

Code: Select all

modprobe -v udf
to see if udf is supported by the kernel :

Code: Select all

cat /proc/filesystems | grep udf
to check the disk :

Code: Select all

disktype /dev/sr0
to mount manually :

Code: Select all

mount -t udf /dev/sr0 /mnt/sr0
/usr/sbin/pmount is NOT written to check for udf on dvd/cd i think , also /sbin/probepart ; pmount assumes therefore iso9660 only .

This is the output of

Code: Select all

 dmesg
for one not mountable udf disk :

mount -t udf /dev/sr0 /mnt/sr0

[ 9907.256869] sr 1:0:0:0: [sr0] Result: hostbyte=0x00 driverbyte=0x08
[ 9907.256875] sr 1:0:0:0: [sr0] Sense Key : 0x5 [current]
[ 9907.256879] Info fld=0x441, ILI
[ 9907.256882] sr 1:0:0:0: [sr0] ASC=0x64 ASCQ=0x0
[ 9907.256885] end_request: I/O error, dev sr0, sector 4356
[ 9907.256983] udf: udf_read_inode(ino 1089) failed !bh
[ 9907.476547] sr 1:0:0:0: [sr0] Result: hostbyte=0x00 driverbyte=0x08
[ 9907.476552] sr 1:0:0:0: [sr0] Sense Key : 0x5 [current]
[ 9907.476557] Info fld=0x441, ILI
[ 9907.476559] sr 1:0:0:0: [sr0] ASC=0x64 ASCQ=0x0
[ 9907.476563] end_request: I/O error, dev sr0, sector 4356
[ 9907.476660] udf: udf_read_inode(ino 1089) failed !bh
[ 9907.638622] sr 1:0:0:0: [sr0] Result: hostbyte=0x00 driverbyte=0x08
[ 9907.638628] sr 1:0:0:0: [sr0] Sense Key : 0x5 [current]
[ 9907.638634] Info fld=0x441, ILI
[ 9907.638636] sr 1:0:0:0: [sr0] ASC=0x64 ASCQ=0x0
[ 9907.638641] end_request: I/O error, dev sr0, sector 4356
[ 9907.856321] sr 1:0:0:0: [sr0] Result: hostbyte=0x00 driverbyte=0x08
[ 9907.856328] sr 1:0:0:0: [sr0] Sense Key : 0x5 [current]
[ 9907.856333] Info fld=0x440, ILI
[ 9907.856336] sr 1:0:0:0: [sr0] ASC=0x64 ASCQ=0x0
[ 9907.856340] end_request: I/O error, dev sr0, sector 4352
[ 9908.556370] UDF-fs: No anchor found
[ 9908.556375] UDF-fs: No partition found (1)

while

bash-3.2# disktype /dev/sr0

--- /dev/sr0
Block device, size 2.129 MiB (2232320 bytes)
CD-ROM, 1 track, CDDB disk ID 02000E01
Track 1: Data track, 2.129 MiB (2232320 bytes)
UDF file system
Sector size 2048 bytes
Volume name "UDF Volume"
UDF version 2.01

bash-3.2#

says everything apparently ok

Posted: Wed 11 Jan 2012, 21:06
by Karl Godt
and this is the output for a working udf formatted DVD :

bash-3.2# disktype /dev/sr0

--- /dev/sr0
Block device, size 52.56 MiB (55115776 bytes)
CD-ROM, 1 track, CDDB disk ID 02016601
Track 1: Data track, 52.56 MiB (55115776 bytes)
UDF file system
Sector size 2048 bytes
Volume name "RedIceSilverBlueBlack"
UDF version 1.02

bash-3.2# mount -t udf /dev/sr0 /mnt/sr0

bash-3.2# dmesg | tail

[10438.405675] ISOFS: Unable to identify CD-ROM format.
[10494.839084] UDF-fs: Partition marked readonly; forcing readonly mount
[10494.865040] UDF-fs INFO UDF: Mounting volume 'RedIceSilverBlueBlack', timestamp 2010/02/13 14:05 (1fc4)

This a backup of a Music CD .

My DVD-player is only a reader , so the dvd got mounted read only :

mount: block device /dev/sr0 is write-protected, mounting read-only

UDF format

Posted: Thu 12 Jan 2012, 13:56
by Volhout
Hi Karl,

tested on 528-004 new iso install.

The modprobe shows UDF is supported in the kernel.
My problems disk is in UDF 1.02 format. And it is not recognized by Pmount.

Manual mounting with

Code: Select all

mount -t udf /dev/sr0 /mnt/sr0 
works, and I can access the disk. Also Pburn sees correct size now. Did not try actual copy process yet, but I am confident it will work.

How can we get this fixed in Pmount ?? Do you know the author ?

Regards,

Volhout

guess fstype udf

Posted: Thu 12 Jan 2012, 23:00
by Karl Godt
# mkdir /mnt/sr0
# mount -t udf /dev/sr0 /mnt/sr0
mount: block device /dev/sr0 is write-protected, mounting read-only
# lsmod |grep udf
udf 60680 1
crc_itu_t 1003 1 udf
# guess_fstype
Usage: guess_fstype device
# guess_fstype /dev/sr0
udf


it seems that mount is capable to load drivers automatically .

/sbin/guess_fstype is capable of guessing udf right and iso9660 , so could be implemented into
/sbin/probepart

/sbin/probepart experimental udf support

Posted: Thu 12 Jan 2012, 23:17
by Karl Godt

Code: Select all

case $DEVICE in
   hd*)
    #[ "`cat /proc/ide/$DEVICE/media`" = "cdrom" ] && FSTYPE="iso9660"
    if [ "`cat /proc/ide/$DEVICE/media`" = "cdrom" ];then
    FSTYPE=`guess_fstype $ONEDEV`;[ "$FSTYPE" = 'garage' ] && FSTYPE="iso9660";fi
   ;;
   scd*|sr*) #usb,sata,scsi cd/dvd drive.
    #FSTYPE="iso9660"
    FSTYPE=`guess_fstype $ONEDEV`;[ "$FSTYPE" = 'garage' ] && FSTYPE="iso9660"
   ;;
  esac

/usr/sbin/pmount experimental udf support

Posted: Thu 12 Jan 2012, 23:19
by Karl Godt

Code: Select all

#v408 v410 moved up...
#VALIDPARTS="`echo "$PARTSINFO" | grep -E 'vfat|msdos|ntfs|minix|ext2|ext3|ext4|reiser|xfs|iso9660'`"
VALIDPARTS="`echo "$PARTSINFO" | grep -E 'vfat|msdos|ntfs|minix|ext2|ext3|ext4|reiser|xfs|iso9660|udf'`"

Posted: Fri 13 Jan 2012, 07:50
by Karl Godt
Now tested the both codes several times and boots and Puppy versions , and must say it works - even if the udf.ko module not loaded and udf not mentioned in /proc/filesystems .

mount-FULL does load the udf.ko module automatically .

The only thing is to recognize the filesystem type on CD/DVD ,
guess_fstype spins up the DVD drive every time /sbin/probepart runs .

If the DVD drive is old,slow,clumpy the one or other would think it would be annoying . :wink:

Posted: Fri 13 Jan 2012, 17:11
by backi
High buddies !

Was confronted with the same problem ........
posted it a while ago .
I am Linux newby ....... is there a solution in sight ?

Posted: Fri 13 Jan 2012, 23:34
by 8-bit
I would like to see UDF support by default instead of having to do the mount from a command line.
What files in Puppy would have to be modified to be able to read UDF format disks without loosing ISO9660 format support.
My shallow mind would never remember the commands to check disk type and the one to mount the UDF formatted disk.

I am wondering why that was left out of Puppy versions to begin with.
My test DVD was a backup of backup files for a business I did the bookwork on. It was not complete as it had got misplaced and I had to make another from the backup information I had on the hard drive.
And since I did monthly backups spanning 9 years, that was a lot of backups.

I have always considered Puppy to be more secure than Windows and that helps.

I have not tried the bookkeeping program, Simply Accounting, with wine and so am unsure if it would work there.

The business no longer exists. And so this would just be a test for using it for a personal bookkeeping system for tracking expenses for tax purposes.

Posted: Sat 14 Jan 2012, 00:08
by musher0
Hi, 8-bit.

Didn't quite understand the last part of your message. You backed up your accounting work on udf formatted DVDs ? Is that it?

TWYL.

Posted: Sat 14 Jan 2012, 06:39
by 8-bit
Short answer is yes. It seemed to be the default of Nero that I used to make the backup DVD in Windows XP and then Vista.
The accounting program itself would save backups to hard drive or one floppy disk for each month.

I also tried Karl's method of reading the DVD and it worked in Puppy.
Before that, I would have had to fire up Windows to be able to read it.

Posted: Sun 15 Jan 2012, 21:15
by playdayz
Karl Godt, Am I correct that this is replacement code for /sbin/probepart? Is there anything else I should know about using it? Thanks for the quick solution. I will pass it on to 01micko.

Code: Select all

case $DEVICE in 
   hd*) 
    #[ "`cat /proc/ide/$DEVICE/media`" = "cdrom" ] && FSTYPE="iso9660" 
    if [ "`cat /proc/ide/$DEVICE/media`" = "cdrom" ];then 
    FSTYPE=`guess_fstype $ONEDEV`;[ "$FSTYPE" = 'garage' ] && FSTYPE="iso9660";fi 
   ;; 
   scd*|sr*) #usb,sata,scsi cd/dvd drive. 
    #FSTYPE="iso9660" 
    FSTYPE=`guess_fstype $ONEDEV`;[ "$FSTYPE" = 'garage' ] && FSTYPE="iso9660" 
   ;; 
  esac

Posted: Sun 15 Jan 2012, 22:47
by Karl Godt
Yes !

One thing i encounter is that on Puppy4 the guess_fstype spins up the DVD reader of mine

and the reader IF includes a DVD
does not stop spinning , until i open the tray .

So booting to desktop /sbin/pup_event_frontend_d checks for partitions and filesystems using /sbin/probepart .....

If DVD in tray , it does not stop spinning .

ALSO if checked "LAUNCH HANDLER" in the eventmanager GUI ....

On the partition i am on now i pressed the outside-button to eject the DVD and reinserted it and now it is calm .

I think this is the real cause for defaulting to one fs in the original code . I compiled ufs-utils and the source stopped to develop in 2002 it seems .

And the garage you might fill with tom,jerry or others not yet invented filesystems .

Posted: Mon 16 Jan 2012, 07:03
by 8-bit
Karl.
I tried inserting your code segment into /sbin/probepart and I did the first part.
I think I blew it because I did not delete any existing code and commented out some with semicolons.
Would it be possible for you to attach the modified /sbin/probepart file zipped up to a post here?

Just call me dumb. But I want to get it right and after having pmount fail to start and otherwise being unable to mount anything, I just want to get it right.

I did have the foresight to make a backup of my pupsave file before I tried it.

Also, I did nothing with your second code snipit. you show.

So again, if you could perchance attach that zipped file to a post, I would be most pleased and have enough CDs and DVDs of various formats to give that a good test.

Also, to answer the previous question on the udf format disk, I was wrong about using Nero.
It is actually a feature in Windows that allows one to use a DVD or CD as a hard drive with read/write/delete capabilities just like a hard drive.
It allows adding individual files to a CD or DVD.
And in that way, you could say it acts like a disk made "open session" in Puppy.
So in fact, I was reading the contents of a udf format disk that was open session in windows.

Posted: Mon 16 Jan 2012, 17:18
by Karl Godt
For PMOUNT code see the post below the probepart code post .

*

AND i have to say that the filtering line

#v408 v410 moved up...
VALIDPARTS="`echo "$PARTSINFO" | grep -i -E 'FAT|vfat|msdos|ntfs|minix|ext2|ext3|ext4|reiser|xfs|iso9660|udf'`"

also occurs in /sbin/pup_event_frontend_d

PROBEPART="`probepart -k | grep -i -E '\|FAT.*|\|ext4|\|ntfs|\|msdos|\|vfat|\|ext2|\|ext3|\|iso9660|\|xfs|\|reiser|\|udf'`"

and probably several times . I have put that into a function on the installation i am on now :

probepart_func() {
PROBEPART="`probepart -k | grep -i -E '\|FAT.*|\|ext4|\|ntfs|\|msdos|\|vfat|\|ext2|\|ext3|\|iso9660|\|xfs|\|reiser|\|udf'`"
}


I am working on getting Xorg-server-1.3.0 to work with Puppy 4 on my current machine so my focus is there for the moment . :oops:

[edit fixed srew from " \|udf| " to " |\|udf " in pup_event_frontend_d AND probepart code .. "|" at the very end of the line would not filter anything but grep everything .. /edit] :oops: :oops:

/sbin/pup_event_fromtend_d udf adjustment

Posted: Mon 16 Jan 2012, 19:41
by Karl Godt
As far as i can see it /sbin/pup_event_fromtend_d

has got three lines to append udf file system format recognition :

Code: Select all

#display an icon for each partition... w476 add ext4...
 #[ ! $1 ] && PROBEPART="`probepart -k | grep -E '\|ext4\||\|ntfs\||\|msdos\||\|vfat\||\|ext2\||\|ext3\||\|iso9660\||\|xfs\||\|reiser'`"
 [ ! $1 ] && PROBEPART="`probepart -k | grep -E '\|ext4\||\|ntfs\||\|msdos\||\|vfat\||\|ext2\||\|ext3\||\|iso9660\||\|xfs\||\|reiser|\|udf'`"  

Code: Select all

#PROBEPART="`probepart -k | grep -E '\|ext4\||\|ntfs\||\|msdos\||\|vfat\||\|ext2\||\|ext3\||\|iso9660\||\|xfs\||\|reiser'`"
PROBEPART="`probepart -k | grep -E '\|ext4\||\|ntfs\||\|msdos\||\|vfat\||\|ext2\||\|ext3\||\|iso9660\||\|xfs\||\|reiser|\|udf'`"
 DRVINFO="`echo "$PROBEPART" | grep "$drvPATTERN" | cut -f 1,2,3 -d '|' | tr '\n' ' '`"

Code: Select all

#show all drives on desktop... w476 add ext4...
 #PROBEPART="`probepart -k | grep -E '\|ext4\||\|ntfs\||\|msdos\||\|vfat\||\|ext2\||\|ext3\||\|iso9660\||\|xfs\||\|reiser'`"
 PROBEPART="`probepart -k | grep -E '\|ext4\||\|ntfs\||\|msdos\||\|vfat\||\|ext2\||\|ext3\||\|iso9660\||\|xfs\||\|reiser|\|udf'`"
[ the video probs i have with Puppy 4 seems to be related to installing later /sbin/modprobe -V3.11.1 , which does not applies blacklist MODULE from modprobe.conf by default . modprobe -V3.6 seems to be patched to do this ... Had to insert" alias modprobe='modprobe -b' " everywhere (rc.sysinit,pup_event_backend_modprobe,xwin,xorgwizard ..) :lol: ]

Posted: Mon 16 Jan 2012, 23:43
by Karl Godt
Now i have a kernel running compiled with

DEBUG_BLOCK_EXT_DEVT

in kernel hacking section

which makes cat /proc/partitions look like

major minor #blocks name

259 0 156250000 sda
259 524288 7189056 sda1
259 262144 15358140 sda2
259 786432 15358140 sda3
259 131072 1 sda4
259 655360 1028128 sda5
259 393216 15358108 sda6
259 917504 15358108 sda7
259 65536 15358108 sda8
259 589824 15358108 sda9
259 327680 15358108 sda10
259 851968 40523931 sda11
259 196608 1955840 sdb
259 720896 1955406 sdb1

*

Therefore i had disktype command inserted into /sbin/probepart

AND for the udf issue the code looks like this :

Code: Select all

case $DEVICE in
   hd*)
    FSTYPE='unknown'  ##+++2011_10_28
    #[ "`cat /proc/ide/$DEVICE/media`" = "cdrom" ] && FSTYPE="iso9660"
    if [ "`cat /proc/ide/$DEVICE/media`" = "cdrom" ];then
    FSTYPE=`guess_fstype ONEDEV`;
    [ ! "$FSTYPE" -o "$FSTYPE" = 'unknown' ] && FSTYPE="`disktype $ONEDEV | grep -i 'file system'|awk '{print $1}'|tr '[A-Z]' '[a-z]'`";
    [ ! "$FSTYPE" ] && FSTYPE="iso9660"
    fi
   ;;
   scd*|sr*) #usb,sata,scsi cd/dvd drive.
    #FSTYPE="iso9660"
   FSTYPE=`guess_fstype ONEDEV`;
   [ ! "$FSTYPE" -o "$FSTYPE" = 'unknown' ] && FSTYPE="`disktype $ONEDEV | grep -i 'file system'|awk '{print $1}'|tr '[A-Z]' '[a-z]'`";
   [ ! "$FSTYPE" ] && FSTYPE="iso9660"
   ;;
  esac
disktype command looks like it does not spin the DVD drive forever like guess_fstype does .

Posted: Tue 17 Jan 2012, 15:50
by playdayz
Simply substituting this code into /sbin/probepart in place of the corresponding code does not solve the problem for me. With this substitute code I do not get an icon for the sr0, if I boot with the dvd in the drive or if I insert the dvd after booting. Additionally, if I run pmount the usb drives are listed as optical drives.

Code: Select all

case $DEVICE in 
   hd*) 
    #[ "`cat /proc/ide/$DEVICE/media`" = "cdrom" ] && FSTYPE="iso9660" 
    if [ "`cat /proc/ide/$DEVICE/media`" = "cdrom" ];then 
    FSTYPE=`guess_fstype $ONEDEV`;[ "$FSTYPE" = 'garage' ] && FSTYPE="iso9660";fi 
   ;; 
   scd*|sr*) #usb,sata,scsi cd/dvd drive. 
    #FSTYPE="iso9660" 
    FSTYPE=`guess_fstype $ONEDEV`;[ "$FSTYPE" = 'garage' ] && FSTYPE="iso9660" 
   ;; 
  esac
I can still mount manually with

Code: Select all

mount /dev/sr0 /mnt/dvd