[ About | Licence | Contacts ]
Written by Oleksandr Gavenko (AKA gavenkoa), compiled on 2024-04-01 from rev 052223c22317.

File system.

Supported FS.

List of supported by current Linux kernel FSes:

$ cat /proc/filesystems

FS stats

Free space:

$ df

Free space in MB:

$ df -m

Free space in human readable format:

$ df -h

Number of free nodes:

$ df -i

FS limits

ext4 uses 32-bit inode numbers so number of files limited to 2^32.

fs name inode sub-dir file fs total
ext2 255     2 TiB 16 TiB
ext3 255   32000 2 TiB 16 TiB
ext4 255 2^32 64000 16 TiB 16 TiB
btrfs 255 2^64
16 EiB 16 EiB
fat32 255 268e+6 2^16 2 GiB 8 TiB
ntfs 255 2^32 2^32 16 TiB 256 TiB
xfs 255     100 TiB 100 TiB
gfs2 255     100 TiB 100 TiB
FS limits.

Make label on FAT32 volume.

The volume name can be up to 11 characters long:

$ sudo mlabel -i /dev/<device> ::my-label

or when create FAT32 file system:

$ sudo mkdosfs -n <vol-name> /dev/<device>

Convert file name coding.

$ convmv --nosmart -f cp-1251 -t utf-8 -r $dir

How get file time attributes.

POSIX define 3 file time attributes: atime (access time, only a few OS/fs update this parameter), ctime (attribute/inode modification time), mtime (modification time).

To get time you can use 'ls' command but it print time in locale dependent irregular form:

$ ls -l file.txt      # last file modification
$ ls -lc file.txt     # last file status modification
$ ls -lu file.txt     # last access

GNU coreutils provide more robust 'stst' utility:

$ stat -c %Y file.txt # last file modification
$ stat -c %Z file.txt # last file status modification
$ stat -c %X file.txt # last access

POSIX file name restriction.

Windows file name restriction.

Naming Files, Paths, and Namespaces

How get UUID and label?

Include UUID (Universally Unique Identifier) and labels:

$ ls -l /dev/disk/by-uuid/
lrwxrwxrwx 1 root root 10 2010-11-01 23:41 46B6-1FD4 -> ../../sdb2
lrwxrwxrwx 1 root root 10 2010-11-01 23:41 4C30299030298256 -> ../../sda1

$ ls -l /dev/disk/by-label/
lrwxrwxrwx 1 root root 10 2010-11-01 23:41 bin -> ../../sda3
lrwxrwxrwx 1 root root 10 2010-11-01 23:41 inst -> ../../sda2
lrwxrwxrwx 1 root root 10 2010-11-01 23:41 media -> ../../sdc5

$ sudo vol_id /dev/dm-2

$ /sbin/blkid     ## from 'e2fsprogs' package
/dev/sdc2: UUID="46B6-1FD4" TYPE="vfat"
/dev/sdb2: TYPE="ntfs" UUID="BC48D3FD48D3B47C" LABEL="inst"
/dev/sda5: UUID="5240AED140AEBB5D" LABEL="music" TYPE="ntfs"
/dev/sdc1: UUID="81c4444f-0b70-429a-9d97-8c13e8651f5b" TYPE="ext3"
/dev/sdc3: UUID="KOpHWz-clDR-2MqV-vAkE-cPvY-uZrY-kjYJIb" TYPE="lvm2pv"

$ udevinfo --query=all --name /dev/sdb    ## from 'udev' package
P: /block/sdb
N: sdb
S: disk/by-id/ata-WDC_WD1600JS-00MHB0_WD-WCANM5835587
S: disk/by-id/scsi-SATA_WDC_WD1600JS-00_WD-WCANM5835587
S: disk/by-path/pci-0000:00:08.0-scsi-1:0:0:0

How set UUID and label?

For ext2/ext3 fs:

$ sudo tune2fs /dev/hdb1 -U `uuid`

Linux fs under Windows.


Ext2Fsd is an open source linux ext3/ext4 file system driver for Windows systems (NT/2K/XP/Win7/Win8, X86/AMD64) and only alive project.

Home page.
Sourceforge home page.

Ext2 IFS.

It provides Windows NT4.0/2000/XP/2003/Vista/2008 with full access to Linux Ext2 volumes (read access and write access). This may be useful if you have installed both Windows and Linux as a dual boot environment on your computer.

The "Ext2 Installable File System for Windows" software is freeware.

After install use 'ifsdrives.cpl' control panel to modify settings.

home page


Allows you to access ReiserFS partitions from a Windows 95/98/ME/NT/2000/XP system. It also allows you to access ReiserFS partitions from Linux. It is a complete rewrite of the ReiserFS functions needed to list directories, copy files, and backup metadata.

home page

Summary files size.

$ find . -type f -iname "*.log" -print0 | du --files0-from=- -c -m | tail -n 1 \
    | (read first rest; echo $first)

Mount NTFS in Linux.

Mount in rw mode:

$ man 8 ntfs-3g
$ cat /etc/fstab
UUID=D474CB9874CB7C2C /mnt/winbin ntfs-3g rw,default_permissions,gid=1000,fmask=113,dmask=002,noatime,silent 0 0

Stop fsck running every 27 boots.

Check current settings:

$ tune2fs -l /dev/$DISK

and tune them:

$ tune2fs -c 0 /dev/$DISK
$ tune2fs -i 2w /dev/$DISK

Or disable checks in /etc/fstab completely (by setting last colon to 0 value)!