Apparently, fsck wants to run fsck.vfat (which I do not have installed) when I ask it to check an ext3 filesystem (on a USB disk). Here is the evidence: :-) demokrit root # fsck -t ext3 /dev/sda1 fsck 1.35 (28-Feb-2004) fsck: fsck.vfat: not found fsck: Error 2 while executing fsck.vfat for /dev/sda1 demokrit root # fdisk -l /dev/sda Disk /dev/sda: 163.9 GB, 163928605184 bytes 255 heads, 63 sectors/track, 19929 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 1 15752 126527908+ 83 Linux /dev/sda2 * 15753 19929 33551752+ 6 FAT16 demokrit root # mount /mnt/usb_backup/ demokrit root # mount /dev/hda2 on / type jfs (rw,noatime) none on /dev type devfs (rw) none on /proc type proc (rw) none on /sys type sysfs (rw) none on /dev/pts type devpts (rw) /dev/hda5 on /usr/portage type reiserfs (rw,noatime) none on /dev/shm type tmpfs (rw) none on /var/tmp/portage type tmpfs (rw,size=1000000000) none on /proc/bus/usb type usbfs (rw) automount(pid7767) on /fysik type autofs (rw,fd=4,pgrp=7767,minproto=2,maxproto=4) /dev/sda1 on /mnt/usb_backup type ext3 (rw,noexec,nosuid,nodev) Reproducible: Always Steps to Reproduce: 1. fsck -t ext3 /dev/sda1 2. 3. Actual Results: It complains that fsck.vfat is not there. Expected Results: run fsck.ext3 demokrit root # emerge info Portage 2.0.51-r15 (default-linux/x86/2004.3, gcc-3.3.5, glibc-2.3.4.20040808-r1, 2.6.10 i686) ================================================================= System uname: 2.6.10 i686 Mobile Intel(R) Pentium(R) 4 - M CPU 2.00GHz Gentoo Base System version 1.4.16 Python: dev-lang/python-2.3.4 [2.3.4 (#1, Oct 19 2004, 17:47:22)] dev-lang/python: 2.3.4 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.4 sys-devel/binutils: 2.15.92.0.2-r1 sys-devel/libtool: 1.5.10-r4 virtual/os-headers: 2.6.8.1-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O2 -march=pentium4 -fomit-frame-pointer -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -march=pentium4 -fomit-frame-pointer -pipe" DISTDIR="/var/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms" GENTOO_MIRRORS="http://trumpetti.atm.tut.fi/gentoo/ ftp://trumpetti.atm.tut.fi/gentoo/ ftp://ftp.rhnet.is/pub/gentoo/ ftp://gd.tuwien.ac.at/opsys/linux/gentoo/" MAKEOPTS="-j2" PKGDIR="/var/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="x86 X Xaw3d acpi alsa arts atlas avi berkdb bitmap-fonts cdr crypt cups dga dvd emacs encode fam flac font-server foomaticdb fortran gdbm gif gpm gtk gtk2imagemagick imap imlib java jpeg kde libg++ libwww mad maildir mbox mikmod mimemotif mozilla mpeg mule ncurses netcdf nls nptl oggvobis oggvorbis opengl oss pam pcmcia pdflib perl png pnp ppds python qt quicktime readline scanner sdl slang smime spell sse ssl svga tcltk tcpd tetex tiff truetype truetype-fonts trustedtype1-fonts usb wxwindows xml2 xmms xv xvid zlib linguas_dk" Unset: ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS
*** Bug 81239 has been marked as a duplicate of this bug. ***
does it work with e2fsprogs-1.38 ?
Unfortunately, yes: # fsck -t ext3 /dev/sda1 fsck 1.38 (30-Jun-2005) fsck: fsck.vfat: not found fsck: Error 2 while executing fsck.vfat for /dev/sda1 # e2fsck /dev/sda1 e2fsck 1.38 (30-Jun-2005) LinuxBackup: clean, 1603786/15826944 files, 21780668/31631977 blocks I just reread the man page of fsck[*], and the -t option does not specify the type of the file system, but limits fsck to only check file systems of this type. fsck gets the file system type from /etc/fstab, if no line is found in fstab it uses -t to guess the type of the filesystem. In my case I have these two lines in my /etc/fstab, the first for my USB memory stick, the second for the external harddisk I use for backup: /dev/sda1 /mnt/usb vfat noauto,user,sync 0 0 LABEL=LinuxBackup /mnt/usb_backup ext3 noauto,user 0 0 But still, fsck should not call fsck.vfat, as the -t ext3 should prevent it from testing a vfat file system. /Jakob [*] Quoting the man page: Normally, the filesystem type is deduced by searching for filesys in the /etc/fstab file and using the corresponding entry. If the type can not be deduced, and there is only a single filesystem given as an argument to the -t option, fsck will use the specified filesystem type. If this type is not available, then the default file system type (currently ext2) is used.
well the manpage actually indicates that the behavior you're seeing is correct ... it says it will use the /etc/fstab value and *only* if nothing can be found in /etc/fstab to match the request will -t be honored ...
Yep, after rereading the man page, I am forced to agree. It is broken as designed. :-)