Ubuntuコンピュータのネットワーク共有にファイルをコピーするとファイルの破損原因を見つける

Ubuntuコンピュータのネットワーク共有にファイルをコピーするとファイルの破損原因を見つける

Windows 7を介してSDカードからUbuntuサーバーにファイルをコピーするためにネットワークドライブを使用しています。

問題は、時には転送中に150個のファイルのうち2つが破損することです。

ここでは、2つの16進サンプルファイルを比較します。左は元のファイル、右はサーバーに保存される方法です。約10kBほど異なります。 2番目の例では、00が追加されていることがわかります。

ファイル1 - .JPGの例

ファイル2 - .CR2の例

何が原因なのかわかりません。そのため、エラーの考えられる原因を絞り込む方法について提案を求めます。

2つのドライブが影響を受けるため、これはハードウェア自体の問題ではないと思います。

ネットワーク接続も問題ありません。ケーブルの制限が原因で発生する問題ですが、私はそのような問題を経験したことがありません。

私の妻は、Picasaでファイルを扱うときに、このようなエラーが発生することがあると感じます。しかし、確かに言うことはできません。

私の考えでは、これはext4 fs、samba、またはmountのいくつかの競争条件のバグのようです。

以下は、役立つ可能性のあるシステム情報です。

影響を受けるドライブは次のとおりです。

UUID="bc57f0fd-c16d-450e-83aa-4b7faace655c" /media/FOTOS2/ ext4 defaults 2
UUID="aacc7c57-8997-42c3-a2fc-648fe5a9009c" /media/WDRED2TB/ ext4 defaults 2

完全なfstabファイルは次のとおりです。

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda2 during installation
UUID=9978d40a-b90d-49e1-ab7a-002cc0577120 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sda1 during installation
UUID=AA12-9F54  /boot/efi       vfat    defaults        0       1
# swap was on /dev/sda3 during installation
UUID=bba8a1b5-a7da-44a2-a220-23a69c73e6ab none            swap    sw              0       0


UUID="bc57f0fd-c16d-450e-83aa-4b7faace655c" /media/FOTOS2/ ext4 defaults 2
UUID="aacc7c57-8997-42c3-a2fc-648fe5a9009c" /media/WDRED2TB/ ext4 defaults 2
UUID="ba87bd76-a34a-45a5-8268-4de331ebf72f" /media/RAID/ ext4 defaults 0 2

以下は「マウント」出力です。

/dev/sde2 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /sys/firmware/efi/efivars type efivarfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
none on /sys/fs/pstore type pstore (rw)
/dev/sde1 on /boot/efi type vfat (rw)
/dev/sdc1 on /media/FOTOS2 type ext4 (rw)
/dev/sdb1 on /media/WDRED2TB type ext4 (rw)
/dev/md0p1 on /media/RAID type ext4 (rw)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=piotre)

システムは

piotre@SERVER:~$ uname -a
Linux SERVER 3.13.0-46-generic #79-Ubuntu SMP Tue Mar 10 20:06:50 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

dumpe2fsはドライブの1つに関する情報を提供します。

Filesystem volume name:   WDRED2TB
Last mounted on:          /media/WDRED2TB
Filesystem UUID:          aacc7c57-8997-42c3-a2fc-648fe5a9009c
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              122101760
Block count:              488378385
Reserved block count:     24418919
Free blocks:              36947951
Free inodes:              121834982
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      907
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
RAID stride:              1
Flex block group size:    16
Filesystem created:       Wed May  1 12:47:05 2013
Last mount time:          Tue Apr  7 15:27:31 2015
Last write time:          Tue Apr  7 15:27:31 2015
Mount count:              169
Maximum mount count:      25
Last checked:             Mon Jul 21 21:11:14 2014
Check interval:           15552000 (6 months)
Next check after:         Sat Jan 17 20:11:14 2015
Lifetime writes:          2513 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      9e898ed8-9275-4e6f-9dd6-431190f4b932
Journal backup:           inode blocks
Jounaleigenschaften:         journal_incompat_revoke
Journalgrösse:            128M
Journal-Länge:            32768
Journal-Sequenz:          0x00028de6
Journal-Start:            1

まず、smb.conf(常に同期と厳密な同期)を修正しようとしましたが、役に立ちませんでした。現在、smb.confは次のようになります。

[global]
workgroup=WORKGROUP
server string=%h server (Samba, Ubuntu)
netbios name=SERVER
dns proxy=no
log file=/var/log/samba/log.%m
max log size=1000
syslog=0
panic action=/usr/share/samba/panic-action %d
server role=standalone server
map to guest=bad user
usershare allow guests=yes
security=share
force user=nobody
guest account=nobody
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536
strict syn = yes
sync always = yes

ベストアンサー1

まだ理解しているかどうかはわかりませんが、smb.confで「厳密な同期」スペルを間違って入力しました(「c」を忘れました)。また、厳密な同期が有効になっていない場合(エラーが原因で有効になっていない場合)、「常に同期」は機能しません。

おすすめ記事