Handle USB pendrives exposed as floppies.
* grub-core/boot/i386/pc/boot.S: Check LBA even on what appears to be floppy. * grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_open): Likewise. Check for partitions on all devices.
This commit is contained in:
parent
e35e46fce1
commit
671404469c
3 changed files with 11 additions and 6 deletions
|
@ -1,3 +1,12 @@
|
|||
2010-08-27 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
Handle USB pendrives exposed as floppies.
|
||||
|
||||
* grub-core/boot/i386/pc/boot.S: Check LBA even on what appears to be
|
||||
floppy.
|
||||
* grub-core/disk/i386/pc/biosdisk.c (grub_biosdisk_open): Likewise.
|
||||
Check for partitions on all devices.
|
||||
|
||||
2010-08-25 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/term/ieee1275/ofconsole.c (put): Correct prototype.
|
||||
|
|
|
@ -153,10 +153,6 @@ real_start:
|
|||
/* set %si to the disk address packet */
|
||||
movw $disk_address_packet, %si
|
||||
|
||||
/* do not probe LBA if the drive is a floppy */
|
||||
testb $GRUB_BOOT_MACHINE_BIOS_HD_FLAG, %dl
|
||||
jz LOCAL(chs_mode)
|
||||
|
||||
/* check if LBA is supported */
|
||||
movb $0x41, %ah
|
||||
movw $0x55aa, %bx
|
||||
|
|
|
@ -107,7 +107,7 @@ grub_biosdisk_open (const char *name, grub_disk_t disk)
|
|||
if (drive < 0)
|
||||
return grub_errno;
|
||||
|
||||
disk->has_partitions = ((drive & 0x80) && (drive != cd_drive));
|
||||
disk->has_partitions = 1;
|
||||
disk->id = drive;
|
||||
|
||||
data = (struct grub_biosdisk_data *) grub_zalloc (sizeof (*data));
|
||||
|
@ -123,7 +123,7 @@ grub_biosdisk_open (const char *name, grub_disk_t disk)
|
|||
/* TODO: get the correct size. */
|
||||
total_sectors = GRUB_DISK_SIZE_UNKNOWN;
|
||||
}
|
||||
else if (drive & 0x80)
|
||||
else
|
||||
{
|
||||
/* HDD */
|
||||
int version;
|
||||
|
|
Loading…
Reference in a new issue