Thanks to everybody!
I've got informations about USB and wear leveling:
Commercial USB key are using 'BAD flash'!
Manufacturers may plug 8Gb in order to obtain a 4Gb usb key correct size (destructed sectors).
Wear leveling is flash managed over usb 'official' size.
This size is constructor dependant (choice) x mb to 100mb ?
More :
No guaraty is done for life time!
In fact, i can have some bad usb key witch have the problem.
That's why i'm looking for USB DOM (industrial usb). (more write number, write speed increased ...)
But i have an other problem:
When i write many data (200Mb program installation), i've got crc errors when checking after copy, (detected) or bad written file, even if crc tells no error. (very more on industrial than commercial usb key)
It is explained with the USB RAM buffer (bigger than the commercial USB because of speed).
--> When the usb key said "write finished ok", the RAM buffer is not empty, and writing not terminated.
Even if sync or umount is done : usb traffic is finished, not usb internal write.
Then, i'm looking to know how i can know when that's finished.
One possibility is to "eject" the usb device.
Is it possible on a disk partition ? (same result?)
But i don't remove usb key : is it possible to "insert a partition" ?
or ?
Thanks
Daniel.