Skip to the content.

Home

jc.parsers.tune2fs

jc - JSON Convert tune2fs -l command output parser

Usage (cli):

$ tune2fs -l /dev/xvda4 | jc --tune2fs

or

$ jc tune2fs -l /dev/xvda4

Usage (module):

import jc
result = jc.parse('tune2fs', tune2fs_command_output)

Schema:

{
  "version":                            string,
  "filesystem_volume_name":             string,
  "last_mounted_on":                    string,
  "filesystem_uuid":                    string,
  "filesystem_magic_number":            string,
  "filesystem_revision_number":         string,
  "filesystem_features": [
                                        string
  ],
  "filesystem_flags":                   string,
  "default_mount_options":              string,
  "filesystem_state":                   string,
  "errors_behavior":                    string,
  "filesystem_os_type":                 string,
  "inode_count":                        integer,
  "block_count":                        integer,
  "reserved_block_count":               integer,
  "overhead_clusters":                  integer,
  "free_blocks":                        integer,
  "free_inodes":                        integer,
  "first_block":                        integer,
  "block_size":                         integer,
  "fragment_size":                      integer,
  "group_descriptor_size":              integer,
  "reserved_gdt_blocks":                integer,
  "blocks_per_group":                   integer,
  "fragments_per_group":                integer,
  "inodes_per_group":                   integer,
  "inode_blocks_per_group":             integer,
  "flex_block_group_size":              integer,
  "filesystem_created":                 string,
  "filesystem_created_epoch":           integer,
  "filesystem_created_epoch_utc":       integer,
  "last_mount_time":                    string,
  "last_mount_time_epoch":              integer,
  "last_mount_time_epoch_utc":          integer,
  "last_write_time":                    string,
  "last_write_time_epoch":              integer,
  "last_write_time_epoch_utc":          integer,
  "mount_count":                        integer,
  "maximum_mount_count":                integer,
  "last_checked":                       string,
  "last_checked_epoch":                 integer,
  "last_checked_epoch_utc":             integer,
  "check_interval":                     string,
  "lifetime_writes":                    string,
  "reserved_blocks_uid":                string,
  "reserved_blocks_gid":                string,
  "first_inode":                        integer,
  "inode_size":                         integer,
  "required_extra_isize":               integer,
  "desired_extra_isize":                integer,
  "journal_inode":                      integer,
  "default_directory_hash":             string,
  "directory_hash_seed":                string,
  "journal_backup":                     string,
  "checksum_type":                      string,
  "checksum":                           string
}

Examples:

$ tune2fs | jc --tune2fs -p
{
  "version": "1.46.2 (28-Feb-2021)",
  "filesystem_volume_name": "<none>",
  "last_mounted_on": "/home",
  "filesystem_uuid": "5fb78e1a-b214-44e2-a309-8e35116d8dd6",
  "filesystem_magic_number": "0xEF53",
  "filesystem_revision_number": "1 (dynamic)",
  "filesystem_features": [
    "has_journal",
    "ext_attr",
    "resize_inode",
    "dir_index",
    "filetype",
    "needs_recovery",
    "extent",
    "64bit",
    "flex_bg",
    "sparse_super",
    "large_file",
    "huge_file",
    "dir_nlink",
    "extra_isize",
    "metadata_csum"
  ],
  "filesystem_flags": "signed_directory_hash",
  "default_mount_options": "user_xattr acl",
  "filesystem_state": "clean",
  "errors_behavior": "Continue",
  "filesystem_os_type": "Linux",
  "inode_count": 3932160,
  "block_count": 15728640,
  "reserved_block_count": 786432,
  "free_blocks": 15198453,
  "free_inodes": 3864620,
  "first_block": 0,
  "block_size": 4096,
  "fragment_size": 4096,
  "group_descriptor_size": 64,
  "reserved_gdt_blocks": 1024,
  "blocks_per_group": 32768,
  "fragments_per_group": 32768,
  "inodes_per_group": 8192,
  "inode_blocks_per_group": 512,
  "flex_block_group_size": 16,
  "filesystem_created": "Mon Apr  6 15:10:37 2020",
  "last_mount_time": "Mon Sep 19 15:16:20 2022",
  "last_write_time": "Mon Sep 19 15:16:20 2022",
  "mount_count": 14,
  "maximum_mount_count": -1,
  "last_checked": "Fri Apr  8 15:24:22 2022",
  "check_interval": "0 (<none>)",
  "lifetime_writes": "203 GB",
  "reserved_blocks_uid": "0 (user root)",
  "reserved_blocks_gid": "0 (group root)",
  "first_inode": 11,
  "inode_size": 256,
  "required_extra_isize": 32,
  "desired_extra_isize": 32,
  "journal_inode": 8,
  "default_directory_hash": "half_md4",
  "directory_hash_seed": "67d5358d-723d-4ce3-b3c0-30ddb433ad9e",
  "journal_backup": "inode blocks",
  "checksum_type": "crc32c",
  "checksum": "0x7809afff",
  "filesystem_created_epoch": 1586211037,
  "filesystem_created_epoch_utc": null,
  "last_mount_time_epoch": 1663625780,
  "last_mount_time_epoch_utc": null,
  "last_write_time_epoch": 1663625780,
  "last_write_time_epoch_utc": null,
  "last_checked_epoch": 1649456662,
  "last_checked_epoch_utc": null
}

