Filesystem

From Syslinux Wiki
Jump to: navigation, search

EXTLINUX supports:
[3.00+] ext2/3,
[4.00+] FAT12/16/32, ext2/3/4, Btrfs,
[4.06+] FAT12/16/32, NTFS, ext2/3/4, Btrfs,
[5.01+] FAT12/16/32, NTFS, ext2/3/4, Btrfs, XFS,
[6.03+] FAT12/16/32, NTFS, ext2/3/4, Btrfs, XFS, UFS/FFS,

[6.04] Improvements and fixes.

Some limitations might apply, depending on the filesystem.

As of Syslinux 6.03, the extlinux command line installer supports 512 bytes per sector.

Please contact The Syslinux Project if the extlinux command line installer fails in any way in the supported filesystems or if the boot process fails after installing the bootloader.

For the available command line options, see Install.


Btrfs

Initial support for Btrfs was introduced in Syslinux 4.06. Several improvements and fixes were added in later versions. Syslinux 6.03 (or later) is recommended.

As of Syslinux 6.03, Btrfs' multi-device volumes are not supported.

As of Syslinux 6.03, the compression and/or encryption features of Btrfs volumes are not supported. In other words, Syslinux cannot find (configuration / kernel / initrd) files if the boot filesystem is compressed and/or encrypted.


Additional boot parameters might be needed so as to specify Btrfs subvolume IDs. For example: rootflags=subvol=<root subvolume>.


[6.04] Fix logical_to_physical block address mapping.

Supported in the following packages (non-exhaustive list):

  • Official Syslinux 6.04-pre1
  • Debian: 6.03+dfsg1-1
  • Debian: 6.04~git20171011.af7e95c3+dfsg1-1 and newer
  • Fedora 26
  • Mageia: 6.04-01.mga7
  • Rosa: 6.04-0.3.pre1
  • Alpine: 6.04_01


ext

As of Syslinux 6.03, "pure 64bit", compression and/or encryption are not supported.


Quoting part of the release notes of version 1.43 of e2fsprogs (May 17, 2016):

Mke2fs will now create file systems with the metadata_csum and 64bit features enabled by default.

Users should rather (manually) disable the 64bit feature in the mke2fs command when creating / formatting a boot volume with ext4; otherwise, the bootloader (as of version 6.03) will fail.

Notes:

  • For a 4KiB block size, an ext2/3/4 volume size of less than 16TiB when created without the "64bit feature" is supported by Syslinux as of version 6.03.
  • To manually disable the "64bit" feature when creating ext4 volumes, use  -O ^64bit  in the mke2fs (or equivalent) command. That is, an hyphen, immediately followed by an upper-case letter "O", a space character, the caret "^" symbol, followed by "64bit" (no hyphen).
    • In some cases, a backslash character before the caret might be needed:  -O \^64bit 
  • In resize2fs, the  -s  parameter (that is, an hyphen followed by a lower-case letter "s") disables the "64bit" feature of an already-created filesystem volume, if its size allows it.


[6.04+] Support 64bit feature of ext4.

Supported in the following packages (non-exhaustive list):

  • Debian: 6.03+dfsg1-2
  • Debian: 6.04~git20171011.af7e95c3+dfsg1-1 and newer
  • Fedora 28


ISO9660

Not relevant for EXTLINUX. See ISOLINUX.


NTFS

Initial support for NTFS was introduced in Syslinux 4.06. Several improvements and fixes were added in later versions. Syslinux 6.03 (or later) is recommended.

Note: As of Syslinux 6.03, Syslinux supports NTFS volumes with Cluster (aka "Allocation Unit") size equal or smaller than 4096 bytes.

4096 Bytes (or less) per "Allocation Unit" (aka Cluster).
Each Cluster can be 4KiB or smaller.
For 512 Bytes per sector → either 8 / 4 / 2 / 1 Sectors per Cluster.
For 4096 Bytes per sector → 1 Sector per Cluster.

A Cluster size of 4096 bytes is usually the default and the recommended value.

For general information about Cluster size: http://support.microsoft.com/kb/140365

As of Syslinux 6.03, EXTLINUX does not support symlinks on NTFS volumes.


UFS

Syslinux 6.03 adds support for UFS/FFS in little-endian architectures (x86 and x86-64). UFS1 and UFS2 are both supported.

The author of UFS/FFS, Kirk McKusick, said about the name:

The code is broken into two parts, the part that handles naming (UFS where the U stands for Unix), and the part that handles disk layout (FFS where the F stands for Fast). When the two parts are put together they are called UFS/FFS or more commonly just UFS.

UFS notes

  • The following steps were initially only made under a GNU/Linux environment. Therefore, functionality might vary on other systems.
  • Dependency: ufsutils (UFS filesystems utilities) or equivalent.
  • To add Write support on UFS to Linux, a kernel with the option CONFIG_UFS_FS_WRITE enabled is needed, or at least configured as a module. To the latter case, load the module "ufs.ko" with modprobe (probably located at "/lib/modules/").
  • Enable UFS Write support under Debian (November 26, 2012):

 http://oz123.github.io/writings/2012-11-26-enable-ufs-write-support-debian/ 


XFS

As of Syslinux 6.03, a filesystem block size of 4KiB is supported.

As of Syslinux 6.03, an XFS partition in an "MBR" partition scheme is supported.


[6.04+] Support XFS on-disk V5, node directories version 3, xfsprogs 4.x.

Supported in the following packages (non-exhaustive list):

  • Official Syslinux 6.04-pre1
  • Debian: 6.04~git20171011.af7e95c3+dfsg1-1 and newer
  • Fedora 26
  • Mageia: 6.04-01.mga7
  • Rosa: 6.04-0.3.pre1
  • Alpine: 6.04_01


Note: XFS 4.16+ (xfsprogs, released 2018Apr) enables the "sparse inode" feature by default.

When creating / formatting a boot volume with XFS 4.16+, users might want to consider manually disabling the "sparse inode" feature on the boot volume.