Index: trunk/i386/libsaio/sys.c =================================================================== --- trunk/i386/libsaio/sys.c (revision 1136) +++ trunk/i386/libsaio/sys.c (revision 1137) @@ -78,6 +78,8 @@ extern int multiboot_partition; extern int multiboot_partition_set; +extern int multiboot_skip_partition; +extern int multiboot_skip_partition_set; struct devsw { const char * name; @@ -842,6 +844,9 @@ */ for ( bvr = chain; bvr; bvr = bvr->next ) { + if (multiboot_skip_partition_set) { + if (bvr->part_no == multiboot_skip_partition) continue; + } if ( bvr->flags & kBVFlagPrimary && bvr->biosdev == gBIOSDev ) foundPrimary = true; // zhell -- Undo a regression that was introduced from r491 to 492. // if gBIOSBootVolume is set already, no change is required Index: trunk/i386/boot2/mboot.c =================================================================== --- trunk/i386/boot2/mboot.c (revision 1136) +++ trunk/i386/boot2/mboot.c (revision 1137) @@ -12,6 +12,8 @@ int multiboot_timeout_set=0; int multiboot_partition=0; int multiboot_partition_set=0; +int multiboot_skip_partition=0; +int multiboot_skip_partition_set=0; // Global multiboot info, if using multiboot. struct multiboot_info *gMI; @@ -414,10 +416,21 @@ int intVal = strtol(val, &endptr, 0); if(*val != '\0' && (*endptr == '\0' || *endptr == ' ' || *endptr == '\t')) { - printf("Default partition overridden to %d with timeout=%s\n", intVal, val); + printf("Default partition overridden to %d with partno=%s\n", intVal, val); multiboot_partition = intVal; multiboot_partition_set = 1; } + } + if(getValueForBootKey(mi->mi_cmdline, "skip_partno", &val, &size)) + { + char *endptr; + int intVal = strtol(val, &endptr, 0); + if(*val != '\0' && (*endptr == '\0' || *endptr == ' ' || *endptr == '\t')) + { + printf("Skipping partition %d with skip_partno=%s\n", intVal, val); + multiboot_skip_partition = intVal; + multiboot_skip_partition_set = 1; + } } } if(doSelectDevice)