Não é exatamente uma maneira de reorganizar os blocos do sistema de arquivos, mas…
Você quer ter os arquivos na RAM e disse nos comentários que você já havia experimentado o ramdisk. Podemos melhorar essa abordagem.
Minha idéia é ler arquivos não diretamente de um sistema de arquivos como ext4
, mas de um arquivo .tar
. Você criaria esse arquivo uma vez, colocaria em ext4
filesystem e desfragmentaria com e4defrag
. Então a cada inicialização
cd /mnt/target_tmpfs/ && tar -xf /mnt/ext4/defragmented_archive.tar
Eu não acho que tar
irá procurar em um determinado arquivo, buscar para frente e para trás. Mas se você acha que sim, então você sempre pode usar cat … | tar -x
. Nesse caso, tar
só pode ler sua entrada de maneira contínua e no máximo uma vez.
Estou ciente de que você não pode facilmente carregar todo o sistema operacional dessa maneira, a menos que você possa preparar initramfs
para fazer isso. Não sei muito sobre isso, mas descobri isso: Initramfs personalizados . De lá:
Here are some examples of what you can do with
initramfs
:
- Mount the root partition (for encrypted, logical, and otherwise special partitions);
- […]
Veja scripts de exemplo lá . Montando ext4
, então tmpfs
e preenchendo-o de .tar
, então usando isso como /
- tudo parece possível em geral.
Obviamente, você gostaria que seu custom-initramfs.cpio.gz
fosse desfragmentado, assim como o arquivo .tar
.