cpio misunderstanding?

Joe Kraft jvk-list at thekrafts.org
Fri Dec 24 19:14:14 UTC 2010


Let me state a couple of given's up front:
1) I would post this on a FreeSBIE list if I could find one.
2) I think the issue I have right now is not understanding completely the 
limitations of cpio.

My problem is that when building the file system to use for making the iso 
cpio fails when copying some of the files saying "Operation not permitted".  
These are some of the files fairly important to the operating system like 
libexec/ld-elf.so.1 and lib/libc.so.7.

I don't see any reason for copying the other 16,540 files and failing on 
these 22 important files.  

Can anyone point me in the right direction for a better understanding of 
what's going on, or even just call me an idiot and tell me the simple thing 
I've missed?  Either will be appreciated.

Joe.


<Details>
I'm using 8.1-STABLE FreeBSD 8.1-STABLE #2, and freesbie-2.0.20070710 from 
ports.  I've updated the kernel conf file to match GENERIC, with the 
following lines from the original FreeSBIE kernel added at the end:
   device	bktr
   options	IPFIREWALL
   options	IPFIREWALL_VERBOSE
   options	IPFIREWALL_DEFAULT_TO_ACCEPT
   device	pf
   device	pflog
   device	pfsync
   options	IPSTEALTH
   options	IPDIVERT
   options	GEOM_UZIP
   options 	GEOM_LABEL
   options	VESA
   options	SC_PIXEL_MODE

The system seems to build fine but hits a snag in this section of the 
script:
    # If FILE_LIST isn't defined...
    if [ -z "${FILE_LIST:-}" ]; then
	# then copy the whole filesystem
	find . -print -depth | cpio -dump -l -v ${CLONEDIR} >> ${LOGFILE} 
2>&1
    else
	# else pass it to cpio
	... more code to dump filenames from ${FILE_LIST} to cpio ...
    fi


If I try to run it manually on one of the files that fails, I get this:

slug# echo "/usr/local/freesbie-fs/libexec/ld-elf.so.1" | cpio -dump -l -v 
/usr/local/freesbie-clone

/usr/local/freesbie-clone/usr/local/freesbie-fs/libexec/ld-elf.so.1

cpio: Can't create '/usr/local/freesbie-clone/usr/local/freesbie-
fs/libexec/ld-elf.so.1': Operation not permitted
0 blocks


I can use cp to copy the file, so I don't understand what's going on here.  
Does anyone have any ideas?  

</Details>



More information about the freebsd-questions mailing list