After I flashed a couple roms I couldn't boot jelly bean anymore and I noticed the error in recovery: E:\ Cant Mount /efs, when installing. But I could still boot ICS but not jellybean. I still had my IMEI and could make calls but could not boot jelly bean because it couldn't mount.
How does this issue happen?
Sometimes when installing a rom something goes wrong and it changes the partition type of /efs making it unable to be mounted. The partition is usually from ext4 to swap.
Most likely this will work on your phone but if it doesn't and your phone stops working I am not responsible.
If your like me and you couldn't get jelly bean to work then flash your device back to ics and it should boot. Once your booted inside of ics we can start the process.
Pre-Setup:
1. Be rooted and have a custom recovery installed.
2. Be on Ics and it boots.
3. Your need to have a Jelly Bean rom like Cyanogenmod on your sdcard.
4. Have adb installed on your pc and usb debugging on in your phone/tab.
Now that that's done its time to start.
Part One:
1. Boot into recovery.
2. We need to find the efs block location.
3. Go to mounts and select efs
4. It should say unable to mount
5. Go to advance and make a recovery.log
6. Put that file on your computer and open it.
7. Look through the file and you should fine something like this around the beginning of the file:
E:Unable to mount '/efs'
I:Actual block device: '/dev/block/mmcblk0p3', current file system: 'swap'
My location is /dev/block/mmcblk0p3 But yours could be different! Most likely the difference will be instead of it ending with a 3 it will be a different number. I will be saying /dev/block/mmcblk0p3 if yours is different just change it to your location.
*WARNING* Sometimes when you copy paste into adb it will auto run the command without you pressing enter. If your location is different then mine and you copy past and it auto runs it could be BAD so to be careful if you want to copy past. Copy the command paste it into Google make the change and copy that and paste into adb
Part Two:
1. When your inside recovery connect your phone to your computer and get into a adb shell. (Sometimes it will take awhile for adb to recognize your device so be patient.)
2. Once you have adb access its time to start entering the commands.(Again my location may be different the yours! Most likely the difference will be instead of it ending with a 3 it will be a different number.
Part Three Inside ADB:
1. su
2. dd if=/dev/block/mmcblk0p3 of=/sdcard/efs.img
3. mke2fs /dev/block/mmcblk0p3
4. mkdir /efs
5. mount -t ext4 /dev/block/mmcblk0p3 /efs
DONT REBOOT PHONE
Part Four On Your Phone:
1. Now /efs is mounted don't unmount it
2. Do a factory reset
3. Install your Jelly Bean rom
4. It should install without any errors
5. Boot your phone
6. If everything went well it should boot.
7. After it boots your signal notification most likely will be gray and internet or calls may not work
8. To fix just install gapps and it will be fixed
There you have it if everything went correctly your efs should be working good and you should be able to go back and do your normal rom flashing.
If jelly bean boots but you don't have phone do this:
1. Go back into recovery and get adb access.
2. su
3. mke2fs /dev/block/mmcblk0p3
4. mkdir /efs
5. mount -t ext4 /dev/block/mmcblk0p3 /efs
6. dd if=/sdcard/efs.img of=/dev/block/mmcblk0p3 bs=4096
And that should fix it and you should still be able to boot jelly bean and have no efs errors.
If you have any questions feel free to post down below in the comments
How does this issue happen?
Sometimes when installing a rom something goes wrong and it changes the partition type of /efs making it unable to be mounted. The partition is usually from ext4 to swap.
Most likely this will work on your phone but if it doesn't and your phone stops working I am not responsible.
If your like me and you couldn't get jelly bean to work then flash your device back to ics and it should boot. Once your booted inside of ics we can start the process.
Pre-Setup:
1. Be rooted and have a custom recovery installed.
2. Be on Ics and it boots.
3. Your need to have a Jelly Bean rom like Cyanogenmod on your sdcard.
4. Have adb installed on your pc and usb debugging on in your phone/tab.
Now that that's done its time to start.
Part One:
1. Boot into recovery.
2. We need to find the efs block location.
3. Go to mounts and select efs
4. It should say unable to mount
5. Go to advance and make a recovery.log
6. Put that file on your computer and open it.
7. Look through the file and you should fine something like this around the beginning of the file:
E:Unable to mount '/efs'
I:Actual block device: '/dev/block/mmcblk0p3', current file system: 'swap'
My location is /dev/block/mmcblk0p3 But yours could be different! Most likely the difference will be instead of it ending with a 3 it will be a different number. I will be saying /dev/block/mmcblk0p3 if yours is different just change it to your location.
*WARNING* Sometimes when you copy paste into adb it will auto run the command without you pressing enter. If your location is different then mine and you copy past and it auto runs it could be BAD so to be careful if you want to copy past. Copy the command paste it into Google make the change and copy that and paste into adb
Part Two:
1. When your inside recovery connect your phone to your computer and get into a adb shell. (Sometimes it will take awhile for adb to recognize your device so be patient.)
2. Once you have adb access its time to start entering the commands.(Again my location may be different the yours! Most likely the difference will be instead of it ending with a 3 it will be a different number.
Part Three Inside ADB:
1. su
2. dd if=/dev/block/mmcblk0p3 of=/sdcard/efs.img
3. mke2fs /dev/block/mmcblk0p3
4. mkdir /efs
5. mount -t ext4 /dev/block/mmcblk0p3 /efs
DONT REBOOT PHONE
Part Four On Your Phone:
1. Now /efs is mounted don't unmount it
2. Do a factory reset
3. Install your Jelly Bean rom
4. It should install without any errors
5. Boot your phone
6. If everything went well it should boot.
7. After it boots your signal notification most likely will be gray and internet or calls may not work
8. To fix just install gapps and it will be fixed
There you have it if everything went correctly your efs should be working good and you should be able to go back and do your normal rom flashing.
If jelly bean boots but you don't have phone do this:
1. Go back into recovery and get adb access.
2. su
3. mke2fs /dev/block/mmcblk0p3
4. mkdir /efs
5. mount -t ext4 /dev/block/mmcblk0p3 /efs
6. dd if=/sdcard/efs.img of=/dev/block/mmcblk0p3 bs=4096
And that should fix it and you should still be able to boot jelly bean and have no efs errors.
If you have any questions feel free to post down below in the comments