diff --git a/mkbootimg/OLVASSEL.md b/mkbootimg/OLVASSEL.md index 266077a..30f9b85 100644 --- a/mkbootimg/OLVASSEL.md +++ b/mkbootimg/OLVASSEL.md @@ -114,7 +114,7 @@ Példa: A `file` és a `directory` kölcsönösen kizárja egymást. Mindkettő lehet sztring (ha csak egy architektúrához generálunk), vagy tömb (egy elem minden architektúrához). Jelenleg három támogatott, azaz minden tömb maximum három elemű lehet. Hogy melyik architektúrát jelenti, azt az dönti el, hogy a mabbában vagy lemezképben milyen architektúrájú kernel található. -A `type` típus csak `directory` esetén kötelező megadni. +A `type` típust csak `directory` esetén kötelező megadni. Példák: ``` @@ -141,7 +141,7 @@ fix "EFI System Partition" névvel. Ugyanezért a `size` méret megadása kötel Az első elem esetén a `type` lehetséges értékei: `boot` (vagy explicit `fat16` és `fat32`). Csak 8+3 fájlneveket generál. A parancs igyekszik kényelmesen kezelni ezt, ha lehet FAT16-ot választva, helytakarékosság miatt. A boot partíció -minimális mérete 16 Megabájt. Bár mind a lemezkép készítő, mind a BOOTBOOT betöltő képes lenne kezelni kissebb méretet, +minimális mérete 8 Megabájt. Bár mind a lemezkép készítő, mind a BOOTBOOT betöltő képes lenne kezelni kissebb méretet, néhány UEFI förmver helytelenül FAT12-nek hiszi, ha túl kevés kluszter van a fájlrendszeren. Ha a partíció mérete meghaladja a 128 Megabájtot, akkor automatikusan FAT32-t választ. Ha nem használsz `iso9660`-t, akkor kissebb méretű is lehet, de legalább 33 Megabájt (ez a FAT32 minimális mérete). Ugyanakkor `iso9660` használata esetén garantálni kell, hogy minden diff --git a/mkbootimg/README.md b/mkbootimg/README.md index 221c0f7..1fdeac2 100644 --- a/mkbootimg/README.md +++ b/mkbootimg/README.md @@ -140,7 +140,7 @@ for the first (boot) partition. For the first entry, valid values for `type` are: `boot` (or explicit `fat16` and `fat32`). Generates only 8+3 file names. The utility handles this comfortably, it tries to use FAT16 if possible to save storage space. There's a minimal size -for the boot partition, 16 Megabytes. Although both the image creator and BOOTBOOT is capable of handling smaller sizes, +for the boot partition, 8 Megabytes. Although both the image creator and BOOTBOOT is capable of handling smaller sizes, some UEFI firmware incorrectly assumes FAT12 when there are too few clusters on the file system. If the partition size is bigger than 128 Megabytes, then it automatically switches to FAT32. If you don't use `iso9660`, then you can also set FAT32 for smaller images, but at least 33 Megabytes (that's a hard lower limit for FAT32). With `iso9660`, each cluster must diff --git a/mkbootimg/esp.c b/mkbootimg/esp.c index efdeede..fc1166f 100644 --- a/mkbootimg/esp.c +++ b/mkbootimg/esp.c @@ -122,7 +122,7 @@ void esp_makepart() if(boot_size < i) boot_size = i; /* we must force 16M at least, because if FAT16 has too few clusters, some UEFI thinks it's FAT12... */ - if(boot_size < 16) boot_size = 16; + if(boot_size < 8) boot_size = 8; if(boot_fat == 16 && boot_size >= 128) boot_fat = 32; /* we must force 128M, because if FAT32 has too few clusters, some UEFI thinks it's FAT16... */ i = (iso9660 ? 128 : 33); diff --git a/mkbootimg/main.c b/mkbootimg/main.c index 4c53792..0dde95e 100644 --- a/mkbootimg/main.c +++ b/mkbootimg/main.c @@ -162,7 +162,7 @@ void parsejson(char *json) free(tmp); tmp = json_get(json, "partitions.0.size"); if(!tmp || !*tmp) { fprintf(stderr,"mkbootimg: %s\r\n",lang[ERR_NOPARTSIZE]); exit(1); } - boot_size = atoi(tmp); free(tmp); if(boot_size < 16) boot_size = 16; + boot_size = atoi(tmp); free(tmp); if(boot_size < 8) boot_size = 8; if(!diskguid.Data1) diskguid.Data1 = crc32(0,(uint8_t*)&t, sizeof(time_t)) ^ 0x08040201; if(!diskguid.Data2 && !diskguid.Data3) { ((uint32_t*)&diskguid)[1] = crc32(0,(uint8_t*)&diskguid.Data1, 4);