Date: Sun, 05 Mar 2017 11:14:08 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 217560] FAT32 - Time stamp of file is one hour off Message-ID: <bug-217560-8@https.bugs.freebsd.org/bugzilla/>
index | next in thread | raw e-mail
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=217560 Bug ID: 217560 Summary: FAT32 - Time stamp of file is one hour off Product: Base System Version: 11.0-RELEASE Hardware: amd64 OS: Any Status: New Severity: Affects Only Me Priority: --- Component: bin Assignee: freebsd-bugs@FreeBSD.org Reporter: erik@nordstroem.no I live in time zone GMT + 1. While trying something for another issue (#217440), I created a file on a FAT32 formatted USB stick using my Sony PlayStation 4. The PlayStation 4 is showing the correct local time and I have verified that it has its time zone configured correctly as "UTC+01:00 Oslo". My laptop is showing the correct local time and I have the TZ env variable set correctly as "Europe/Oslo". I took a screenshot in the game Alien: Isolation on the PS4 and transferred it to my USB stick. I mounted the USB stick with # mount_msdosfs -L en_US.UTF-8 /dev/da1s1 /mnt/ as per the discussion in issue #217440 but when I list the directory contents, the time stamp of the files is off by one hour into the future compared to actual time when the file was created as shown below. Note also that the file name itself contains the correct time when the file was created. I transferred the file to my memory stick within minutes of having taken the screenshot. I don't have a windows system to create files from at the moment so I can't verify whether this is a problem with FreeBSD handling of FAT32 or if the incorrect timestamp was caused by the PS4. I have attached an image of a minimal FAT32 partition which contains the directory structure and the screenshot which was written to the USB stick by the PS4. The USB stick was prepared with # umount /dev/da1s1 $ gpart delete -i 1 /dev/da1 $ gpart destroy /dev/da1 # dd if=/dev/zero of=/dev/da1 bs=16m $ gpart create -s mbr /dev/da1 $ gpart add -t fat32 -s 4g -i 1 /dev/da1 # newfs_msdos -F32 /dev/da1s1 # sync $ gpart show da1 => 63 30277569 da1 MBR (14G) 63 8161 - free - (4.0M) 8224 8388608 1 fat32 (4.0G) 8396832 21880800 - free - (10G) Unplugged the USB stick, put it in the PS4, took a screenshot and transferred it to the USB stick. Put it back in the computer and made a minimal image of the FAT32 partition; # umount /dev/da1s1 $ dd if=/dev/da1s1 of=usbstick.img conv=sparse bs=16m count=1 $ hd usbstick.img > tmp.img $ xxd -r tmp.img > usbstick.img $ rm tmp.img $ ls -hal usbstick.img -rw-r--r-- 1 erikn erikn 1.5M Mar 5 12:10 usbstick.img To mount the image; # mdconfig -a -t vnode -f usbstick.img -u 0 # mount_msdosfs -L en_US.UTF-8 /dev/md0 /mnt/ Here we have the file with the mismatching timestamp. $ ls -al /mnt/PS4/SHARE/Screenshots/Alien_\ Isolation™/ total 768 drwxrwxrwx 1 root wheel 32768 Mar 5 13:07 ./ drwxrwxrwx 1 root wheel 32768 Mar 5 13:07 ../ -rwxrwxrwx 1 root wheel 305981 Mar 5 13:07 Alien_ Isolation™_20170305120653.jpg* Unmount image; # umount /dev/md0 # mdconfig -d -u 0 -- You are receiving this mail because: You are the assignee for the bug.help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-217560-8>
