[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1031696: Use of symbolic links in non-free ISO images breaks file system transposition support



Package: debian-cd
Followup-For: Bug #1031696

> >Thinking aloud: as an alternative, would adding the '-f' flag to MKISOFS
> >achieve the desired result for both documentation and firmware files, without
> >requiring any other changes?

> No, then I expect we'll simply end up with duplicate copies of the
> files.

I was worried about that too, but I think that with '-f', each resulting file
is only stored once within the resulting ISO image, so no additional storage
space (beyond the additional file record references) is required.

Testing, although maybe not proving, the idea: here's creation of a 1MB file,
then creation of a symlink to it, and an ISO image -- that is less than 2MB --
containing both by using the '-f' flag to store symlinked files using shared
disc-blocks instead of links:

  $ dd if=/dev/zero of=one.dat bs=1M count=1
  1+0 records in
  1+0 records out
  1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00553131 s, 190 MB/s

  $ ln -s one.dat two.dat

  $ xorriso -as mkisofs -f -o combined.iso one.dat two.dat
  xorriso 1.5.4 : RockRidge filesystem manipulator, libburnia project.

  Drive current: -outdev 'stdio:combined.iso'
  Media current: stdio file, overwriteable
  Media status : is blank
  Media summary: 0 sessions, 0 data blocks, 0 data,  250g free
  Added to ISO image: file '/one.dat'='/home/jka/Downloads/one.dat'
  xorriso : UPDATE :       1 files added in 1 seconds
  Added to ISO image: file '/two.dat'='/home/jka/Downloads/two.dat'
  xorriso : UPDATE :       2 files added in 1 seconds
  ISO image produced: 695 sectors
  Written to medium : 695 sectors at LBA 0
  Writing to 'stdio:combined.iso' completed successfully.

  $ ls -lsh combined.iso
  1.4M -rw-r--r-- 1 jka jka 1.4M Mar 12 18:08 combined.iso

  $ xorriso -indev combined.iso -find / -type f -exec report_lba
  xorriso 1.5.4 : RockRidge filesystem manipulator, libburnia project.

  xorriso : NOTE : Loading ISO image tree from LBA 0
  xorriso : UPDATE :       2 nodes read in 1 seconds
  Drive current: -indev 'combined.iso'
  Media current: stdio file, overwriteable
  Media status : is written , is appendable
  Media summary: 1 session, 695 data blocks, 1390k data,  250g free
  Volume id    : 'ISOIMAGE'
  Report layout: xt , Startlba ,   Blocks , Filesize , ISO image path
  File data lba:  0 ,       33 ,      512 ,  1048576 , '/one.dat'
  File data lba:  0 ,       33 ,      512 ,  1048576 , '/two.dat'


Reply to: