This blog series aims to be a reference guideline by collecting useful knowledge and tutorials about Linux filesystems, mainly about ext3 and ext4.
Because, as systems engineers/administrators, when we need to manually perform disk maintenance on a server, we know that a tiny mistake may have large consequences.
“Trial-and-Error” is sometimes a good way to learn, and sometimes not. For sensitive topics like internet security or filesystem operations, it is often better to understand the theory based on reliable sources before trying; in this way we can avoid putting the data integrity at unnecessary risk.
Every administration task needs to be done carefully, but the need avoiding any mistake is felt even higher when it comes to disk management; there is no room for experimenting with uncertainty.
For example, commands like ‘dd’ with the wrong filesystem parameter will destroy it without a warning, even if it was still mounted. Therefore this howto is intended to provide you with many examples of command lines that can be used as best practices. It is written as a compilation of online literature and real-life examples from my experience during the last 12 years.
That being said, trust no one but yourself… and as usual you should always do a backup and double-check what you are doing.
The blog series will cover:
1. Block Device and Filesystem
It explains how files are split into blocks and how the filesystem acts as an abstraction layer between files (seen by applications) and blocks (physically written on disks). It also says why disks are called block devices.
2. Reminder about Inode, Data, Metadata, Hardlink and Symlink
This article aims to give a clear representation of the relation between filenames and inodes, to explain what is an inode and which differences exist between a hard link and a symbolic link.
3. Journalized Filesystem – Airbag for Server Crash
This blog article details how a brutal interruption of a write operation can corrupt a whole filesystem and how a journal provides a protection against such incomplete writes.
4. Ext4 vs. Ext3 Filesystem and why Delayed Allocation is Bad
It covers the main differences between ext3 and ext4 with a focus on filesystem consistency. This article was the initial motivation of this blog series, because many engineers are unaware that the standard option of ext4 (delalloc) is very for their data!
5. Mount a Filesystem with the right Options
6. File Ownerships, Permissions and Timestamps
7. Sparse Files and Other Special Files
8. Loop Device – Mounting a Filesystem over another
9. Compressed RAM Disk – Memory as Block Device
10. ISO-9660 Filesystem for Compact Disc
12. Undelete on Ext3 / Ext4 – Impossible Mission?
13. Encrypted Filesystem
14. Disk Partition and Boot Loader
15. Software Raid with mdadm
16. Hot partition extension with LVM (Logical Volume Management)
17. Copy / Transfer Files through Network
18. NAS (Network Attached Storage) – Remote Storage at Filesystem-Level
19. SAN (Storage Area Network) – Remote Storage at Block-Device-Level