Date: Fri, 7 Sep 2012 00:39:18 +0400 From: Anatoly <anatoly@kazanfieldhockey.ru> To: freebsd-usb@freebsd.org Subject: Re: how to force my 32G usb pendrive to flush write cache in RAM it has? Message-ID: <20120907003918.7620fb1e@epc.localdomain>
next in thread | raw e-mail | index | archive | help
В Thu, 06 Sep 2012 15:18:18 +0200 "Stanislaw W." <erikses@gmail.com> пишет: > W dniu 05.09.2012 23:47, Anatoly pisze: > > В Tue, 4 Sep 2012 23:55:57 +0400 > > Anatoly <> пишет: > > > >> Hello, > >> I have a problem with my new 32G pendrive: > >> > >> da1: <JetFlash Transcend 32GB 8.07> Removable Direct Access SCSI-2 > >> device da1: 40.000MB/s transfers > >> da1: 30640MB (62750720 512 byte sectors: 255H 63S/T 3906C) > >> > >> I'm using fat32 partition on it. > >> To make problem occur I can do following things: > >> 1) write a file about 5MB in size on that partition > >> 2) unmount > >> 3) unplug pendrive (so it loses power) > >> 4) plug it again > >> 5) mount > >> Now I can see that the end of file is corrupted. > >> > >> Poblem never occurs when I do: > >> 1) write a file about 5MB in size on that partition > >> 2) unmount > >> 3) mount > >> Also, problem doesn't occur if I'll wait for more than ~10 minutes > >> before unplugging pendrive. > >> > >> So it seems to me that this pendrive has internal write cache in > >> RAM that needs to be flushed before pendrive loses power. > >> Problem never occurs with Windows. As I click "remove", windows > >> somehow "correctly shutdowns" pendrive so it's LED goes off (Unlike > >> if i just unmount, when the LED stays on) > >> > >> What can I do to get cache flushed before unpugging, turn that > >> write cache off, or any other suggestions? > >> I've tried camcontrol stop and camcontrol eject with no > >> success > >> I using FreeBSD 7.3 with generic kernel here > > I've found solution: > > http://lists.freebsd.org/pipermail/freebsd-usb/2008-March/004677.html > > that 'upower' utility allows to suspend pendrive, and I get cache > > flushed (And LED goes off): > > upower /dev/usb0 2 suspend > > _______________________________________________ > > freebsd-usb@freebsd.org mailing list > > http://lists.freebsd.org/mailman/listinfo/freebsd-usb > > To unsubscribe, send any mail to > > "freebsd-usb-unsubscribe@freebsd.org" > > > To flush cache You can also use sync(8) > > > Stanislaw. Thank you for advice, Stanislaw I've just tried sync. Doesn't help yet.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120907003918.7620fb1e>