O Windows assume que há 1024 bytes em uma unidade Kilobyte e 1024 Kilobytes em uma unidade Megabyte. Enquanto o Ubuntu assume, um 1000 bytes constituem uma unidade Kilobyte (KB), 1000 Kilobytes para um Megabyte (MB) e assim por diante.
O Windows está usando o "prefixo binário" e o Ubuntu ou o GNU / Linux o está usando em sua espuma "adequada".
O IEC e o NIST foram padronizados e mudaram os símbolos para…
Em uso, produtos e conceitos tipicamente descritos usando poderes de 1024 continuaria a ser, mas com os novos prefixos IEC.
Por exemplo, um módulo de memória de 536870912 bytes (512 × 1048576) seria referido como 512 MiB ou 512 mebibytes em vez de 512 MB ou 512 megabytes. Por outro lado, como os discos rígidos têm sido historicamente comercializado usando a convenção da SI que “giga” significa 1000000000, um “500 GB ”disco rígido ainda seria rotulado como tal.
De acordo com essas recomendações, sistemas operacionais e outros O software também usaria os prefixos binário e SI da mesma maneira, comprador de um disco rígido de “500 GB” encontraria o sistema operacional reportando “500 GB” ou “466 GiB”, enquanto 536870912 bytes de RAM seria exibido como "512 MiB". wikipedia
Então, para responder sua primeira pergunta, use o tamanho que é baseado no fato de que um MB é de 1024 KB. Quanto à segunda questão, não estou ciente de tal ferramenta.