When I freshly installed Oracle Linux 7 and opened /proc/filesystems, I only saw xfs. But there was still mkfs commands for ext filesystems. So I created a block device, used the mkfs command to make it ext4, and then mounted it. Mount worked, and I checked /proc/filesystems to see ext4 added. Quite bizzare to me. I don't understand why it isn't in /proc/filesystems in the first place. Is there a typical way to enable filesystems onto /proc/filesystems?

  • Presumably the corresponding module was not yet loaded. – muru Feb 15 '17 at 3:14

Just like hardware drivers, filesystems are available as kernel modules. And just like hardware drivers, they can be automatically loaded on demand. When you attempted the mount, the module was automatically loaded so you didn't have to modprobe it manually.

If you run lsmod you'll find the ext4 driver in there. If you unmount the filesystem, you can rmmod the module, lsmod again to see it's gone, then mount and lsmod and it'll be back. And whenever that module is loaded, it will contribute to the contents of /proc/filesystems.

| improve this answer | |
  • ok then say that I want to load a different file system, for example fuse. Then, do I do that using modprobe? – CuriousKimchi Feb 15 '17 at 4:29
  • FUSE is a special case. From the kernel's point of view it's a filesystem driver like ext4 or xfs, but really it's a bridge to several different filesystems implemented in userspace, like ntfs-3g. Normally you'd just issue a mount -t ntfs-3g command and the necessary modules would load automatically. If you need to do it manually for some reason, modprobe fuse should work (assuming it's included in the Oracle Linux build - I'm not actually familiar with that distribution) – user41515 Feb 15 '17 at 13:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.