Re: growisofs -use-the-force-luke=4gms doesn't work?
Hi,
> * - -use-the-force-luke=4gms to allow ISO9660 directory structures
> * to cross 4GB boundary, the option is effective only with DVD+R DL
> Now I've got a DVD+R DL, failed with 2 trials:
> $ growisofs -M /dev/sr0 -speed 1 -use-the-force-luke=4gms -iso-level 2 -r \
> -J -V PHOTOS_YLS -old-root / \
> -graft-points /tmp/empty Photos=Photos/ f-spot=.config/f-spot/
> :-( next session would cross 4GB boundary, aborting...
I read in growisofs.c of version 7.1:
if (strstr(s,"4gms")) no_4gb_check = 1;
...
else if (next_session > (0x200000-0x5000)) /* 4GB/2K-40MB/2K */
if (/*(mmc_profile&0xFFFF)<0x20 ||*/
((mmc_profile&0xFFFF)<0x40 && !no_4gb_check))
fprintf (stderr,":-( next session would cross 4GB "
"boundary, aborting...\n"),
exit (FATAL_START(ENOSPC));
(mmc_profile&0xFFFF)<0x40 means everything older than Blu-ray.
DVD+R DL has profile number 0x2b.
Nevertheless, if no_4gb_check is non-zero then this test should
not snap.
So it appears that for some reason the option
-use-the-force-luke=4gms
did not get into effect as no_4gb_check = 1.
One would have to insert a few printf statements in order to learn
what exactly goes wrong.
> I wonder if I could workaround this issue by replacing growisofs with
> "genisoimage -C xx,xx -M" followed by "cdrskin"?
That should be possible. Your grwoisofs command would be:
c_value=$(cdrskin dev=/dev/sr0 -msinfo 2>/dev/null)
genisoimage -C $c_value -M /dev/sr0 -iso-level 2 -r -J -V \
PHOTOS_YLS -old-root / -graft-points \
/tmp/empty Photos=Photos/ f-spot=.config/f-spot/ \
| cdrskin -v dev=/dev/sr0 -waiti -multi -eject -
This will work on CD-R[W], DVD-R[W], DVD+R, DVD+R DL, BD-R.
For media types DVD-RAM, DVD+RW, formatted DVD-RW, BD-RE,
add in both cdrskin runs option --grow_overwriteable_iso .
The same should be possible by
xorriso -as mkisofs
and
xorriso -as cdrecord
in the roles of genisoimage and cdrskin.
Have a nice day :)
Thomas
Reply to: