Backing the topic up a bit, how about doing the extracting using libcdio? extricate.c makes use of linux/cdrom.h which is not portable. A libcdio-based tool would be preferable.
On Thu, Apr 15, 2010 at 12:12 PM, Thomas Schmitt <[email protected]> wrote: > Hi, > >> Using isoinfo (NOT iso-info) it seems stuff is in place: >> [morituri-uninstalled] [tho...@otto trunk]$ isoinfo -N 207106 -i >> Ladyhawke\ -\ Ladyhawke/data.iso -l > > So the offset 207106 seems to be the right one. > (I found this helptext of isoinfo: > http://www.herongyang.com/CD-DVD/Data-CD-ISO-9660-isoinfo.html > "-N sector Sector number where ISO image should start on CD" > ) > > >> a) can I write this (wrong) iso as is to a mixed mode cd to make a >> perfect copy of my cd ? > > You will have to put it exactly to offset 207106 > so that it works unaltered. > Possibly one can do that with cdrecord -sao or > some -raw* option if one has suitable input files > for the tracks which come before the ISO track. > > But that's outside of my own experience. > > >> I couldn't get this to mount either: >> [r...@otto thomas]# mount -t iso9660 -o loop,sbsector=207106 dummy.iso >> /mnt/iso/ > > Did you append the image to the end of a file of > exactly the right size ? > In this case: > > dd if=/dev/zero \ > bs=2K count=1 seek=207105 \ > of=cd_dummy.iso > > Note that you have to seek to (207106 - 1) > and then write 1 block, to get 207106 blocks. > > Does this cd_dummy.iso show with ls -l a size of > 424153088 bytes ? (Before you append data.iso) > > > I just tried this with a multi-session CD on > Debian 5.04. Track start block is 109287, > track size is 3497: > > $ dd if=/dev/hda bs=2048 skip=109287 count=3497 of=track1.iso > $ dd if=/dev/zero bs=2K count=1 seek=109286 of=cd_dummy.iso > $ cat track1.iso >> cd_dummy.iso > $ su > # mount -t iso9660 -o loop,sbsector=109287 cd_dummy.iso /mnt > # ls /mnt > > shows lots of files. > > > ------------------------------------------------ > >> > Adventurous testers could try losetup option -o >> > with a negative value or mount option "offset". >> What value would this be there ? I tried in a loop with lots of values, >> none worked. > > I would have thought that this might work > > # losetup -f > /dev/loop0 > # losetup -o -207106 /dev/loop0 data.iso > # mount -t iso9660 -o sbsector=207106 /dev/loop0 /mnt > > but on Debian 5.04 (with 109287) it doesn't. > > > > > >
