The concept of boot loading, disk partitioning, partition table, BIOS, UEFI, File system types, etc. is little known to most of us. We comes across these terminology very often but rarely took the pain to know these and their meaning in details. This article in an effort to fulfil this gap in the most easiest way possible.
One of the very first decision we comes across while installing a Linux Distribution is the partitioning of its disk, the file-system to use, implement encryption for security which varies with the change in architecture and platform. One of the most widely used Architecture, INTEL is undergoing some changes and it is important to understand these changes which on the other hand requires knowledge of boot process.
Many developers run both Windows and Linux on the same machine which may be a matter of preference or need. Most of the boot-loaders of today are smart enough to recognize any number of Operating System on the same box and provide menu to boot into the preferred one. Another way to achieve the same goal is to use virtualization using Xen, QEMU, KVM or any other preferred visualization tool.
BIOS Vs UEFI
If I remember correctly, till late 90‘s BIOS which stands for Basic Input/Output System was the only way to boot an Intel System. BIOS holds the partitioning Information in an special area called Master Boot Record (MBR) such that additional code gets stored in first sector of every boot-able partition.
In Late 90‘s Microsoft’s intervention with Intel resulted in Universal Extensible Firmware Interface (UEFI) the initial purpose of which was to boot securely. This mechanism of booting proved to be a challenge for rootkits specially which gets attached with boot sectors and were hard to detect with BIOS.
Boot with BIOS
Booting with BIOS requires placing of boot codes or boot sequence in MBR which is placed in the first sector of boot disk. In case if more than one Operating System is installed the installed boot loader is replaced by one common boot loader which places boot codes on every bootable disk during installation and updation automatically, which means user has the choice to boot into any of the installed OS.
However it is seen, specially on windows that a non-windows boot loader won’t update the system specially certain programs viz., IE but again there is not hard and fast rule nor it is documented any where.
Boot with UEFI
UEFI is the latest booting technology developed in close collaboration of Microsoft with Intel. UEFI requires the firmware to be loaded is digitally signed, a way to stop rootkits being attached with the boot partition. However the problem in booting Linux using UEFI is complex. Booting Linux in UEFI requires the keys used needs to be make public under GPL which is against the Linux protocol.
However it is still possible to install Linux on UEFI specification by disabling ‘Secure boot‘ and enabling ‘Legacy Boot‘. Boot codes in UEFI is placed under subdirectories of /EFI, special partition in the first sector of disk.
Types of Linux File Systems
A standard Linux Distribution provides the choice of partitioning disk with the file formats listed below, each of which has special meaning associated with it.
ext2, ext3, ext4
These are the progressive version of Extended Filesystem (ext), which primarily was developed for MINIX. The second extended version (ext2) was an improved version. Ext3 added performance improvement. Ext4 was a performance improvement besides additional providing additional features.
Read Also: What is Ext2, Ext3 & Ext4 and How to Create and Convert Linux File Systems
The Journaled File System (JFS) was developed by IBM for AIX UNIX which was used as an alternative to system ext. JFS is an alternative to ext4 currently and is used where stability is required with the use of very few resources. When CPU power is limited JFS comes handy.
It was introduced as an alternative to ext3 with improved performance and advanced features. There was a time when SuSE Linux‘s default file format was ReiserFS but later Reiser went out of business and SuSe had no option other than to return back to ext3. ReiserFS supports file System Extension dynamically which was relatively an advanced feature but the file system lacked certain area of performance.
XFS was a high speed JFS which aimed at parallel I/O processing. NASA still usages this file system on their 300+ terabyte storage server.
B-Tree File System (Btrfs) focus on fault tolerance, fun administration, repair System, large storage configuration and is still under development. Btrfs is not recommended for Production System.
Clustered File Format
Clustered file System is not required for booting but best suited in shared environment form storage point of view.
Non-Linux File Format
There are lots of File format not available under Linux but are used by other OS’s. Viz., NTFS by Microsoft, HFS by Apple/Mac os, etc. Most of these can be used under Linux by mounting them using certain tools like ntfs-3g to Mount NTFS file system but not preferred under Linux.
Unix File Format
There are certain File formats used widely in Linux but not preferred under Linux specially for installing Linux root System. e.g., UFS of BSD.
Ext4 is the preferred and most widely used Linux file System. In certain Special case XFS and ReiserFS are used. Btrfs is still used in experimental environment.
The first stage is disk Partitioning. While partitioning we should keep the below points in mind.
- Partition keeping backup and recovery in mind.
- Space limitation mark in partition.
- Disk management – Administrative Function.
Logical Volume Management
LVM is a complex partitioning used in Large Storage Installation. The LVM structure overlays the actual physical disk partitioning.
Swap is used for memory paging in Linux specially during System Hibernation. The current stage of System is written to Swap when the system is paused (Hibernate) at a point of time.
A System which will never go hibernation needs a swap space equal to the size of its RAM.
The last stage is encryption which ensures data safely. Encryption can be at the level of Disk as well as Directory. In Disk encryption, the whole disk is encrypted can requires some kind of special codes to decrypt it.
However its an complex issue. The decryption code can not remain on the same disk undergoing encryption hence we need certain special hardware or let the motherboard do it.
The disc encryption is relatively easy to achieve and is less complex. In this case the decryption code remains on the same disk, somewhere in different directory.
Disk encryption is necessary in server building and may be a legal issue based the the geographical location you are implementing it.
Here in this article, we tried throwing lights on File System Management as well as disk management in much more depth fashion. That’s all for now. I’ll be here again with Another Interesting article worth knowing. Till then Stay tuned and connected to Tecmint and don’t forget to provide us with your valuable feedback in the comment section below.
Read Also: Linux Directory Structure and Important Files Paths Explained
13 thoughts on “Linux File System Explained: Boot Loading, Disk Partitioning, BIOS, UEFI and File System Types”
This article is full of mistakes. Many things are miss-spelled (don’t take 5 minutes to copy and paste into a spellchecker) and there are a lot of points that are completely wrong. Responses to people’s questions have been unhelpful, providing your own links as clickbait support rather than some of the best official documentation resources. Look elsewhere if you’d like to learn about this
I found your article very informative & being in layman’s terms, I kind of understand it. I am 59 years old & I would like to learn everything I can about computer systems. Where do you recommend I should start.
Are there certain classes I should take & which classes first. I am very computer illiterate. I know how to do the basic stuff , but I would like to soak up knowledge about what my laptop is capable of .
This complete Linux newbie guide will help you to learn more about Linux – https://www.tecmint.com/free-online-linux-learning-guide-for-beginners/
Not sure if that’s a helpful attitude, please point out my errors because I’m lazy to do it myself..
There are so many issues with this article that it’s almost rendered useless at this point. You might as well write the headings and let the readers do the research, at least don’t misguide then.
Sort of unhappy with the authors responses…
‘File Format’ and ‘Filesystem Format’ are absolutely different things ! The only thing in common is files are stored on filesystems.
Regarding BIOS & UEFI … you don’t have to disable Secure Boot for most Linux distributions. SuSe, RedHat, Fedora and Ubuntu have supported UEFI Secure Boot for several years now. The standard x64 ISO should work. You only need to disable Secure Boot if the image fails to boot or you see an error message when trying to boot the install media.
Also understand that UEFI Secure Boot is an option. The UEFI spec doesn’t require Secure Boot to be enabled, but Windows 8/8.1 systems do require it on systems with for the Microsoft logo certification. It’s possible to disable it in setup (also a logo requirement).
Thanks for the article – I would point an obvious error in the Partition Table paragraph – where it says “visualization”, it should read “virtualization”.
Dear David, thanks for correction, now corrected in write up..
Article contains errors. Please re-write the article with error free. For ex:
In the last encryption paragraph, after disk encryption.
“The disc encryption is relatively easy to achieve and is less complex. In this case the decryption code remains on the same disk, somewhere in different directory.”
That should be directory, not the disc.
Tecmint is a very famous site but it is sometimes pathetic due to these errors.
Please hire a proof reader.
Actually we are looking for a proof reader who suits us.
Any help in this regard will be appreciated.
Great article, dude, but read it a few more times, ’cause its FULL of writing errors. Such a tehnical article should be error free. Good luck.
Yeah! working on that. It would have been nice if you could point out those errors.
Asking your viewers to point out your errors is completely unprofessional. You should not be trying to teach others when your own knowledge is inadequate.