diff -u lilo-22.5.9/boot.c lilo-new/boot.c --- lilo-22.5.9/boot.c 2003-11-25 00:31:24.000000000 -0500 +++ lilo-new/boot.c 2004-12-09 00:34:31.000000000 -0500 @@ -74,6 +74,8 @@ printf("Setup length is %d sector%s.\n",setup,setup == 1 ? "" : "s"); if (setup > MAX_SETUPSECS) die("Setup length exceeds %d maximum; kernel setup will overwrite boot loader", MAX_SETUPSECS); + initrd=cfg_get_strg(cf_kernel,"length"); + if(initrd) st.st_size=to_number(initrd); map_add(&geo,0,(st.st_size+SECTOR_SIZE-1)/SECTOR_SIZE); sectors = map_end_section(&descr->start,setup+SPECIAL_SECTORS+SPECIAL_BOOTSECT); if (!modern_kernel || !(hdr.flags & LFLAG_HIGH)) diff -u lilo-22.5.9/cfg.c lilo-new/cfg.c --- lilo-22.5.9/cfg.c 2003-11-25 14:03:29.000000000 -0500 +++ lilo-new/cfg.c 2004-12-09 00:27:24.000000000 -0500 @@ -143,6 +143,7 @@ { cft_flag, "read-write", NULL, NULL,NULL }, { cft_strg, "root", NULL, NULL,NULL }, { cft_strg, "vga", NULL, NULL,NULL }, + { cft_strg, "length", NULL, NULL,NULL }, { cft_link, NULL, &cf_all, NULL,NULL }}; CONFIG cf_image[] = {