$ tune2fs | jc --tune2fs -p -r
{
  "version": "1.46.2 (28-Feb-2021)",
  "filesystem_volume_name": "<none>",
  "last_mounted_on": "/home",
  "filesystem_uuid": "5fb78e1a-b214-44e2-a309-8e35116d8dd6",
  "filesystem_magic_number": "0xEF53",
  "filesystem_revision_number": "1 (dynamic)",
  "filesystem_features": "has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum",
  "filesystem_flags": "signed_directory_hash",
  "default_mount_options": "user_xattr acl",
  "filesystem_state": "clean",
  "errors_behavior": "Continue",
  "filesystem_os_type": "Linux",
  "inode_count": "3932160",
  "block_count": "15728640",
  "reserved_block_count": "786432",
  "free_blocks": "15198453",
  "free_inodes": "3864620",
  "first_block": "0",
  "block_size": "4096",
  "fragment_size": "4096",
  "group_descriptor_size": "64",
  "reserved_gdt_blocks": "1024",
  "blocks_per_group": "32768",
  "fragments_per_group": "32768",
  "inodes_per_group": "8192",
  "inode_blocks_per_group": "512",
  "flex_block_group_size": "16",
  "filesystem_created": "Mon Apr  6 15:10:37 2020",
  "last_mount_time": "Mon Sep 19 15:16:20 2022",
  "last_write_time": "Mon Sep 19 15:16:20 2022",
  "mount_count": "14",
  "maximum_mount_count": "-1",
  "last_checked": "Fri Apr  8 15:24:22 2022",
  "check_interval": "0 (<none>)",
  "lifetime_writes": "203 GB",
  "reserved_blocks_uid": "0 (user root)",
  "reserved_blocks_gid": "0 (group root)",
  "first_inode": "11",
  "inode_size": "256",
  "required_extra_isize": "32",
  "desired_extra_isize": "32",
  "journal_inode": "8",
  "default_directory_hash": "half_md4",
  "directory_hash_seed": "67d5358d-723d-4ce3-b3c0-30ddb433ad9e",
  "journal_backup": "inode blocks",
  "checksum_type": "crc32c",
  "checksum": "0x7809afff"
}

parse

def parse(data: str, raw: bool = False, quiet: bool = False) -> Dict[str, Any]

Main text parsing function

Parameters:

data:        (string)  text data to parse
raw:         (boolean) unprocessed output if True
quiet:       (boolean) suppress warning messages if True

Returns:

Dictionary. Raw or processed structured data.

Parser Information

Compatibility: linux

Source: jc/parsers/tune2fs.py

Version 1.0 by Kelly Brazil (kellyjonbrazil@gmail.com)