On Fri, Jul 17, 2009 at 06:41:59PM +0200, Vladimir 'phcoder' Serbinenko wrote: > Sometimes a media that can be partioned isn't really partioned. E.g. > usb sticks. This is a patch to handle this situation. Unfortunately > such medium is often formated with a flavour of FAT which shares its > signature with MBR so it may be easily misidentified as > pc_partition_table. Furthermore the same signature is shared with > bootsectors including grub. One possibility is to try interpret disk > as known filesystems and see if we succeed. But the problem is that > the check for FAT are light and may result in false positives too. The > only more or less advanced check there is a check for FATXX string. > But I was about to propose to eliminate this check since I encountered > a FAT filesystem without this string on friend's SD card formatted > with symbian which he wanted to use as liveusb. Does anyone has a > better idea?
When checking for an MBR filesystem label, parted checks whether each of partitions 1-4 has a boot indicator that's either 0 or 0x80, since as you point out checking for the FAT signature suffers false positives; I believe this algorithm matches that in the Linux kernel. Look at libparted/labels/dos.c:msdos_probe(), which is already FSF-copyrighted and GPLv3+. GRUB should use the same algorithm, and then the worst case is that things will fail consistently. -- Colin Watson [cjwat...@ubuntu.com] _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel