We finally fixed it. I'll post the solution in case it can help anyone else...
The S3 got stuck in the Samsung logo screen:
When entering the recovery it gave us this error "E: failed to mount /efs (Invalid argument)"
As we already know, the /efs folder contains all the personalized information of the mobile (IMEI number, carrier lock, etc). So if we like to play with ROMs, we should be aware of this detail and make several backups of this VERY IMPORTANT folder, and preferably store them out of the mobile, in the computer for example.
in case we mess up the /efs folder, we are likely to have no other solution than bringing it to the authorized Samsung dealer for repair. No one is going to lend us the EFS backup from their mobile, as doing that we would likely clone their IMEI -which is, BTW, unlegal.
So we first flashed with PC-ODIN a STOCK ROM (I9300XXDLJ4_I9300PHEDLI1_PHE). We tried different ones (one file, 4 files) and none of them solved our problem as the problem was with the /efs partition and I don't think any ROM will touch that...
After flashing the ROM we also flashed Chainfire's CF-Root (CF-Auto-Root-m0-m0xx-gti9300)
We boot up the mobile in recovery mode (Volume UP + Power + Home), we connected to the PC through ADB SHELL.
Our first surprise, trying to partition:
#mke2fs / dev/block/mmcblk0p3
sh: mke2fs: not found
It seems that mke2fs is a command provided by busybox, and it's not present in the stock ROM.I downloaded a precompiled busybox version from busybox.net and pushed it in the S3
PC> adb shell mkdir /data/busybox
PC> adb push busybox /data/busybox
PC> adb shell
#chmod 775 busybox
once installed we could use mke2fs command properly:
# busybox mke2fs /dev/block/mmcblk0p3
busybox mke2fs /dev/block/mmcblk0p3
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
5136 inodes, 20480 blocks
1024 blocks (5%) reserved for the super user
First data block=1
Maximum filesystem blocks=262144
3 block groups
8192 blocks per group, 8192 fragments per group
1712 inodes per group
Superblock backups stored on blocks:
and after that mounting the partition in the /efs folder
#busybox mount -w -t ext4 /dev/block/mmcblk0p3 /efs
busybox mount -w -t ext4 /dev/block/mmcblk0p3 /efs
With the EFS folder fixed, we ADB PUSHED the backup of ur efs folder (efs.tar), we unpackaged it (busybox tar xfv efs.tar) and moved it's content to the newly fixed /efs folder.
Reboot and ready to go: