Index: src/mkdosfs.c =================================================================== --- src/mkdosfs.c.orig +++ src/mkdosfs.c @@ -1763,10 +1763,11 @@ main (int argc, char **argv) * this is a MO disk I introduce a -I (ignore) switch. -Joey */ if (!ignore_full_disk && ( - (statbuf.st_rdev & 0xff3f) == 0x0300 || /* hda, hdb */ - (statbuf.st_rdev & 0xff0f) == 0x0800 || /* sd */ - (statbuf.st_rdev & 0xff3f) == 0x0d00 || /* xd */ - (statbuf.st_rdev & 0xff3f) == 0x1600 ) /* hdc, hdd */ + (statbuf.st_rdev & 0xfff3f) == 0x00300 || + (major(statbuf.st_rdev) == 3 && (minor(statbuf.st_rdev) % 64) == 0) || /* hda, hdb */ + (major(statbuf.st_rdev) == 8 && (minor(statbuf.st_rdev) % 16) == 0) || /* sd */ + (major(statbuf.st_rdev) == 13 && (minor(statbuf.st_rdev) % 64) == 0) || /* xd */ + (major(statbuf.st_rdev) == 22 && (minor(statbuf.st_rdev) % 64) == 0)) /* hdc, hdd */ ) die ("Device partition expected, not making filesystem on entire device '%s' (use -I to override)");