Home
Main website
Display Sidebar
Hide Ads
Recent Changes
View Source:
FileSystem
Edit
PageHistory
Diff
Info
LikePages
A FileSystem is basically a file format for a disk. In order to use the diskspace, you need a way to determine which parts are in use, and where files are located, how they're called and so on. This is what a FileSystem provides. FileSystems lists the many different kinds of [FileSystem]s currently in use. If part of a FileSystem has been corrupted you need to be able to repair it. Under MicrosoftWindows the stock tool is called ~ScanDisk. Unix systems call their corresponding tool fsck(8). fsck is automatically run if the FileSystem wasn't properly unmounted or hasn't been checked in a long time (the SuperUser can specify what constitutes a long time). !! Microsoft file systems On a [MicrosoftWindows] system, [Partition]s are formatted with the old and aging [FAT] or the much more modern [NTFS] FileSystem. A list of Microsoft filesystems: <?plugin BackLinks page=CategoryMicrosoftFileSystem noheader=1 ?> Linux has full read/write support for [FAT32], full read support for [NTFS], and limited write support. If you wish to format a file system so that Windows and Linux can both see it, choose FAT32. !! Traditional Linux file systems In contrast, the traditional FileSystem of choice on Linux is [Ext2]. It is very trusty and rock solid - losing much data from an [Ext2] partition is nearly impossible short of a hardware failure. The only problem is that an fsck takes a very long time. On servers that don't get rebooted in months, this is not much of a headache, but Linux is making its way to the desktop, where machines get rebooted frequently. Therefore, a variant that supports journalling was created: [Ext3]. The next revision of this filesystem, [Ext4] is gaining wider acceptance and aims to increase performance when dealing with large files. !! Journalling file systems Journalling file systems keep a log of changes pending completion, so in the event of a crash, they can quickly finish up or undo changes as required to bring the FileSystem back to a consistent state. A full consistency check with fsck crawling the entire disk is then unnecessary. Nevertheless, you should fsck partitions at least every once in a blue moon to ensure that no inconsistencies creep in. The likelihood is low, but better to be safe than sorry. <?plugin BackLinks page=CategoryJournallingFileSystem noheader=1 ?> !! Network file systems [NetworkFileSystem]s are another class of FileSystem designed to operate across multiple machines on a network. [NFS] originally from [SunMicrosystems] is a very widely used NetworkFileSystem, but recents [AndrewFileSystem], [OpenAFS] and [Coda] have taken off, partly because of their [Kerberos] security. <?plugin BackLinks page=CategoryNetworkFileSystem noheader=1 ?> !! Other file systems <?plugin BackLinks page=CategoryOtherFileSystem noheader=1 ?> !! Inodes Linux looks at its file-system in the way Unix does: it adopts the concepts of super-block, inode, directory and file in the way Unix uses them: * The super-block owes its name to its historical heritage, from when the first data block of a disk or partition was used to hold meta-information about the partition itself. The super-block is now detached from the concept of data block, but still is the data structure that holds information about each mounted file-system. The actual data structure in Linux is called struct super_block and hosts various housekeeping information, like mount flags, mount time and device blocksize. The 2.0 kernel keeps a static array of such structures to handle up to 64 mounted file-systems. * An inode is associated to each file. Such an 'index node' encloses all the information about a named file except its name and its actual data. The owner, group, permissions and access times for a file are stored in its inode, as well as the size of the data it holds, the number of links and other information. The idea of detaching file information from filename and data is what allows to implement hard-links -- and to use the `dot' and `dot-dot' notations for directories without any need to treat them specially. An inode is described in the kernel by a struct inode. * The directory is a file that associates filenames to inodes. The kernel has no special data strcture to represent a directory, which is treated like a normal file in most situations. Functions specific to each filesystem-type are used to read and modify the contents of a directory independently of the actual layout of its data. * The file itself is something that is associated to an inode. Usually files are data areas, but they can also be directories, devices, FIFO's or sockets. An 'open file' is described in the Linux kernel by a struct file item; the structure encloses a pointer to the inode representing the file. file structures are created by system calls like open, pipe and socket, and are shared by father and child across fork. File system that use inodes: <?plugin BackLinks page=CategoryInodeFileSystem noheader=1 ?> !!B-Tree file systems <?plugin BackLinks page=CategoryBtreeFileSystem noheader=1 ?> ---- See also: * [Mount] and mount(8) * FileSystemHierarchy: standard directory layout for a Linux machine. * FileSystemsComparison, for some experiences with these. * [WikiPedia:Filesystem]. ---- CategoryBeginners %%% CategoryStorage
63 pages link to
FileSystem
:
LinuxDistribution
PortabilityNotes
WriteBack
DisklessWorkstation
KnoppixNotes
UDev
NetworkFileSystem
initrd(4)
UFS
CopyOnWrite
iSCSI
MailBox
GrubNotes
VersionControlSystem
FileSystemHierarchy
SoftUpdates
Plan9
DevFs
PartitioningSuggestions
DeviceDriver
ProcFileSystem
WinFs
MailDir
WAL
AccessingWindowsPartitions
GNOME
HansReiser
FileAllocationTable
KnowYourSysadmin
FAT12
LVM
Partition
FAT16
SysLinux
VirtualFileSystem
EROFS
DriveLetters
Coda
Intermezzo
GoogleFS
make-autoinst-initrd(1)
SymLink
NFS
Mount
MetaData
SysFs
FAT32
NTFS
MinixFS
ISO
Ext2
DiskCluster
ReiserFS
QuestionsFromWindowsUsers
Tmpfs
MountPoint
SoekrisPXEBootHowto
AdvancedUserTips
NewUserTips
Inode
btrfs
Ext3
Ext4