+2005-03-15 Yoshinori K. Okuji <okuji@enbug.org>
+
+ * stage2/fsys_fat.c (fat_mount): Ignore the 3rd bit of a media
+ descriptor, because some BIOSes overwrite this value, according
+ to the storage mode (e.g. USB Floppy or USB HDD).
+
2005-02-16 Yoshinori K. Okuji <okuji@enbug.org>
* grub/asmstub.c (grub_stage2): Remove the attribute `volatile'
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.23.
-.TH GRUB "8" "February 2005" "grub (GNU GRUB 0.96)" FSF
+.TH GRUB "8" "March 2005" "grub (GNU GRUB 0.96)" FSF
.SH NAME
grub \- the grub shell
.SH SYNOPSIS
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.23.
-.TH MBCHK "1" "February 2005" "mbchk (GNU GRUB 0.96)" FSF
+.TH MBCHK "1" "March 2005" "mbchk (GNU GRUB 0.96)" FSF
.SH NAME
mbchk \- check the format of a Multiboot kernel
.SH SYNOPSIS
/*
* GRUB -- GRand Unified Bootloader
- * Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+ * Copyright (C) 2000,2001,2005 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
FAT_SUPER->clust_eof_marker = 0xff8;
}
}
-
-
+
/* Now do some sanity checks */
if (FAT_CVT_U16(bpb.bytes_per_sect) != (1 << FAT_SUPER->sectsize_bits)
magic = 0x0f00;
}
- if (first_fat != (magic | bpb.media))
+ /* Ignore the 3rd bit, because some BIOSes assigns 0xF0 to the media
+ descriptor, even if it is a so-called superfloppy (e.g. an USB key).
+ The check may be too strict for this kind of stupid BIOSes, as
+ they overwrite the media descriptor. */
+ if ((first_fat | 0x8) != (magic | bpb.media | 0x8))
return 0;
FAT_SUPER->cached_fat = - 2 * FAT_CACHE_SIZE;