[syslinux] chain.c32 bug

Michal Soltys soltys at ziu.info
Mon Jan 7 15:32:29 PST 2013


On 2013-01-07 09:19, c c wrote:
> i`ve found a bug in chain.c32 in v4.06. When i use isolinux it does not run
> windows7 installation, chainloading bootmgr.
> the error is: Can't find myself on the drive I booted from.
> chain.c32 from syslinux 3.xx works like a charm!
> 

Did you use 'fs' as partition specification ? What were the options used ?

If you can compile, try this small patch (against 4.06), this will cover
whole disk as a candidate as well when fs_lba is considered:

diff --git a/com32/chain/chain.c b/com32/chain/chain.c
index 30153c4..b1a9ed8 100644
--- a/com32/chain/chain.c
+++ b/com32/chain/chain.c
@@ -353,10 +353,10 @@ int find_dp(struct part_iter **_iter)
 
 	/* 'fs' => we should lookup the syslinux partition number and use it */
 	if (!strcmp(opt.drivename, "fs")) {
-	    while (!pi_next(&iter)) {
+	    do {
 		if (iter->start_lba == fs_lba)
 		    break;
-	    }
+	    } while (!pi_next(&iter));
 	    /* broken part structure or other problems */
 	    if (iter->status) {
 		error("Can't find myself on the drive I booted from.\n");




More information about the Syslinux mailing list