feature missing restfs: huge_file, dir_nlink, extra_isize

Please ask questions here if you are not familiar with fsarchiver
Post Reply
Lexo
Posts: 1
Joined: Tue May 17, 2011 6:34 pm

feature missing restfs: huge_file, dir_nlink, extra_isize

Post by Lexo » Tue May 17, 2011 7:11 pm

Hi,

I am new to fsarchiver and I am doing some test whether this elegant peace of software could be my new default tool for full filesystem backups.
First I used Systemrescuecd 2.1.1 with fsarchiver 0.6.12 to make a backup of my ext4 partitions of my laptop. After a restore to an external hdd I noticed the following filesystem features were missing: huge_file, dir_nlink, extra_isize
Maybe something is wrong with these partitions so I started doing some testing on my Kubuntu 10.10(e2fsprogs=1.41.12) laptop.

-On an external harddisk created a new ext4 partition with kubuntu defaults:

Code: Select all

$ sudo mkfs.ext4 -v -m0 /dev/sdb1
ke2fs 1.41.12 (17-May-2010)
fs_types for mke2fs.conf resolution: 'ext4', 'default'
Calling BLKDISCARD from 0 to 1073741824 failed.
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376
 
Writing inode tables: done                           
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
 
This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
-Adjust mount count and interval

Code: Select all

$ sudo tune2fs -c 0 -i 0 /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
Setting maximal mount count to -1
Setting interval between checks to 0 seconds

Code: Select all

$ sudo dumpe2fs -h /dev/sdb1
dumpe2fs 1.41.12 (17-May-2010)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          38a903a2-1929-4845-b96e-0f1e3d6dd809
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              65536
Block count:              262144
Reserved block count:     0
Free blocks:              249509
Free inodes:              65525
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      63
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Flex block group size:    16
Filesystem created:       Thu May 12 20:53:52 2011
Last mount time:          n/a
Last write time:          Thu May 12 20:54:42 2011
Mount count:              0
Maximum mount count:      -1
Last checked:             Thu May 12 20:53:52 2011
Check interval:           0 (<none>)
Lifetime writes:          48 MB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      39161d68-4449-40d8-8845-c95cf170fbb2
Journal backup:           inode blocks
Journal features:         (none)
Journal size:             32M
Journal length:           8192
Journal sequence:         0x00000001
Journal start:            0
 
-Next I restored the partition to another partition the external harddisk, below the most relevant bits of the debug output of fsarchive

Code: Select all

