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

Re: Some of the parameters used in my genisoimage command don't produce a bootable ISO image



This command does not reports the warning :

find . -depth -print | cpio --create --format='newc' > ../../initrd.img-5.10.0-19-amd64        
554538 blocks.

and :

# cat initrd.img-5.10.0-19-amd64-depth | cpio -t | sort >/tmp/with_depth  
554538 blocks

# cat initrd.img-5.10.0-19-amd64-depth | cpio -t | sort >/tmp/no_depth     
554538 blocks

# diff with_depth no_depth | less  

no difference.


Il giorno ven 28 ott 2022 alle ore 12:46 Thomas Schmitt <scdbackup@gmx.net> ha scritto:
Hi,

Mario Marietto wrote:
> There are some kb of difference between the files produced by the two
> techniques :
> 79.3 MiB (83,106,001 byte) : find . -print -depth | cpio --create
> --format='newc' > ../../initrd.img-5.10.0-18-amd64
> 79.3 MiB (83,108,291 byte) : find . | cpio --create --format='newc' >
> ../../initrd.img-5.10.0-18-amd64

I would only worry if cpio -t would show significant differences.
The find option -depth influences the sequence of names. So i would do:

  find . -print -depth | cpio ...

  cat ../../initrd.img-5.10.0-18-amd64 | cpio -t | sort >/tmp/with_depth

  find . | cpio ...

  cat ../../initrd.img-5.10.0-18-amd64 | cpio -t | sort >/tmp/without_depth

  diff /tmp/with_depth /tmp/without_depth | less

If the content is the same, then no differences should be reported.


The documentation of cpio states that the find run with -depth is to prefer.

  The '-depth' option forces 'find' to print of the entries in a
  directory before printing the directory itself. This limits the effects
  of restrictive directory permissions by printing the directory entries
  in a directory before the directory name itself.

Probably this means that at restore time potential write resctrictions
of the directory will only be applied after the files of the directory
have been copied out of the cpio archive into the directory.


> find: warning: you have specified the global option -depth after the
> argument -print, but global options are not positional, i.e., -depth affects
> tests specified before it as well as those specified after it.  Please
> specify global options before other arguments.
>
> It is a warning,not an error. But why does it happens ? Can I "fx" it ?

Follow the program's advise and do not put -print before -depth.
I get no warning with

  find . -depth 2>&1 | less

  find . -depth -print 2>&1 | less

-print is surplus here, anyways. man find says:

  find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [_expression_]
  ...
  If no _expression_ is given, the  _expression_  -print  is  used


(Do you really get that warning from
  find . 2>&1 | less
? There is no -depth to complain about, and my local find does not warn.)


Have a nice day :)

Thomas



--
Mario.

Reply to: