[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



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


Reply to: