|
推荐
楼主 |
发表于 2014-9-16 16:30:47
|
只看该作者
LOCALBOOT
Certain models of computers, sometimes specific to BIOS and BIOS extension versions, do not work well with at least certain (but sometimes all) LOCALBOOT options (as of v3.70, available in all variants however PXELINUX interprets the option differently). As a workaround, use chain.c32 like this:
LABEL localboot
MENU LABEL Boot from first hard drive
COM32 chain.c32
APPEND hd0
This is also equivalent to the command line "chain.c32 hd0". Omitting the partition number (as in these examples), implies partition number 0 (MBR).
LOCALBOOT on HP ProLiant servers
The LOCALBOOT option doesn't work reliably on G5 and older HP ProLiant servers because of BIOS defect QXCR1001064253.
LOCALBOOT on Dell Latitude E6400
The E6400 with BIOS A14, A25, A27, and A28 (probably all) has an issue with using "LOCALBOOT 0" from PXELINUX. "LOCALBOOT -1" in PXELINUX is known to work. This issue probably also affects the E6500 and possibly the E5500, E5400, Precision M4400 and M6400 as in the past model selections like these from the same generation share a lot of their BIOS code.
LOCALBOOT on Dell Latitude E6410
This is currently under discussion with Dell. Currently, when using LOCALBOOT on a Dell Latitude E6410 with BIOS revisions A04 and A07, different results will occur. -1 results in a reboot. 0 results in a hang. This issue probably also affects the E6510 and possibly the E5510, E5410, Precision M4500 and M6500 as in the past model selections like these from the same generation share a lot of their BIOS code.
LOCALBOOT on Dell PowerEdge c6220
'LOCALBOOT 0' will hang or reboot the machine. This was tested with 4.04, 4.06-pre14, 4.10-pre17 and 4.10-pre22 (all with BIOS version 1.0.28 A02) The chain.c32 workaround will work properly, or you can install the patch from this post: http://www.syslinux.org/archives/2012-July/017880.html
based on commit 0a0e0e41cad93cd16c323cf16f40264a21eedd6c of the git.kernel.org/pub/scm/boot/syslinux/syslinux.git repository.
diff --git a/core/pxelinux.asm b/core/pxelinux.asm
index e8818a6..27dc595 100644
--- a/core/pxelinux.asm
+++ b/core/pxelinux.asm
@@ -132,6 +132,13 @@ _start1:
mov ds,ax
mov es,ax
+ ; Copy chunk of memory used by Dell BIOS on OptiPlex 790s
+ ; Allows control to return to PXE Boot Agent for localboot
+ mov esi,47cch
+ mov edi,DellBIOSChunk
+ mov ecx,13
+ rep movsd
+
%if 0 ; debugging code only... not intended for production use
; Clobber the stack segment, to test for specific pathologies
mov di,STACK_BASE
@@ -289,6 +296,14 @@ local_boot:
; Restore the environment we were called with
pm_call reset_pxe
call cleanup_hardware
+
+ ; Copy Dell BIOS chunk back into place
+ cld
+ mov esi,DellBIOSChunk
+ mov edi,47cch
+ mov ecx,13
+ rep movsd
+
lss sp,[InitStack]
pop gs
pop fs
@@ -564,3 +579,6 @@ IPInfo:
.ServerIP resd 1
.GatewayIP resd 1
.Netmask resd 1
+
+ section .earlybss
+DellBIOSChunk resd 13 ; 52 bytes to store Dell BIOS chunk
LOCALBOOT on IBM x3850 X5
The LOCALBOOT cannot work properly on IBM x3850 X5 server. The solution is users have to update the uEFI firmware with the latest version 1.32 then using chain.c32 module and following syntax to boot up the first hard drive:
LABEL localboot
MENU LABEL Boot from first hard drive
COM32 chain.c32
APPEND hd0 0
|
|