Related
Did not get any help in cyanogenmod thread, so creating a separate thread here.
I am in trouble. After I updated my ROM to cyanogenmod 3.6.7.2 (with his recovery image 1.3.1 and latest radio) I get a message saying: "Removed SD Card" in the notification and I am getting force closes in apps which access sd card.
Why did it remove my sd card? I have the following partition structure"
c (formatted fat32) 2GB - this is what used for upgrading the radio and rom.
83 (formatted ext4) 6GB
c (formatted fat32) 7GB
82 (mkswapped) whatever left off from 16GB card.
Is this structure causing the issues? I used Linux 2.6.30 and e2fsprogs 1.41.7 to format ext4 and dosfstools 3.0.2 to format fat32 FSs.
I ran fix_permissions from recovery console because I was getting FCs in powermanager (which logs files on SD card).
Also, if I boot into the recovery console, I can mount /sdcard and it automatically mounts the first fat32 partition on /sdcard. I can 'fdisk -l' and see all my partitions are there. So, its not a hardware issue. Some sort of chicken&egg because of apps2sd.
I just mounted the partition2 (which is ext4) in recovery console and I can see there are "app app-private dalvik-cache lost+found" folders on it. So, it looks like normally initialized.
Does anybody know what's going on here? Appreciate your help!
It's the same response you've been getting in the other section.
Try backing up your data on your computer, and completely formatting your card to fat32.
From there, instead of making the partitions on the computer, use the Recovery Console (accessed from Cyano's Recovery) and re-create the partitions as you like.
Ok, I delete the 3rd and 4th partitions, and it seems to be working fine now. So, it seems like there is an assumption about the partition structure in the code somewhere.
devsk said:
Ok, I delete the 3rd and 4th partitions, and it seems to be working fine now. So, it seems like there is an assumption about the partition structure in the code somewhere.
Click to expand...
Click to collapse
So you are all good now?
What exactly did you do? Just remove the 3rd & 4th partition, without formatting?
akapoor said:
So you are all good now?
What exactly did you do? Just remove the 3rd & 4th partition, without formatting?
Click to expand...
Click to collapse
Yeah, I just removed the 3rd and 4th partitions from recovery console and the card is recognized and working fine. Now, I need to find out why is it hard coded like that.
It seems like something doesn't like more than 3 partitions on the SD card. I now have 3 partitions with 'c' (fat32), '83' (ext4) and 'c' (fat32) codes and it seems to work fine.
An ext partition of more than 1.5gb can cause problems
Most roms will not work with the way you had it set up (at least not well)
They follow a 3 partition scheme as such
FAT32 > EXT > SWAP
B-man007 said:
An ext partition of more than 1.5gb can cause problems
Most roms will not work with the way you had it set up (at least not well)
They follow a 3 partition scheme as such
FAT32 > EXT > SWAP
Click to expand...
Click to collapse
I've heard this repeated elsewhere but nobody ever actually says what the problem is with partitions greater than 1.5gb. I'm very curious to know, because I haven't noticed anything wrong.
Except that /sdcard won't automount if my sd card has 4 partitions defined on it. As soon as I mark the 4th one empty and reboot, it's fine again. But that has nothing to do with the size of the ext fs on partition 2. Something with vold is funky, because I can mount /sdcard manually from adb.
Update: The SD card I'm using for this is brand new and it is showing corruption sometimes. I think that the SD card is broken but I'm not sure. While I am debugging this I will not give more details to avoid other's damage. In the meantime, if someone is interested and wants to take the risk, please PM me.
------
In summary, this is a method to mount from the PC a sd-ext formatted partition on the SD card inside the phone.
The linux kernel inside Android can potentially understand ext2/3/4, NTFS and other advanced filesystems, but you have to mount them manually to see their data within the phone. That is a hassle, but it can be solved if you are root. However, if you connect your phone to your PC with this setup the alternative filesystems in the external SD card cannot be seen from the PC.
I did not find in Internet how to solve the latter issue, but I figured it out. So here I will explain how:
see the ext4 partition within the phone <-- this is not new!!
see the ext4 partition by connecting the phone to a Linux PC <-- these are the news!!
I do not have a lot of time now to explain the steps in detail. I will update the post later, but basically:
- Using Ubuntu and gparted, I formatted my external SD card with 2 partitions: first one small (32MiB) FAT to satisfy Android and second one big (~16GiB) ext4 where my data remains. This assures that the FAT filesystem cannot grow above the 32MiB limit.
- Then, with Ubuntu and fdisk I deleted (yeah!) the partition table and created a new partition table that says that the FAT filesystem occupies the entire SD card space. This step is the important, it means that the whole card will be exported from the phone when connected to a PC (since the partition table says that there is only one big partition for the whole SD card). However, due to the small size format in the first step the FAT partition cannot grow above the 32MiB mark (where the ext4 filesystem still resides).
- With this setup you can still access the ext4 data (it will not be touched by FAT accesses!!) using mount and the loop device, both from within the phone and from a PC with Linux (if you have another OS, maybe you can use a VM with Linux).
More or less, that's all without the details. I'll update this post later with a step-by-step guide.
Thanks to share that information...
You are welcome. It is a pity that my SD card is not working properly with my phone (it works Ok in the PC). I think that it is a kernel (Froyo) problem so I planned to upgrade to Gingerbread before doing more tests. But right now I have no time...
I've just installed the Paranoid-Jellybean 1.99
http://forum.xda-developers.com/showthread.php?t=1793180
on my EU HTC HD2
I can't anderstand what sd the idea behind program S2E, it seems its purpose is to move apps to SD but when used it this way then all newly installed Widgets disappeared What's more even without launching S2E in Settings thare are options to move individual apps to SD (not for all in fact)
it isn't talking about the normal fat partition on the sd card, you must have an EXT partition created before using the app.
What it does, is take the ext partition on the sd card and makes the system think that it is internal memory, thus giving you more 'internal' memory for apps and data and such like.
This isn't the same as choosing 'move to sd ' in the settings - apps options, as this moves the app to the FAT (windows) partition of the sd card. Some apps wont work when 'moved to sd', however they WILL work from the ext partition, because android thinks its internal.
So, if you haven't already got an ext partition, back up the contents of your current sd card (it will get wiped) then reboot into cwm, choose 'advanced - partition sd card' and choose a partition size. (512 or 1024 is usually plenty) then restart android and try the app again.
Any apps that you have already 'moved to sd', go move them back to internal, and the system should automatically move them from the FAT partition to the EXT partition.
Tahnk you for your explanation. Also I must apologize I confused the names of the programs - in fact its S2E rather than A2S (the previous post have written from memory). However probabely this s2e serves the same purpose, as it has such relevant commands:
Applications - Location: /data/app
Private apps - Location: /data/app-private
...
and so on, until:
Dalvik cache - Moving from /data to /sd-ext
So, I've chosen the first option and got displayed:
Application
Moving from /data to /sd-ext
Reboot is required!
and rebooted the phone, but the result was disappointing - several apps dissappeared including all Widgets!
Of course I've had ext3 partition previously set.
What was wrong?
Other question please: exactly WHAT is worth moving to SD Ext partition, Dalvik cache too?
yea they do the same/similar things - namely move parts of the system to the ext partition, and create symbolic links so that the system doesnt notice they've moved.
You seem to be moving your entire data folder to the ext, which i believe has an impact on boot performance, since the data partition wont be mounted straight away, and android needs it during boot.
I don't know a great deal about the various app2sd scripts, but the ones i've used normally only move the /data/app/ (your user installed apps folder) and the dalvik cache to the sd-ext partition.
samsamuel said:
yea they do the same/similar things - namely move parts of the system to the ext partition, and create symbolic links so that the system doesnt notice they've moved.
You seem to be moving your entire data folder to the ext, which i believe has an impact on boot performance, since the data partition wont be mounted straight away, and android needs it during boot.
I don't know a great deal about the various app2sd scripts, but the ones i've used normally only move the /data/app/ (your user installed apps folder) and the dalvik cache to the sd-ext partition.
Click to expand...
Click to collapse
So won't it exert excessive load on SD card which could lead to some sort of instability or other issues?
ioy said:
So won't it exert excessive load on SD card which could lead to some sort of instability or other issues?
Click to expand...
Click to collapse
better than exerting load on the nand and increasing the chances of bad blocks, right?
samsamuel said:
better than exerting load on the nand and increasing the chances of bad blocks, right?
Click to expand...
Click to collapse
theoretically YES but then does it also apply for the whole Android ROM itself (please compare the neighbouring discussion "is NAND Android better than SD and why?")
ioy said:
(please compare
Click to expand...
Click to collapse
no thanks, i have far more interesting things to do. i couldn't care less if there's excess load, though i'm pretty sure there isn't, since i've been running an ext partition for several months and no problems.
Have you understood me well? I've asked about the problem probably NAND ROMs themselves wear NAND memory too so would it be safer (for the device) to use SD ROMs (which write only on SD memory all the time)? How do you think, could it be the case?
i think if it were of any real benefit, people would be talking about it, but no one does. I guess its down to you, if YOU think it will help, then do it. If you don't, don't!
I guess battery drain would be teh real deal maker/breaker. I havent used sd android, but i believe it to be (in general terms) a little less stable, more prone to slowdowns, and harder on teh battery. But thats all anecdotal evidence, as i said, ive never booted sd android.
(edit - i must say, in humour, not meaning offence, that between this thread and your other thread, you sound like a guy who just bought a sports car and wants to cycle to work to save wear and tear on teh car )
I bypassed dead internal memory on a GT-I9000M.
Symptoms:
- Your GT-I9000M is not booting or bootlooping no matter what firmware you are flashing it with.
- In recovery, you are seeing I/O errors on /dev/block/mmcblk0p1
- Trying to repartition and format the internal storage with fdisk or parted and mkfs.whatever fails.
To recover:
- Partition and format your 16GB+ external microSD with at least two primary partitions, vfat on the first one and rfs (or whatever fs is supported by your firmware) on the second one.
- Acquire a stock ROM, in my case I used JL2
- untar the PDA portion of your ROM of choice (you want zImage and factoryfs.rfs)
- Extract initramfs from zImage ( https://github.com/mistadman/Extract-Kernel-Initramfs )
- grep for /dev/block/mmcblk, there should be 4 .rc files containing references to it as well as within the binary file /init.
- use a text editor to replace all occurances of "mmcblk0" with "mmcblk1" (and vice-versa if you feel so inclined) in the .rc files.
- use a hex editor to replace "mmcblk0" with "mmcblk1" in /init.
- create cpio archive of your modified initramfs with `find . | cpio -H newc -o > ../initramfs.img`
- repack kernel and initramfs ( http://forum.xda-developers.com/showthread.php?t=789712 ), you should have a new_zImage now.
- Mount the factoryfs.rfs as a loop `mount -o loop,rw -t vfat factoryfs.rfs /mnt/loop`
- Modify vold.fstab - this topic is well covered elsewhere (swap sdcard and sdcard1, swap mount points), then umount your loop
- Flash factoryfs.rfs and zImage using your favorite method.
That's it! Your phone will now boot and complain forevermore that the external memory is corrupt. ToDo: use third partition on external microSD as external_sd...
To recap:
We're telling android's init and whatever .rc scripts contain references to the broken partitions on the internal storage /dev/block/mmcblk0 to point to an appropriate partition on the external microSD card /dev/block/mmcblk1. You can actually do anything you want with the partition structure as long as it's consistent throughout init and in vold.fstab. Different ROMs do it differently.
I am not responsible for misuse of your hex editor, lack of backups, etc. I highly recommend the unbrickable mod.
Corrupt internal storage
Hi b0nafide,
My internal storage is also corrupted (i9000). I'm getting the same errors you descripe in your post. I'm trying your solution in wich you install android on your external SD. I bought a 8GB cat10 SD card....
But I'm stuck at the step: 'Extract initramfs from zImage ( [//github.com/mistadman/Extract-Kernel-Initramfs] )'. When I start the script nothing happens, except for my terminal closing. I'm using a virtualy installed Ubuntu distribution (Backtrack 5).
Do you have a tip? Perhaps you can help me through Teamviewer???
Hope do hear from you... I want to use my phone again
Greatings, Eldoro
My sgs is dead.
Please b0nafide, can you upload this modificated kernel (zImage and factoryfs.rfs) just for noobs like me?
Yes that woud be great. ..
Sent from my GT-I9300 using xda app-developers app
Here also an i9000 with reboot
Have done allot, stock rom, other pit files...
Is there a way to do this with a i9000 ?
and yes an image for us ?
and is the phone then normale... or is the internal storage still broken ?
Thanxs
Anyone can help us?
grimorct said:
Anyone can help us?
Click to expand...
Click to collapse
???
Anyone with working solution for this on i9000? I'll try to pack JW4 following this guide
grozni said:
Anyone with working solution for this on i9000? I'll try to pack JW4 following this guide
Click to expand...
Click to collapse
Yesterday, I made a flasheable pack of JW4, but it doesn't run. Now i'ḿ trying to modify JVU, but a strange thing happen when i'm repacking zImage...the script spends a lot of time in order to make it, and i can't be able to verify the correct pocess of new_zImage.
It's my first post in XDA, because normally I use HTCMANIA... I'm Spanish...and my English it isn't so good. Even, I should said that it isn't my phone...i'm repairing a friend's phone, so it's difficult for me to explain or speak about different ROMs or kernels....sorry
It's very important to advice that the scripts posted should be modified to get it run...because I found different problems to execute on Ubuntu.
Now it's 1:30 am...i'm trying "ext_JVU"....tomorrow i'll tell you the results.
Anyway i'll try to upload it, to reach different conclusions...
sesetxu said:
Anyway i'll try to upload it, to reach different conclusions...
Click to expand...
Click to collapse
Please do, I'll try flashing immediately and get back with results. How did you format external sd card?
I'm willing to try aswell... almost gave up hope.
Sent from my GT-I9300 using xda app-developers app
Hello friends!!!
I've the CODE (PDA file in ODIN) modified to execute android in ext-sdcard.
I do it as the first post said....but it doesn't run for me...
Anyway here is...Yo must get the MODEM and CSC os the stock firmware
XDA block the urls for me...for this reason its haven´t the WWW ...
Stock firmware..only to get MODEM and CSC: 4shared.com/zip/W1NeYAPA/I9000XXJVU_I9000OXAJVU_OXA.html?
Code modified to run in sdcard external: rapidshare.com/files/3786190721/ext_XXJVU.tar.md5
To solve my problems, i'll try to generate an CWMfile flasheable to try it...but now i'm hopeless....
Good luck men!!
sesetxu said:
Good luck men!!
Click to expand...
Click to collapse
Great work men!! It works for me. After flashing I got error in picture I posted (same error as before when writing to internal storage with stock rom). I just hit reboot but honestly I was not thinking it will boot. Thing I noticed when I start camera I get message turn off usb storage first. My files app shows no sd card inserted. How did you format your sd card? I'm using 8gb class 6 sd card
grozni said:
Great work men!! It works for me. After flashing I got error in picture I posted (same error as before when writing to internal storage with stock rom). I just hit reboot but honestly I was not thinking it will boot. Thing I noticed when I start camera I get message turn off usb storage first. My files app shows no sd card inserted. How did you format your sd card? I'm using 8gb class 6 sd card
Click to expand...
Click to collapse
I've modified all to use an sdcard with the folowing partitions:
1st primary fat32 which is internal sd card (4 gb)
2nd primary reiserfs which is /data (2 gb)
3rd primary fat 32 as external sd card
Try it...and I am happy to help you
sesetxu said:
I've modified all to use an sdcard with the folowing partitions:
1st primary fat32 which is internal sd card (4 gb)
2nd primary reiserfs which is /data (2 gb)
3rd primary fat 32 as external sd card
Try it...and I am happy to help you
Click to expand...
Click to collapse
I will try this layout. At first I prepared sdcard with 2 partitions which currently boot into Android but storage isn't working:
1st primary fat32 (6gb)
2nd primary ext4 (2gb)
You said raiserfs, should be that rfs type partition?
Update: I just noticed that both partition on my sdcard are fat32. First partition which should be internal storage I had to format again (not sure why). After this internal storage is still not available when in Android. I guess some mounting point is not good. Second fat32 partition is where the data is I guess (picture attached)
Exactly the same result as grozni. Same errors upon installing but booting into android. Amazing work! Also formatted 2 partitions. WiFi also not working btw. Hangs on obtaining ip...
Sent from my GT-I9300 using xda app-developers app
eldoro said:
Hangs on obtaining ip...
Click to expand...
Click to collapse
Same here
Is imposible to start Andoird without a rfs partition to mount /data (or ext4, for ROMs wich has fixed the troubles with ext4/rfs file systems...)
I can´t start the phone, because i get an added problem (my system can't format rfs data..but i don't know why)
I'm going to review the file /system/etc/vold.fstab who manages the mount points of the internal and external storages.
If anyone gets the correct configuration...please post it..
Tomorrow is Monday...and although I'm Spanish, I have a job (****ing crisis)...and i haven't so much time as weekend
Edit: wifi sockets are created over /data partition, if there is any problem in this partition is probably to get troubles obtaining IP
sesetxu said:
Is imposible to start Andoird without a rfs partition to mount /data (or ext4, for ROMs wich has fixed the troubles with ext4/rfs file systems...)
Click to expand...
Click to collapse
If I understand correctly samsung rfs and reiserfs are not the same thing? Why you use raiserfs on sdcard layout?
sesetxu said:
Edit: wifi sockets are created over /data partition, if there is any problem in this partition is probably to get troubles obtaining IP
Click to expand...
Click to collapse
That is the reason
Update: One more thing I forgot to mention. When I try to format USB storage (internal sd) I get message sd card removed
I recently toggled the option from my ROMs "Performance" settings to enable Fast-Charge mode at boot. This came accompanied with a toast saying so on boot. What I did not realise is that it would have the unintended consequence of unmounting my internal SD card after a few reboots. This would be noticeable from multiple applications, including Root Explorer. Basically, nothing would show up there; it was as if the directory was empty. Additionally, when I tried to use an application to download files to the SD card, I received many errors about read/write operations. It was my belief that the internal SD filesystem had become corrupted. I had rebooted several times after checking that box before I noticed the problem.
It took me a bit of time to narrow down the cause. Once I unchecked the Set Fast-Charge Mode At Boot option, I magically got my internal SD card to show back up again in Root Explorer. However, all applications were experiencing problems writing to the thing. Fixing permissions had no effect; wiping the entire virtual SD card from Root Explorer had no effect. I tried to issue some commands from Terminal Emulator to remount the system as RW, but couldn't figure those out.
I copied down the contents of my internal SD card to my PC and restored a two day-old nandroid backup and recopying my internal SD card contents to it. That fixed the problem. I have no idea why my filesystem became corrupted, or how I'd go about forcing its restructuring in the future without resorting to a restore operation. Anyway, I just thought I'd post my experience here.
Using I337M on LiquidSmooth 2.9 with KToon's latest kernel.