[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: BIOS Can Not Find Disk



Hi,

Dan Norton wrote:
> OK, the syslinux and syslinux-efi packages are now installed

SYSLINUX and GRUB are competitors (with GRUB winning the race on hard disk
but lagging behind on ISO 9660 for old BIOS).
I mentioned the SYSLINUX file "mbr.bin" (source: mbr.S) only to
substantiate my statement about the boot flag, the MBR and the (old) BIOS.

So i expect that you only need GRUB packages to solve your problem.
But i also expect that the boot flag will not play any role if you
strive for a normal GRUB installation.


> I'm studying man grub-install to see how to get the right mbr installed. It
> appears to be in /usr/lib/SYSLINUX-EFI/efi64. It is called syslinux.efi. 

That's quite some mix-up.

The Master Boot Record is in the first 512-byte block of a disk. It may
contain up to 446 bytes of 16-bit x86 machine code and 4 MBR partition
table entries.
The x86 machine code is started by old BIOS as first stage of the custom
boot process. It can do what its programmers wants. Normally it locates
and starts a bigger x86 program.
The MBR partition table is of no interest for old BIOS. (But as said,
the MBR code might read the table and choose a partition if its programmer
wanted it to do so.)

As successor of old BIOS there is the (U)EFI firmware. Usually it has a
Legacy BIOS emulation mode which causes the MBR program to be started.
But in its native EFI mode it looks at the MBR partition table.

If there is only one partition entry which has type 0xee and starts at
block 1 (i.e. 1 block after the MBR block 0), then there is a GUID Partition
Table (GPT). The MBR is then called "Protective MBR" because it protects
the GPT from old unaware partition editors.
EFI will then look in this GPT for the EFI System Partition and in there
for the programs /EFI/BOOT/BOOTX64.EFI or /EFI/BOOT/BOOTIA32.EFI.
You have GPT but no EFI System Partition.

If the MBR partition table bears a partition of type 0xef, then EFI will
accept it as EFI System Partition and look for the files.
You have a Protective MBR and thus no partition of type 0xef.

If no EFI System Partition is advertised bei GPT or MBR partition table
then EFI will not consider the disk for booting.

The file "syslinux.efi" in the "efi64" directory of SYSLINUX is a
program which may serve as /EFI/BOOT/BOOTX64.EFI in the EFI System Partition.
See http://www.syslinux.org/wiki/index.php?title=Install#UEFI


Since your disk has no EFI System Partition, consider to try this:

If your machine has EFI firmware, then check whether it is set to use
"Legacy BIOS" or something with similar meaning. If not, then try to
enable this legacy emulation. Maybe the MBR code on the disk knows how to
start booting the system on the disk.


Have a nice day :)

Thomas


Reply to: