On Friday 07 Aug 2015 04:27:15 Fernando Rodriguez wrote:
> On Thursday, August 06, 2015 6:18:59 PM meino.cra...@gmx.de wrote:
> > Hi,
> > 
> > for my tablet PC I used a used 32GB FAT32 formatted SDcard. The
> > formatting was already done by the manufacturer.
> > Then I screwed it up and had to do the partioning and formatting
> > myself again. "No big deal", I thought -- and was wrong.
> > Yes, the "thing" I got could be read and written. But it was
> > DAMN slow in comparison to the original formatting.
> > 
> > I googled and found a description, which described exactly,
> > what I wanted: An optimal formatting for one big FAT32 partion.
> > I did it again ;) and: TADA! The speed was back.
> > LINK:http://zero1-st.blogspot.de/2012/05/formatting-fat32-volumes-larger-> 
> > > than.html
> > 
> > Now I need the something identical but explained in a way
> > that it can be successfully applied to any partion layout
> > and any SDcard size.
> > Currently the new SDcard has 64GB (yes, the tablet eats that size
> > well :) and needs at least two partions: One FAT32 and one ext4.
> > May be that I need a different layout later.
> > 
> > To what aspect and "logic" do I have to keep my eyes on, when
> > it comes partioning/formatting any SDcard size with any partion
> > layout and any filesystem?
> > 
> > Thank you very much in advance for any help!
> > Best regards,
> > Meino
> 
> I wrote a long reply to this and it appears to have been swallowed by
> /dev/null.
> 
> SD cards don't have 128K blocks. Except for the very early ones (standard
> capacity), they are divided in allocation units (AU) that are 1MB to 4MB
> for SDHC and even larger for SDXC. The only way to get that value is by
> reading a register in the card (so you can't do it in usermode on linux).
> 
> The AUs are divided into Recording Units (RUs). The size of these can be
> deduced from the card speed class (that's the number inside the C on the
> label), and the card capacity. For class 2 and 4 if the card is less than
> 1GB it's 16KB, otherwise it's 32KB. For class 6 it is 64KB, and for class
> 10 it's 512KB.
> 
> After an AU is erased you can write to any of the free RUs in any order in
> blocks of 512 bytes sequentially (the block size is configurable by the
> driver but 512 is the most common). But if you write to a nonfree RU then
> all non- free RU get copied to a new AU. So the performance hit depends on
> how many non-free RUs are in the AU when this happens.
> 
> So to get the best performance you need to align the first FAT cluster on
> an AU boundary and that the RUs used by the reserved sectors after the FAT
> are free. This is not so easy from usermode because you can't get the AU
> size and you can't erase the AU to make sure reserved sectors are free.
> The Windows 7 and later format utility will do it if you don't partition
> the card. The next best thing is to align it to an RU which should be
> pretty easy.
> 
> You could guess the AU size by writting blocks of RU size from the start of
> the card and timing it. Every time you hit the AU boundary there will be a
> longer delay.
> 
> For more details see the SD specification (chapter 4.13).
> 
> https://www.sdcard.org/downloads/pls/
> 
> They also have formatter tools for Windows and OSX. I tried the Windows
> version years ago but had problems with it (can't remember what).

Excellent information Fernando, thank you!

So there is no tool for me to use to read the AU/RU on the chip?

-- 
Regards,
Mick

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to