libblkid: remove workaround for FAT+MBR on whole-disk
The current libblkid ignores FAT when created on the same whole-disk device as valid MBR. This restriction is not compatible with many devices (like USB flash disk) created by Windows or the latest dosfstools where the first partition is used for entire device and where is also valid FAT. The filesystem is accessible from partition as well as from whole-disk device. The conclusion (between util-linux, dosfstools and udisks) is that libblkid has to provide all details, not hide anything and the proper policy (hide/show) has to be implemented by udisks (or so). CC: Tomáš Bžatek <tbzatek@redhat.com> CC: Pali Rohár <pali.rohar@gmail.com> Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
parent
33ef6ce910
commit
751eca28fc
|
@ -250,24 +250,6 @@ static int fat_valid_superblock(blkid_probe pr,
|
|||
if (cluster_count)
|
||||
*cluster_count = __cluster_count;
|
||||
|
||||
if (blkid_probe_is_wholedisk(pr)) {
|
||||
/* OK, seems like FAT, but it's possible that we found boot
|
||||
* sector with crazy FAT-like stuff (magic strings, media,
|
||||
* etc..) before MBR. Let's make sure that there is no MBR with
|
||||
* usable partition. */
|
||||
unsigned char *buf = (unsigned char *) ms;
|
||||
|
||||
if (mbr_is_valid_magic(buf)) {
|
||||
struct dos_partition *p0 = mbr_get_partition(buf, 0);
|
||||
|
||||
if (dos_partition_get_size(p0) != 0 &&
|
||||
(p0->boot_ind == 0 || p0->boot_ind == 0x80)) {
|
||||
DBG(LOWPROBE, ul_debug("\tMBR detected"));
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (blkid_probe_is_bitlocker(pr))
|
||||
return 0;
|
||||
|
||||
|
|
|
@ -1,42 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
#
|
||||
# Copyright (C) 2015 Karel Zak <kzak@redhat.com>
|
||||
#
|
||||
# This file is part of util-linux.
|
||||
#
|
||||
# This file is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This file is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
|
||||
TS_TOPDIR="${0%/*}/../.."
|
||||
TS_DESC="mbr-wholedisk"
|
||||
|
||||
. $TS_TOPDIR/functions.sh
|
||||
|
||||
ts_init "$*"
|
||||
|
||||
ts_check_test_command "$TS_CMD_BLKID"
|
||||
|
||||
ts_skip_nonroot
|
||||
|
||||
# set global variable TS_DEVICE
|
||||
ts_scsi_debug_init dev_size_mb=50
|
||||
|
||||
#
|
||||
# This looks like VFAT, but it's MBR
|
||||
#
|
||||
ts_init_subtest "fake-vfat"
|
||||
dd if=${TS_SELF}/mbr-wholedisk-vfat.img of=${TS_DEVICE} &> /dev/null
|
||||
udevadm settle
|
||||
$TS_CMD_BLKID -p -o udev ${TS_DEVICE} >> $TS_OUTPUT
|
||||
ts_finalize_subtest
|
||||
|
||||
ts_finalize
|
Binary file not shown.
Loading…
Reference in New Issue