Rootとして実行されるシェルスクリプトを介して、rsyncを使用してシステム全体を外部ディスクにバックアップしようとしています。
#!/bin/bash
rsync -vSHPhhaX --numeric-ids --delete --exclude-from=/home/rena/.scripts/exclude-list / /home/rena/video/.backup/>/home/rena/video/.backup.log
このスクリプトは、マシン "akira"で実行されています。元々、/ home/rena/videoはakiraに直接接続されたUSBハードディスクであり、スクリプトは問題なく動作しました。
最近、ディスクを移動しました。これで、別のマシン「yuki」の同じパスにマウントされ、NFSを介して共有されます。したがって、akira:/ home/rena/videoは同じUSBハードディスクを参照しますが、akirに直接接続するのではなく、yukiに接続してnfsで共有します。ディスクはext3を使用しており、Truecryptで暗号化されています。
yukiの/ etc/exportsは次のとおりです。
/home/rena akira(rw,subtree_check,nohide,no_root_squash) rei(rw,subtree_check,nohide,no_root_squash)
/home/rena/video akira(rw,subtree_check,nohide,no_root_squash) rei(rw,subtree_check,nohide,no_root_squash)
ここで、rsyncはすべてのファイルに対してエラーを出します。
rsync: chown "/home/rena/video/.backup/boot/System.map-2.6.38-8-generic" failed: Invalid argument (22)
nfsはしないように言われているのに、「つぶし」ているように見えますか?
rena@akira $ stat /home/rena/video/.backup/boot/abi-2.6.38-10-generic
File: `/home/rena/video/.backup/boot/abi-2.6.38-10-generic'
Size: 730457 Blocks: 1440 IO Block: 65536 regular file
Device: 19h/25d Inode: 38822526 Links: 1
Access: (0644/-rw-r--r--) Uid: (65534/ nobody) Gid: (65534/ nogroup)
Access: 2011-10-19 22:17:12.000000000 -0600
Modify: 2011-06-28 13:19:43.000000000 -0600
Change: 2011-10-19 22:17:12.000000000 -0600
rena@yuki $ stat /home/rena/video/.backup/boot/abi-2.6.38-10-generic
File: `/home/rena/video/.backup/boot/abi-2.6.38-10-generic'
Size: 730457 Blocks: 1440 IO Block: 4096 regular file
Device: fc04h/64516d Inode: 38822526 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2011-10-19 22:17:12.000000000 -0600
Modify: 2011-06-28 13:19:43.000000000 -0600
Change: 2011-10-19 22:17:12.000000000 -0600
akiraから、UIDとGIDは異なるように見えます。おそらくrsyncが失敗する理由は?
[編集]実際にはakiraのように見えますevery共有上のファイルにはUIDとGID 65534/nobodyがあります。
これはnfs-server(yuki)の名前解決の問題のようです。
/etc/nsswitch.conf
のホストのファイルに最初に設定されていることを確認してください/etc/Host.conf
がある場合は、解決順序がorder hosts bind
に設定されていることを確認してください/etc/hosts
に配置します。ショートネームがIPに続く最初のエントリであることを確認してください。これがNFSv4ではないと想定すると、匿名で共有しているように見えます。デフォルトではuid/gidの一致がないため、nobody/nogroupが割り当てられています。