A serious candidate for the LFCE exam is likely to be comfortable with this competency. Managing file systems is central to the work of system administration, and it should be well-worn ground. Of course, like any frequently walked path, details can become overlooked to the point of forgetting, so it’s worth going through the related manual pages and running through exercises on a regular basis, and certainly before the examination. One should avoid the danger of being lulled to forgetfulness out of familiarity.
Creating file systems is probably the most complex of the portions of this competency, as the considerations to be made during file system creation can be as broad and deep as the administrator desires. Fortunately, it’s very well documented. Acquiring a thorough appreciation of and familiarity with the mkfs.*(8) manual pages (see the mkfs(8) for a nice list of the available file-system-specific commands such as mkfs.ext4, mkfs.xfs, etc.) is an invaluable foundation for one’s comfort with this competency. Each file system’s associated creation utility deserves a good read.
My post Striped Logical Volume Design and Construction: Block Stacking for Fun and Profit is a walk-through of my design for a striped logical volume spanning two 7200 RPM 1 TB drives for performance adequate to run three virtual machines simultaneously. In it, one can find examples of the sorts of considerations to be made during the creation of a file system and the relationships those considerations have with logical volume manager and the management of block devices. One should know the general composition of file systems and understand concepts such as inodes, blocks, clusters, fragments, stripes, strides, superblocks, journals, etc. I recommend UNIX Filesystems: Evolution, Design, and Implementation as a great introduction to the technical depth available for study. Comprehension of the structure and principles at play in the design and implementation of file systems is necessary for an IT professional operating as an engineer. Knowing how to optimize file systems for a variety of uses (databases, virtual machines, media, etc.) depends on this comprehension. Reading the manual pages after the above-mentioned text is a lot easier and far more interesting when this understanding is already in place. The proper use of one’s tools is often demystified as the depth of one’s understanding increases.
This is a fun technology to understand, too, since truly measurable performance improvements are observable during everyday operations. Everyone who has upgraded a 5400 RPM disk to a solid state disk should be aware of the importance of disk I/O to the performance of a machine, and optimization of one’s file systems and associated logical and physical volumes can bring about impressive performance gains and administrative elegance. As proof, I offer my post linked above – a cheap and easy solution to a performance need which will be common to those interested in the use of cheap, common hardware to perform complex modern administrative tasks.
Basic mounting and unmounting file systems is about as standard-issue as UNIX and GNU/Linux administration gets. The mount command and its related mount.cifs, mount.nfs, etc., yield up lengthy manual pages with a wide range of powerful options. These options are heavily related to the structure and features of the associated file systems, so studying mount options and procedures logically follows the study of file system creation. At the very least, one should be familiar with the structure and content of the mount(8) manual page.
Though technically outside of the scope of this competency as defined, one should certainly be comfortable with the Logical Volume Manager and disk partition utilities such as fdisk and cfdisk. It’s possible that the competency is worded very deliberately and the examination will provide you with a nicely partitioned block device or the already-created logical volume for your use, but I would expect to have to be capable of starting with a completely unformatted block device and ending with a nicely designed file system, perhaps in a logical volume arrangement.
For added comfort, ensure you’re familiar with commands such as resize2fs and xfs_growfs in case you are asked to increase or decrease the size of a file system. Make sure you thoroughly understand the relationship between logical volumes and file systems so that you don’t wind up doing something silly like extending a logical volume without extending the file system it hosts.
- Manual pages
- mkfs(8) and related file-system-specific commands (mkfs.xfs, mkfs.ext4, etc.)
- UNIX Filesystems: Evolution, Design, and Implementation
- The Linux Bible, 8th Edition
- Chapter 12: Managing Disks and Filesystems
- See the manual pages listed above
- General permutations:
- Create a file system of a given type (xfs, ext4, btrfs, etc.), implementing any required features
- Mount a created file system
- Unmount a created file system
For this competency, I would spin up a virtual machine and just start making and destroying logical volumes and file systems. You might also consider creating virtual disk devices and creating and manipulating partitions. The cfdisk command makes the manipulation of partitions generally very simple and straightforward (and it’s menu-driven and easy to understand). It’s generally extraordinarily easy to create file systems as well through the mkfs command and its related file-system-specific commands. Make sure you understand the format of /etc/fstab and that you’re comfortable with its impact on the system (and troubleshooting it in the event of a failure). Go through the manual pages for the various file systems and get comfortable with their options and implementations so that you aren’t shocked by any peculiar requests, but overall this is probably pretty simple for most LFCE candidates, as this is a very common aspect of system administration.