Silex::FatImage
Writer FAT12 pur Crystal.
Construit une image de système de fichiers FAT12 en mémoire, utilisable pour générer des seed disks cloud-init NoCloud (user-data, meta-data) sans outil externe.
Le plan disque suit la spécification Microsoft FAT (ECMA-107) :
+-------------------+
| Boot sector (BPB) | 1 secteur (512 o)
+-------------------+
| FAT #1 | sectors_per_fat
+-------------------+
| FAT #2 | sectors_per_fat (copie)
+-------------------+
| Root directory | root_dir_sectors (taille fixe)
+-------------------+
| Data area | clusters de sectors_per_cluster secteurs
+-------------------+
Les noms de fichiers longs (> 8.3) sont stockés via des entrées VFAT LFN
précédant l'entrée 8.3 classique. Indispensable pour que cloud-init lise
user-data et meta-data (9 caractères chacun, hors 8.3).
Constants
Attributs FAT.
Entrée de répertoire sur disque : toujours 32 octets (FAT ou VFAT).
Longueur max d'un nom de fichier. 255 = limite VFAT LFN.
Taille maximale : FAT12 ne gère que 4084 clusters utiles. Avec sectors_per_cluster = 1 et secteur 512 octets, ~2 Mo. Avec sectors_per_cluster = 8, ~16 Mo. Silex accepte jusqu'à 16 Mo.
Taille minimale acceptée (32 KB). En dessous, FAT12 n'a plus vraiment de sens et les implémentations divergent.
Taille d'un secteur en octets. FAT12 tolère 512, 1024, 2048, 4096 ; Silex s'en tient à 512 pour la simplicité et la compatibilité maximale.
Constructors
Crée une nouvelle image vide.
- size_bytes — taille totale de l'image (doit être multiple de 512).
- label — étiquette de volume (max 11 caractères ASCII, en majuscules
de préférence).
"CIDATA"pour cloud-init NoCloud.
Instance methods
Ajoute un fichier. Le contenu peut être une String ou des Bytes.