When I copy a file from one file system to another I get Operation not
supported. But I cant see what is causing it...
First I have two directories , one on each File System...
[lordy@morpheus ~]$ ls -ld /disk/hdg1/tmp/test/
drwxr-xr-x 2 lordy lordy 4096 May 30 17:05 /disk/hdg1/tmp/test//
[lordy@morpheus ~]$ ls -ld ~/test2
drwxr-xr-x 2 lordy lordy 4096 May 30 18:06 /home/lordy/test2/
Now I create a test file on each :
First test file:
[lordy@morpheus ~]$ touch /disk/hdg1/tmp/test/aaa
[lordy@morpheus ~]$ ls -l /disk/hdg1/tmp/test/aaa
-rw-r--r-- 1 lordy lordy 0 May 30 18:07 /disk/hdg1/tmp/test/aaa
Second test file:
[lordy@morpheus ~]$ touch /home/lordy/test2/bbb
[lordy@morpheus ~]$ ls -l /home/lordy/test2/bbb
-rw-r--r-- 1 lordy lordy 0 May 30 18:08 /home/lordy/test2/bbb
Now I copy one way(no problems):
[lordy@morpheus ~]$ cp /disk/hdg1/tmp/test/aaa /home/lordy/test2
[lordy@morpheus ~]$ la -l ~/test2/aaa
-rw-r--r-- 1 lordy lordy 0 May 30 18:08 /home/lordy/test2/aaa
But the other way causes the problem:
[lordy@morpheus ~]$ cp /home/lordy/test2/bbb /disk/hdg1/tmp/test
cp: setting attributes for `/disk/hdg1/tmp/test/bbb': Operation not
supported
[lordy@morpheus ~]$ ls -l /disk/hdg1/tmp/test/bbb
-rw-r--r-- 1 lordy lordy 0 May 30 18:08 /disk/hdg1/tmp/test/bbb
Relevant mount points (from fstab):
/dev/sda7 /home ext3 noatime 1 2
/dev/hdg1 /disk/hdg1 ext3 noatime 1 2
Any ideas? (plenty of hits in Google but nothing leapt out at me)
Lordy
Do a ls -na and verify uid and gid's match.
If they match, I would look at the directories permissions.
> Now I copy one way(no problems):
> [lordy@morpheus ~]$ cp /disk/hdg1/tmp/test/aaa /home/lordy/test2
> [lordy@morpheus ~]$ la -l ~/test2/aaa
> -rw-r--r-- 1 lordy lordy 0 May 30 18:08 /home/lordy/test2/aaa
>
>
> But the other way causes the problem:
> [lordy@morpheus ~]$ cp /home/lordy/test2/bbb /disk/hdg1/tmp/test
> cp: setting attributes for `/disk/hdg1/tmp/test/bbb': Operation not
> supported
> [lordy@morpheus ~]$ ls -l /disk/hdg1/tmp/test/bbb
> -rw-r--r-- 1 lordy lordy 0 May 30 18:08 /disk/hdg1/tmp/test/bbb
Neither should work the way you have it. You're telling both to copy a
file to a directory name, test and test2. Put a / delimiter behind each
and it should work. I'm sure it will /*.
--
Want the ultimate in free OTA SD/HDTV Recorder? http://mythtv.org
http://mysettopbox.tv/knoppmyth.html Usenet alt.video.ptv.mythtv
My server http://wesnewell.no-ip.com/cpu.php
HD Tivo S3 compared http://wesnewell.no-ip.com/mythtivo.htm
> Relevant mount points (from fstab):
> /dev/sda7 /home ext3 noatime 1 2
> /dev/hdg1 /disk/hdg1 ext3 noatime 1 2
> Any ideas? (plenty of hits in Google but nothing leapt out at me)
New one for me.
What's the output of ls -l /home and ls -l /disk/hdg1 ?
Confirm msec hasn't changed the permissions of either file and
directory, since they were created.
Confirm the mount command shows both as rw,noatime.
Regards, Dave Hodgins
--
Change nomail.afraid.org to ody.ca to reply by email.
(nomail.afraid.org has been set up specifically for
use in usenet. Feel free to use it yourself.)
That's OK thats how cp (and mv) work if the source is a file and the
target is a directory.
Lordy
[lordy@morpheus ~]$ mount
/dev/hdg1 on /disk/hdg1 type ext3 (rw,noatime)
/dev/sda7 on /home type ext3 (rw,noatime)
..
[lordy@morpheus ~]$ ls -ld /home
drwxr-xr-x 18 root root 4096 Dec 5 23:38 /home/
[lordy@morpheus ~]$ ls -ld /disk/hdg1
drwxr-xr-x 6 root root 4096 May 4 01:36 /disk/hdg1/
Looks OK.
Lordy
[lordy@morpheus ~]$ id
uid=500(lordy) gid=500(lordy)
groups=80(cdwriter),500(lordy),503(vboxusers)
[lordy@morpheus ~]$ ls -na ~/test2
total 40
drwxr-xr-x 2 500 500 4096 May 30 18:08 ./
drwxr-xr-x 267 500 500 20480 May 30 22:42 ../
-rw-r--r-- 1 500 500 0 May 30 18:08 aaa
-rw-r--r-- 1 500 500 0 May 30 18:08 bbb
[lordy@morpheus ~]$ ls -na /disk/hdg1/tmp/test/
total 8
drwxr-xr-x 2 500 500 4096 May 30 18:08 ./
dr-xr-xr-x 7 0 0 4096 May 30 17:05 ../
-rw-r--r-- 1 500 500 0 May 30 18:07 aaa
-rw-r--r-- 1 500 500 0 May 30 18:08 bbb
> If they match, I would look at the directories permissions.
[lordy@morpheus ~]$ ls -nad ~/test2
drwxr-xr-x 2 500 500 4096 May 30 18:08 /home/lordy/test2/
[lordy@morpheus ~]$ ls -nad /disk/hdg1/tmp/test/
drwxr-xr-x 2 500 500 4096 May 30 18:08 /disk/hdg1/tmp/test//
I'm stumped.
Lordy
But they were both mounted 'noatime' but you gave me an idea 'strace'
And lo and behold the culprit appears.... Some 'Beagle' attributes on my
home directory cannot be copied to my remote system. So Beagle doesnt
seem like a purely passive indexer. (see end of post) Interesting....
Now debating with myself how much I need it as it can break scripts.
For example :
Exit code 0 As expected:
[lordy@morpheus ~]$ cp /disk/hdg1/tmp/test/aaa ~/test2
cp: overwrite `/home/lordy/test2/aaa'? y
[lordy@morpheus ~]$ echo $?
0
But the other way gives exit code 1:
[lordy@morpheus ~]$ cp ~/test2/aaa /disk/hdg1/tmp/test/
cp: overwrite `/disk/hdg1/tmp/test/aaa'? y
cp: setting attributes for `/disk/hdg1/tmp/test/aaa': Operation not
supported
[lordy@morpheus ~]$ echo $?
1
I think I shall work out if Beagle really is the cause and if so,
how to carefully extricate it from my system.
Lordy
Strace snippet:
stxattr("/home/lordy/test2/aaa", (nil), 0) = 79
llistxattr("/home/lordy/test2/aaa", 0xbfa33f80, 79) = 79
lgetxattr("/home/lordy/test2/aaa", "user.Beagle.Uid", 0x0, 0) = 22
lgetxattr("/home/lordy/test2/aaa", "user.Beagle.Uid",
"91h9ZUI+b0erSDcTLSyFmQ", 22) = 22
lsetxattr("/disk/hdg1/tmp/test/aaa", "user.Beagle.Uid",
"91h9ZUI+b0erSDcTLSyFmQ", 22, 0) = -1 EOPNOTSUPP (Operation not
supported)
lgetxattr("/home/lordy/test2/aaa", "user.Beagle.MTime", 0x0, 0) = 14
lgetxattr("/home/lordy/test2/aaa", "user.Beagle.MTime",
"20070530170840", 14) = 14
lsetxattr("/disk/hdg1/tmp/test/aaa", "user.Beagle.MTime",
"20070530170840", 14, 0) = -1 EOPNOTSUPP (Operation not supported)
lgetxattr("/home/lordy/test2/aaa", "user.Beagle.AttrTime", 0x0, 0) = 14
lgetxattr("/home/lordy/test2/aaa", "user.Beagle.AttrTime",
"20070530170840", 14) = 14
lsetxattr("/disk/hdg1/tmp/test/aaa", "user.Beagle.AttrTime",
"20070530170840", 14, 0) = -1 EOPNOTSUPP (Operation not supported)
lgetxattr("/home/lordy/test2/aaa", "user.Beagle.Fingerprint", 0x0, 0) =
25
lgetxattr("/home/lordy/test2/aaa", "user.Beagle.Fingerprint", "02
sk8MCNdQB0KXZ0GYik_8CQ", 25) = 25
lsetxattr("/disk/hdg1/tmp/test/aaa", "user.Beagle.Fingerprint", "02
sk8MCNdQB0KXZ0GYik_8CQ", 25, 0) = -1 EOPNOTSUPP (Operation not
supported)
http://en.wikipedia.org/wiki/Extended_file_attributes#Linux
>
>
> Lordy
>
Last one, hope this helps someone else out..
setting attributes for `some file': Operation not supported
may be caused by Beagle extended attributes:
http://beagle-project.org/Enabling_Extended_Attributes
Lordy
> Now debating with myself how much I need it as it can break scripts.
> For example :
You may want to modify the /etc/profile.d/alias.sh, to change
alias cp="cp -i" to
alias cp="cp -i --no-preserve=all"
and suggest the change be added to the beagle install rpm.
Ah, good point, I should check the actual command not the alias:
[lordy@morpheus hellanzb-0.13]$ if \cp /disk/hdg1/tmp/test/aaa ~/test2 ;
then echo AOK ; fi
AOK
[lordy@morpheus hellanzb-0.13]$ if \cp ~/test2/aaa /disk/hdg1/tmp/test/
; then echo AOK ; fi
cp: setting attributes for `/disk/hdg1/tmp/test/aaa': Operation not
supported
Now that I think about it changing the alias probably wont help too
much as scripts will run the actual command?
So you guys running beagle? I'm not sure whats the best way to approach
this. I already had to fsck my /home the other week which I thought
was a bit weird at the time as I'd had no power outages, I initially
suspected it was my script that calls 'poweroff' when then network is
idle but now I'm not so sure....
I'm also not sure whose bug this is or even if it is a bug?
Maybe the mount commands should be changed to include the extended
attributes by default if Beagling??
Lordy
>
Not me, nor any of the other Services found in the KDE control
center. :)
Hi, see other posts :)
Error corrected by adding support for user space extended attributes (as required by
Beagle)
http://beagle-project.org/Enabling_Extended_Attributes
The times I've used Beagle it has been handy (it indexes PDFs, OpenDoc,
Thunderbird inbox etc) so I've given it a temporary pardon for now. But
if I suspect these Extended Attributes cause any FS grief later on it'll
be first to go..
It's odd that /home seemed to have transparent support though??
Lordy
>
>
>
>
> Now that I think about it changing the alias probably wont help too
> much as scripts will run the actual command?
If I were running beagle, I'd consider renaming cp, and creating a
/bin/cp script, that executed the renamed version, with the --nopreserve=all
option automatically included.
> So you guys running beagle? I'm not sure whats the best way to approach
I'm not, grep works fine for me.
> It's odd that /home seemed to have transparent support though??
Looks like you can thank diskdrake for that.
In /usr/lib/libDrakX/fs/format.pm ...
#- setting user_xattr on /home (or "/" if no /home)
if (!$part->{isMounted} && $part->{fs_type} eq 'ext3'
&& ($part->{mntpoint} eq '/home' ||
!fs::get::has_mntpoint('/home', $all_hds) && $part->{mntpoint} eq '/')) {
run_program::run('tune2fs', '-o', 'user_xattr', devices::make($part->{real_device} || $part->{device}));
}
So it looks like once it's been turned on, it stays on, unless you
use the nouser_xattr in the fstab entry.
I wonder what happes if you turn off user xattr, when there are already
files with extended attributes.
I don't feel like enabling beagle to test it, at this time, grep works
fine for finding stuff like the above.
Unfortunately I suspect that will probably break a lot more things in
unforeseen ways. Messing with coreutils is risky business :)
>
>> So you guys running beagle? I'm not sure whats the best way to
>> approach
>
> I'm not, grep works fine for me.
I suspect that may be the best route :) I'll just have to find out how
to remove all of the Beagle attributes.
>
> Regards, Dave Hodgins
>
Cheers,
Andy
> I suspect that may be the best route :) I'll just have to find out how
> to remove all of the Beagle attributes.
Well you can always volunteer to test the impact of using
nouser_xattr in the fstab entry<G>.
I'd expect beagle to slow down dramatically, but otherwise, I'd expect
the existing extended attributes to simply be ignored. At least that's
the way I'd hope they'd be treated.