Deux problèmes. Premier point: comment partitionner le lecteur flash?
Je n’aurais pas besoin de le faire, mais je ne suis plus sûr que ma partition est correctement alignée, car j’ai été forcée de supprimer et de créer une nouvelle table de partitions après que gparted se soit plaint lorsque j’ai essayé de formater le lecteur de FAT à ext4.
La réponse naïve consisterait à dire "utilisez simplement les paramètres par défaut et tout ira bien". Cependant, si vous lisez les liens suivants, vous saurez que les choses ne sont pas si simples: https://lwn.net/Articles/428584/ et http://linux-howto-guide.blogspot.com/2009/10/increase- usb-flash-drive-write-speed.html
Il y a aussi la question des cylindres, des têtes et des secteurs. Actuellement, je reçois ceci:
$sfdisk -l -uM /dev/sdd
Disk /dev/sdd: 30147 cylinders, 64 heads, 32 sectors/track
Warning: The partition table looks like it was made
for C/H/S=*/255/63 (instead of 30147/64/32).
For this listing I'll assume that geometry.
Units = mebibytes of 1048576 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End MiB #blocks Id System
/dev/sdd1 1 30146 30146 30869504 83 Linux
$fdisk -l /dev/sdd
Disk /dev/sdd: 31.6 GB, 31611420672 bytes
255 heads, 63 sectors/track, 3843 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00010c28
Donc, d’après mes connaissances actuelles, je devrais aligner les partitions à 4 Mio (c’est actuellement à 1 Mio). Mais je ne sais toujours pas comment définir correctement les têtes et les secteurs pour mon appareil.
Deuxième problème: le système de fichiers.
D'après les références que j'ai vues, ext4 fournit les meilleures performances, mais il existe un problème de nivellement par l'usure. Comment savoir si mon microcontrôleur Transcend JetFlash 700 assure le nivellement d'usure? Ou vais-je simplement tuer mon lecteur plus rapidement?
J'ai lu de nombreux articles sur le Web disant: ne vous inquiétez pas, les nouveaux lecteurs s'en chargent déjà. Mais je n’ai jamais vu la moindre preuve de cela et, à un moment donné, les gens commencent à mélanger la technologie SSD avec la technologie des clés USB. L'option sûre serait d'aller pour ext2, cependant une série de tests que j'ai effectués a montré une performance horrible !!!
Ces valeurs proviennent d'un scénario réel et non d'un test de synthèse:
42 files: 3,429,415,284 bytes copied to flash drive
original fat32: 15.1 MiB/s
ext4 after new partition table: 10.2 MiB/s
ext2 after new partition table: 1.9 MiB/s
S'il vous plaît lire les liens que j'ai posté ci-dessus avant de répondre. Je serais également intéressé par les réponses accompagnées de références car beaucoup de choses sont dites et redites, mais il manque alors des faits.
Merci pour l'aide.
Réponses:
Ne vous inquiétez pas des cylindres, des têtes et des secteurs et travaillez uniquement avec les secteurs. Le moyen le plus simple d’aligner le système de fichiers est simplement de ne pas avoir de table de partition (c’est-à-dire de créer
/dev/sdX
directement le système de fichiers ). La plupart des systèmes Linux gèrent cela très bien, mais Windows va paniquer et vous ne pourrez pas le rendre amorçable. Si vous avez besoin d'une table de partition, déterminez combien de secteurs de 512 octets constituent un bloc d'effacement. Les blocs d'effacement se situent autour de 128-512 Ko, donc si vous ne pouvez pas savoir ce que votre clé USB utilise, utilisez 1024 secteurs. Assurez-vous que les partitions commencent sur un multiple de ce nombre.Vous souhaitez également informer ext2 / 3/4 de la taille du bloc d'effacement afin d'éviter toute modification inutile des blocs. Définissez les deux
stride
etstripe-width
le nombre de blocs du système de fichiers qui constituent un bloc d'effacement. Pour travailler sur un bloc d'effacement de 512 Ko, utilisez ce qui suit:En termes de performances, le fait de ne pas avoir de journal devrait améliorer les performances (mais augmenter le risque de corruption des données si le fonctionnement est interrompu). Cependant, les extensions de ext4 devraient améliorer les performances car moins de métadonnées doivent être modifiées pour les fichiers volumineux. J'utiliserais probablement ext4 avec le journal désactivé:
la source
cat /proc/mtd
pour connaître la taille des blocs d'effacement pour les périphériques flash connectés.De nos jours, la plupart des outils de partitionnement et de création de système de fichiers Linux utilisent par défaut des valeurs qui alignent les données sur des limites de 4 Ko et utilisent même la taille de bloc sous-jacente si le disque l'expose, de sorte que les choses ne sont pas aussi mauvaises que dans l'article de LWN:
TLDR; Lorsque vous utilisez une distribution Linux moderne (par exemple 2013 ou ultérieure) avec des versions récentes d'outils pour créer vos partitions et vos systèmes de fichiers, un meilleur alignement (mais pas parfait) se produira automatiquement. Faites également attention - les meilleures valeurs pour une carte SD peuvent être différentes de celles d’une clé USB (je crois que votre Transcend JetFlash est une clé USB et non une carte SD). Il vous faudrait comparer pour déduire la vraie taille de bloc d'effacement sous-jacente sur du flash bon marché ...
la source
En outre, dans votre fstab, veillez à utiliser l'option de montage "noatime" pour éviter les écritures inutiles à chaque accès au fichier.
la source