Understanding Linux Hard Disk Partitioning and Linux File Systems – System Administration Training

The Linux Hard Disk Partitioning Process

A hard disk is partitioned and then it is assigned a filesystem type and then it is formatted.

Assigning a filesystem type to a partition specifies the “type” of it and prepares (formats) it so that it can accept files.

Do not confuse assigning a filesystem “type” with assigning a filesystem (formatting).

Linux Hard Disk Partitioning – File Systems and Filesystem Types

Most Linux documentation and utilities refer to a file system as filesystem (one word).

A filesystem type is assigned to and specified for a partition to provide it with support for the file structure of itself (for its directories and subdirectories) and for all of the files that will be used on it, such as the Linux program files and data files.

For example, the current default filesystem type for many distributions, such as Red Hat, Fedora and others, is ext3 (extended filesystem 3).

Prior to ext3, the default filesystem was ext2 (extended filesystem 2). Some other distributions have a different default filesystem, but ext3 is on the way to becoming the de facto standard for Linux.

Linux Hard Disk Partition “Rules”

A Linux partition can be all or part of a hard disk.

If you have two hard disks in a system, then one disk can have one partition, filesystem type and operating system on it that uses the entire disk and the other disk can have a different set of these items, that uses the entire disk.

Both disks can also have more than one partition, filesystem type and operating system.

If you only have one Linux hard disk in a system, then you can create two or more partitions on the disk, assign each one a different filesystem type and install a different operating system on each.

A partition cannot contain more than one filesystem type and does not typically contain more than one operating system. However, you can have a single OS on a system that uses multiple filesystem types on multiple partitions (one filesystem type per partition).

The “standard” Windows and Linux operating systems require at least one partition each. If a system requires both of these operating systems, then you need at least one partition for each of them.

The Linux hard disk partitioning concepts and commands covered here apply to: Red Hat, Fedora, Slackware, Ubuntu, and Debian Linux – and ALL other versions.

3 Methods of Linux System Administration and Why Linux Commands Are Best – Linux Training Online

When you are a new user needing to get Linux training, it is often confusing to decide what to focus on.

Should you learn how to use Linux for just one distribution (a.k.a. version, distro)?

Should you focus on learning GUI utilities – or should you learn Linux commands for doing system administration?

Linux Commands Training Tips: The Linux System Administration concepts and commands covered here apply to ALL Linux distros, including: Red Hat, Ubuntu, Kubuntu, Edubuntu, Slackware, Debian, Fedora, SUSE and openSUSE.

3 Methods of Linux System Administration and Why Using Linux Commands is the Best Method

1. Using Linux GUI utilities for System Administration

Many Linux distributions have “point-and-click” GUI (graphical user interface) utilities that allow you to do common and popular tasks, like manage the file system, create Linux users, and manage user and group permissions.

However, these GUI utilities are usually specific to a single Linux distribution.

So, learning how to use a Linux GUI in one distro is basically useless if you have to use a different one later, or if you’re working in an environment with multiple Linux distributions.

Linux Training Tips: To run a GUI utility, you need to have a desktop installed and sometimes one isn’t installed on a Linux server because it isn’t needed. In addition to this, the Linux system administration pros only use commands because GUI utilities are too slow to run and time-consuming to use.

2. Doing Linux System Administration Tasks with Commands that are Specific to a Distribution

The major (popular) Linux distributions all have several commands that are specific to that single distribution. In other words, for each popular distro, there are several commands that are specific that just that version.

For example, a Linux distribution will likely have a command that is used to manage partitions (disk space) and this command is specific to that distribution.

Learning how to use commands that are only available on a single distribution is a huge waste of time – if there is an equivalent GNU / Linux command – and there almost always is.

For example, the Linux fdisk command is a GNU command that is used to manage the partitions on a system and this command exists on all distributions.

So, rather than learn a command that is specific to a single Linux distribution, learn the GNU commands because these commands are common to all distributions.

3. Using Linux Commands that are Common to All Distributions – The GNU Commands

The GNU commands are the most popular Linux commands – and they are common to all distributions.

Linux Training Tips: Linux distributions are rising and falling in popularity all the time.

If you just learn how to use Linux by running the GUI utilities in one distro, and then you stop using that distro, then you have to learn all the GUI utilities of the next distro. If you learn how to use commands, then you learn how to use Linux for all distros!

How can you tell which commands are the GNU / Linux commands?

Get an excellent set of videos that shows you the popular GNU commands and then try these Linux commands yourself. Then you can learn Linux the easy way – by watching it and then working with it!

Brief Introduction to the Plan-9 Operating System

Plan 9 is a distributed operating system made by Bell Labs. The OS is free and open source. Plan 9 is similar to Unix in some ways, but Plan 9 is meant to be an improvement to Unix and POSIX.

FUN FACT: The mascot for Plan 9 is a rabbit named “Glenda”.

Plan 9 has some features familiar to Unix users. For instance, Plan 9 uses ProcFS and applies the “everything is a file” concept. However, applications from Unix, Linux, and other systems do not work on Plan 9. Some Linux software works on the Linux emulator (linuxemu). Although, the emulator is not yet complete.

The default shell is “rc”. Many of the usual Unix commands (like ls, cp, rm, etc.) can be used. However, despite the same names, the code used to make these commands are entirely different. Plan 9 does not use any GNU software, neither will any work with help from linuxemu. rc is similar to Bash. However, there are some differences. While Bash’s syntax is ALGOL-like, rc uses C-like syntax.

A GUI is also available to Plan 9 named “rio”. rio is a windowing system. rio does not rely on display servers (such as X11). In fact, rio functions as a display server and window manager. rio supports the alpha bit (transparency).

Plan 9 uses a hybrid kernel which has attributes of both monolithic kernels and microkernels. The kernel supports a variety of platforms such as x86, x86-64, MIPS, SPARC, etc.. Plan 9 has also been ported to ARM platforms such as the Raspberry Pi motherboard.

A hybrid kernel has characteristics of both microkernels and monolithic kernels. Inter-Process Communication (IPC), thread management, filesystems, and drivers reside in the kernel space.

Plan 9 is best known for its 9P network protocol. 9P (also called Styx or “Plan 9 Filesystem Protocol”) also serves as a communications protocol between the internal components of the system. The fourth edition of Plan 9 introduced a modified 9P protocol called 9P2000.

FUN FACT: The Styx protocol used in the Inferno operating system is a variant of 9P.

To avoid confusion, it may help to know a little about the Inferno operating system, which is sometimes mistaken as some form of Plan 9. Inferno is a distributed operating system originally made by Bell Labs (like Plan 9), but is now maintained by Vita Nuova. Inferno is neither Unix or POSIX and its primary use is to be a programming environment for the Limbo programming language. Inferno is not a typical operating system. Rather, its kernel is a virtual machine called “dis” that runs on a pre-existing OS (such as Linux, Windows, Plan 9, FreeBSD, etc.).