diff -pruN e2fsprogs-1.41.14.orig/misc/fsck.c e2fsprogs-1.41.14/misc/fsck.c --- e2fsprogs-1.41.14.orig/misc/fsck.c 2009-08-13 05:39:57 +0400 +++ e2fsprogs-1.41.14/misc/fsck.c 2012-09-12 15:16:41 +0400 @@ -273,6 +273,7 @@ static int parse_fstab_line(char *line, { char *dev, *device, *mntpnt, *type, *opts, *freq, *passno, *cp; struct fs_info *fs; + struct stat devstat; *ret_fs = 0; strip_line(line); @@ -297,6 +298,11 @@ static int parse_fstab_line(char *line, parse_escape(freq); parse_escape(passno); + if ((*device == '/') /* if device looks like a path name */ + && (stat(device,&devstat) /* but either doesn't exist */ + || !S_ISBLK(devstat.st_mode))) /* or is not a block device */ + return 0; /* then skip it */ + dev = blkid_get_devname(cache, device, NULL); if (dev) device = dev;