filesystem=[ext4]
fsbytestotal=[1007.90 MB]
fsbytesused=[33.25 MB]
common.c#324,exec_command(): argv[0]=[mke2fs]
common.c#324,exec_command(): argv[1]=[-V]
getpathtoprog(mke2fs)=[/sbin/mke2fs]
executing [mke2fs -V]...
command [mke2fs -V] returned 0
common.c#324,exec_command(): argv[0]=[mke2fs]
common.c#324,exec_command(): argv[1]=[-V]
getpathtoprog(mke2fs)=[/sbin/mke2fs]
executing [mke2fs -V]...
command [mke2fs -V] returned 0
the filesystem type determined by the original filesystem features is [ext4]
the filesystem type to create considering the command options is [ext4]
--> feature [has_journal]=YES
--> feature [resize_inode]=YES
--> feature [dir_index]=YES
--> feature [filetype]=YES
--> feature [extent]=YES
--> feature [journal_dev]=NO
--> feature [flex_bg]=YES
--> feature [large_file]=YES
--> feature [sparse_super]=YES
--> feature [uninit_bg]=YES
features: mkfs_options+=[-O has_journal,resize_inode,dir_index,filetype,extent,^journal_dev,flex_bg,large_file,sparse_super,uninit_bg]
mke2fs version detected: 1.41.12
mke2fs version required: 1.41.0
dico.c#166,dico_get_generic(): case3: not found
dico.c#166,dico_get_generic(): case3: not found
exec: mke2fs -V
common.c#324,exec_command(): argv[0]=[mke2fs]
common.c#324,exec_command(): argv[1]=[/dev/sdc2]
common.c#324,exec_command(): argv[2]=[-q]
common.c#324,exec_command(): argv[3]=[-r]
common.c#324,exec_command(): argv[4]=[1]
common.c#324,exec_command(): argv[5]=[-b]
common.c#324,exec_command(): argv[6]=[4096]
common.c#324,exec_command(): argv[7]=[-I]
common.c#324,exec_command(): argv[8]=[256]
common.c#324,exec_command(): argv[9]=[-O]
common.c#324,exec_command(): argv[10]=[has_journal,resize_inode,dir_index,filetype,extent,^journal_dev,flex_bg,large_file,sparse_super,uninit_bg]
getpathtoprog(mke2fs)=[/sbin/mke2fs]
executing [mke2fs /dev/sdc2  -q  -r 1  -b 4096  -I 256  -O has_journal,resize_inode,dir_index,filetype,extent,^journal_dev,flex_bg,large_file,sparse_super,uninit_bg ]...
command [mke2fs /dev/sdc2  -q  -r 1  -b 4096  -I 256  -O has_journal,resize_inode,dir_index,filetype,extent,^journal_dev,flex_bg,large_file,sparse_super,uninit_bg ] returned 0
common.c#324,exec_command(): argv[0]=[tune2fs]
common.c#324,exec_command(): argv[1]=[/dev/sdc2]
common.c#324,exec_command(): argv[2]=[-U]
common.c#324,exec_command(): argv[3]=[38a903a2-1929-4845-b96e-0f1e3d6dd809]
common.c#324,exec_command(): argv[4]=[-c]
common.c#324,exec_command(): argv[5]=[0]
common.c#324,exec_command(): argv[6]=[-i]
common.c#324,exec_command(): argv[7]=[0d]
getpathtoprog(tune2fs)=[/sbin/tune2fs]
executing [tune2fs /dev/sdc2  -U 38a903a2-1929-4845-b96e-0f1e3d6dd809  -c 0  -i 0d ]...
command [tune2fs /dev/sdc2  -U 38a903a2-1929-4845-b96e-0f1e3d6dd809  -c 0  -i 0d ] returned 0
Looking at the above the filesystem options huge_file, dir_nlink and extra_isize are missing. Because Kubuntu comes with an older version of fsarchiver (0.6.10) I compiled the latest version from source and repeated the test above but without succes. Looking in the fs_ext2.h file I do see these filesystem feature being listed under supported features.

Apparently I am doing something wrong but I am having difficulty figuring out exactly what that is.

Please advice on how to trouble shoot this.

Kind regards,
-Lex

cercatrova
Posts: 7
Joined: Mon Jan 11, 2010 7:05 pm

Re: feature missing restfs: huge_file, dir_nlink, extra_isiz

Post by cercatrova » Tue Dec 20, 2011 3:29 pm

I'm seeing exactly the same thing with fsarchiver 0.6.12. I'm using ubuntu server 10.04 and ext4 file systems. I restored the file systems using fsarchiver running from systemrescuecd 2.4.0 and when viewed after rebooting into ubuntu they are missing huge_file, dir_nlink, and extra_isize. I can't state with 100% certainty that they had those features before the restore but similarly-sized file systems on all of my other 10.04 systems have them. Futhermore they are specified as defaults for ext4 in /etc/mke2fs.conf on the host in question so I'm pretty confident the features were there. Could it be related to what the systemrescuecd gentoo kernel supports? I've done a tune2fs -O huge_file,dir_nlink,extra_isize <device> in ubuntu for each device involved and it seems to add the features back without problem.

admin
Site Admin
Posts: 550
Joined: Sat Feb 21, 2004 12:12 pm

Re: feature missing restfs: huge_file, dir_nlink, extra_isiz

Post by admin » Mon Mar 05, 2012 12:27 pm

The current fsarchiver version (0.6.13) is not aware of the ext4 features recently introduced. It will require a minor update to add support for these new features.

Basically ext2/ext3/ext4 filesystems are based on three types of features that gives the flexibility to add more features to the same filesystem. The problem is old versions of the kernel, e2fsprogs, or other utilities need to be updated to be able to cope with these new features.

At the moment these new features are just ignored by fsarchiver. I hope I will have time to work on this in the next weeks.

admin
Site Admin
Posts: 550
Joined: Sat Feb 21, 2004 12:12 pm

Re: feature missing restfs: huge_file, dir_nlink, extra_isiz

Post by admin » Sat Jun 02, 2012 4:30 pm

This has been fixed in fsarchiver-0.6.15

Dukers
Posts: 19
Joined: Fri Jul 09, 2010 1:31 pm

Re: feature missing restfs: huge_file, dir_nlink, extra_isiz

Post by Dukers » Sun Jun 10, 2012 6:30 pm

Thank you!

Post Reply