symbol lookup error: mkfs.ext3: undefined symbol: ext2fs_add_journal_inode2

while formatting a newly added disk to my ubuntu server I got this error.

symbol lookup error: mkfs.ext3: undefined symbol: ext2fs_add_journal_inode2

don’t worry too much if your situation is similar like mine then its easily fixable. after googling alot I got some hints that this is due to DELL APP ASSURE AGENT installed on ubuntu server.  Yes I have dell appassure agent “appassure-installer_ubuntu_amd64_5.4.2.192”
quick fix to resolve disk format issue is to Remove dell appassure agent , Reboot Server, Format your disk and mount etc as normal  , then install dell appassure agent to carry on backing up your server.

ok to un-install Dell appassure agent we need same version .sh  file which can be download from dell site as i allready have this on my server so Uninstall command is as below

./appassure-installer_ubuntu_amd64_5.4.2.192.sh -u

hit y  for yes to carry on un-installing agent and once finished just reboot the server.

once back on ,  I can now format my newly added disk without any issues.
——————————————————————————

root@ubuntus1:~# sudo mkfs -t ext3 /dev/sdc1
mke2fs 1.42.9 (4-Feb-2014)
Discarding device blocks: done
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 2621184 blocks
131059 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2684354560
80 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
——————————————————————————————————–

and can mount new drive and start using as normal and install Dell AppAssure Agent on server .

./appassure-installer_ubuntu_amd64_5.4.2.192.sh

hope this will help someone who using dell appassure on same server.

Regards

Harjeet Singh

2 thoughts on “symbol lookup error: mkfs.ext3: undefined symbol: ext2fs_add_journal_inode2”

    1. Sorry for the late post. I work for Dell | AppAssure on the Linux Team and just thought I would add to this since I just ran into this issue myself today and was able to temporarily fix this. ( I will get development working on this so it is baked into the AppAssure release in the future. )

      If you wanted to avoid un-installing AppAssure to resolve this issue, you can temporarily rename /opt/appassure/libext2fs.so.2 to /opt/appassure/libext2fs.so.2.old

      Then run mkfs or whichever tool you are using to create your partitions.

      This issue is caused because the symbol or function “ext2fs_add_journal_inode2” is not present in the AppAssure libext2fs.so.2 library version but DOES exist in the /lib/x86_64-linux-gnu/libext2fs.so.2 version. Looking at the individual binaries they show the following:

      readelf -Ws /opt/appassure/lib64/libext2fs.so.2.4 | grep ext2fs_add_journal_inode2

      and

      readelf -Ws /lib/x86_64-linux-gnu/libext2fs.so.2.4 | grep ext2fs_add_journal_inode2
      178: 0000000000020e40 1659 FUNC GLOBAL DEFAULT 11 ext2fs_add_journal_inode2

      Notice, there is no output for the AppAssure library as it does not contain the “ext2fs_add_journal_inode2” function.

      AppAssure adds its own library configuration to “/etc/ld.so.conf.d/” so AppAssure’s library gets loaded first and causes the problem.
      You can verify this by running the following to show the cached libraries currently loaded:

      ldconfig -p |grep libext2fs.so
      libext2fs.so.2 (libc6,x86-64) => /opt/appassure/lib64/libext2fs.so.2
      libext2fs.so.2 (libc6,x86-64) => /lib/x86_64-linux-gnu/libext2fs.so.2

      Additionally you can run ldd on mkfs.ext3 or mkfs.ext4 and see that the AppAssure library is being loaded instead of the alternate.

      ldd /sbin/mkfs.ext4
      linux-vdso.so.1 => (0x00007fff5bf29000)
      libext2fs.so.2 => /opt/appassure/lib64/libext2fs.so.2 (0x00007f04b3e07000)
      libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f04b3c03000)
      libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007f04b39dc000)
      libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f04b37d7000)
      libe2p.so.2 => /lib/x86_64-linux-gnu/libe2p.so.2 (0x00007f04b35cf000)
      libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f04b3209000)
      libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f04b2feb000)
      /lib64/ld-linux-x86-64.so.2 (0x00007f04b4053000)

      If you want a permanent fix (Until the AppAssure Development Team has a chance to) so that you do not have to manually rename AppAssure’s library, every time you want to format your partition, then do the following:

      wget http://nixos.org/releases/patchelf/patchelf-0.8/patchelf-0.8.tar.gz

      apt-get install build-essential ; tar zxvf patchelf-0.8.tar.gz ; cd patchelf-0.8/

      ./configure ; make ; make install

      cp /sbin/mkfs.ext3 /sbin/mkfs.ext3.orig
      cp /sbin/mkfs.ext4 /sbin/mkfs.ext4.orig

      patchelf –set-rpath /lib/x86_64-linux-gnu/:/lib64/ /sbin/mkfs.ext3
      patchelf –set-rpath /lib/x86_64-linux-gnu/:/lib64/ /sbin/mkfs.ext4

      ldd /sbin/mkfs.ext4 should now show the correct library.
      *Note: the above command is for 64bit OS’s, if you are using a 32bit OS use the appropriate path which is normally just /lib.

      If you noticed, mkfs.ext2 is not affected by this issue because it is not a journaling filesystem so does not require that function “ext2fs_add_journal_inode2” to run.

      I am not sure if you put in a ticket for this originally but please report any bugs or issues that you may be having so we can resolve them for you.

      Thanks and I hope this helps.

Leave a Reply

Your email address will not be published. Required fields are marked *