Hello,
First I'd like to tell that I've already searched the forum using Google for my problem, but I'm really new to Android and almost all posts are using lots of acronyms that I don't understand. Eventually I found myself with so many tabs opened in my browser that I almost lost what I was looking for at first.
I have a rooted (with Unrevoked) HTC Desire (Clockworkmod Recovery is in place), on which I managed to install Cyangenmod 7.0.3 a few months ago. I can't recall how I get to this result unfortunately. At the time, I only remember that I fiddled a lot because although there are plenty of howtos for many different things, they look all different and/or specific to one device, and the newbie user is not warned about the potential differences he could face.
Now I would like to upgrade to Cyanogenmod 7.1 (for bug fixes) and install DarkTremor App2SD (because I've created an ext4 partition long ago on my SD-card, naively thinkg it would be used, but it stays desperately empty; and the phone internal memory is almost full despite my strenuous attempts to move as much apps as possible to the SD card using, as far as I can tell, CyanogenMod's Apps2SD).
I stumbled on a nice video explaining "how to upgrade Cyanogenmod 7" (search this exact string on Youtube): basically, it uses ROM Manager to install the new Cyanogenmod without wiping (this is probably something that the ROM supports between minor versions). As I understand it, I should be able to use this method to install DarkTremor App2SD as well.
So I've download the Cyanogenmod 7.1 zip file and even copied in as "update.zip" in the root of my FAT32 partition of my SD card. Unfortunately, Clockwordmod Recovery spits the following message:
Code:
Waiting for SD Card to mount (12s)
E: Can't mount /dev/block/mmcblk0 (or /dev/block/mmcblk0p1)
(Invalid Argument)
Waiting for SD Card to mount (11s)
E: Can't mount /dev/block/mmcblk0 (or /dev/block/mmcblk0p1)
(Invalid Argument)
[...]
Timed out waiting for SD Card...
and then goes back to the recovery menu.
My SD card is partitioned with the following scheme (output is from Linux parted on /dev/sdb, which is accessed through an USB cable with USB storage activated on the phone):
Code:
(parted) p
Model: HTC Desire (scsi)
Disk /dev/sdb: 16.0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 16.4kB 67.1MB 67.1MB primary
2 67.1MB 537MB 470MB primary ext4
3 537MB 16.0GB 15.5GB primary fat32 lba
As you can see, the first partition is a swap partition (not sure it has been ever used though), the second one in my ext4 partition where I want to move my apps and the third one in the FAT32 partition which contains update.zip.
Thus my understanding it that /dev/block/mmcblk0(p1) points at best to the swap partition. Am I correct?
I could use another temporary SD card to perform the update, but this is unwieldy and given this partitioning scheme looks pretty common among the Android community, I wonder there's an easier way and/or if I missed something.
Please, avoid "me too" replies . And you would be nice if you avoided using acronyms as much as possible when replying (or at least, give a definition upon first use).
Thanks a lot for your help.
Cheers,
-- Tatazou
tatazou said:
Hello,
My SD card is partitioned with the following scheme (output is from Linux parted on /dev/sdb, which is accessed through an USB cable with USB storage activated on the phone):
Code:
(parted) p
Model: HTC Desire (scsi)
Disk /dev/sdb: 16.0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 16.4kB 67.1MB 67.1MB primary
2 67.1MB 537MB 470MB primary ext4
3 537MB 16.0GB 15.5GB primary fat32 lba
As you can see, the first partition is a swap partition (not sure it has been ever used though), the second one in my ext4 partition where I want to move my apps and the third one in the FAT32 partition which contains update.zip.
Thus my understanding it that /dev/block/mmcblk0(p1) points at best to the swap partition. Am I correct?
-- Tatazou
Click to expand...
Click to collapse
I think I got this more or less confirmed: I got into the phone with "adb shell" and checked /proc/partitions:
Code:
major minor #blocks name
31 0 640 mtdblock0
31 1 5120 mtdblock1
31 2 2560 mtdblock2
31 3 256000 mtdblock3
31 4 40960 mtdblock4
31 5 151168 mtdblock5
179 0 15637504 mmcblk0
179 1 65520 mmcblk0p1
179 2 458752 mmcblk0p2
179 3 15113216 mmcblk0p3
Apart from the internal storage, you can see the mmcblk0 device and its partitions whose sizes match the parted output above.
I wrote this How-To several months ago and published in a spanish forum.
Now I've recovered to share here as it may interest someone.
This was originally written in spanish and now, our friendly companion @nachordez
has been kind enough to translate it to english. Thank you very much for your help. :good:
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
I'll try to explain here how to change the size of our device partitions.
Though the presented data are referred to a 16 GB, a p5110 in this case, they are easy to adapt to a 8 GB one, and/or any other model, with some light corrections.
There can be other ways, but this one has the advantage that depends only on not writing wrong data, and that's easily achieved with a little extra concentration during our work.
Anyway, it's needed to follow very strictly this how-to.
In case of total failure, we should restore the tab through the flashing of a Stock version using the pit file.
ALL the data not saved in the external MicroSD card WILL BE LOST, 'cause we'll delete the /system, /data and /cache partitions.
What is needed:
A computer.
A properly running adb program.
Recovery installed.
External MicroSD card installed and with available space.
Connection cable.
Full Battery.
For 3G (GSM) models, the original “modem.bin” file, obtained from a stock ROM.
The modem.bin file is not really needed as we can get it from our tablet with next command
dd count=40960 bs=512 if=/dev/block/mmcblk0p8 of=/external_sd/modem.bin
All process is done from computer, except a short intervention at end, done from tablet.
This how-to is planned for a AOSP-like ROM, such as CyanogenMod (for example).
In the case of a Stock ROM, the partition sizes we are adjusting will be too short for it.
Before starting:
We have to check that there is enough free space in the MicroSD card, and we have to do a backup through recovery, choosing EXTERNAL SDcard.
If the internal one is used, IT WILL BE LOST DURING PROCESS.
This step is very important, to recover the ROM without re-install from zero.
So, let me say it again: EVERY USER DATA that has being not COPIED to the EXTERNAL SDcard, WILL BE LOST.
After next steps, ONLY the external MicroSD will be conserved without erasing.
So, we check once again that everything is saved, and copy to the external MicroSD (if our tab is a 3G model) the “modem.bin” file that will be needed afterwards.
So... Let's start hacking!:
We always wrote in our PC.
We reboot our tab in recovery mode, and connect the cable.
To enter the tab from our computer:
> adb shell
Once entered correctly on the tablet, we like more clear ls command:
> alias ls='ls -an'
Now we access the partition table:
> parted /dev/block/mmcblk0
We'll get something like:
GNU Parted 1.8.8.1.179-aef3
Using /dev/block/mmcblk0
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
The command line for parted is (parted), so, every time a line starts so, that what follows this is a command.
We ask for information about current partitions:
(parted) p
Model: MMC MAG2GA (sd/mmc)
Disk /dev/block/mmcblk0: 15.8GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number... Start... ....End......... Size...........File system...... Name.... Flags
1............4194kB.... 25.2MB.... 21.0MB...... ext4................ EFS
2........... 25.2MB.... 27.3MB....2097kB............................... SBL1
3........... 27.3MB.....29.4MB....2097kB............................... SBL2
4........... 29.4MB.... 37.7MB....8389kB............................... PARAM
5........... 37.7MB.... 46.1MB... 8389kB............................... KERNEL
6........... 46.1MB.... 54.5MB... 8389kB............................... RECOVERY
7............54.5MB...789.0MB.. 734.0MB....... ext4................CACHE
8......... 789.0MB.. 810.0MB.... 21.0MB.............................. MODEM
9......... 810.0MB.., 2278MB... 1468MB....... ext4............... FACTORYFS
10........ 2278MB.... 15.2GB.... 12.9GB........ext4............... DATAFS
11......... 15.2GB..... 15.8GB.... 537MB....... ext4............... HIDDEN
Comments:
Analizing the current partitions we can see this tablet is a 16 GB one:
/cache (CACHE) has 734 MB assigned
/system (FACTORYFS) has 1468 MB assigned
/data (DATAFS) has 12,9 GB assigned
There's also a funny 537 MB partition called HIDDEN: that's where the Samsung video, musical theme and demo pictures are stored.
If I don't mistake, I think I extracted them time ago, and they were just about 14 MB. In our case, we'll opt for destroying that!
In this how-to we'll assign:
/cache (CACHE) 400 MB
/system (FACTORYFS) 600 MB
/data (DATAFS) the sum of: its current size + 394 MB from CACHE + 868 MB from FACTORYFS + 536 MB from HIDDEN.
So, we'll grow our /DATAFS space in 1798 MB, which will mean more than 14 GB free space.
I use in this example 600 MB for /system was what I did in my tab.
In real world, 240 MB /cache and 500 MB /system are more than enough.
As we'll see later, all this numbers are just aproximations, not completely exact, and probably you're thinking: “My maths do not agree with this numbers”. Mine do not, also, as a fact.
Let's see all that more slowly:
21+2+2+8+8+8+21+1 (for the 'hidden' partitions) give us 71 MB.
If we add 71 + 400 +600 we'll get 1071 MB.
If we have 16 GB and we use 1 GB, more than 15 GB should rest.
On one hand: 1 GB are 1048 MB. So, 16 GB should be 16768 MB, but we have just 15709.
That has a easy explanation: The hard disk makers started to measure 1 GB as 1000 MB (kind of a commercial trick). So, just beginning with that, 768 MB have disappeared in thin air.
On the other hand, we have 34 initial sectors to sustain the partition table, alternative sectors for errors recovering, rounding of numbers in sectors to partitions assignations, etc.
We have 11 partitions just now:.............................................. And they should get like that:
01 00021 MB...........................................................................01 00021 MB
02 00002 MB...........................................................................02 00002 MB
03 00002 MB...........................................................................03 00002 MB
04 00008 MB...........................................................................04 00008 MB
05 00008 MB...........................................................................05 00008 MB
06 00008 MB...........................................................................06 00008 MB
07 00734 MB...........................................................................07 00400 MB *
08 00021 MB...........................................................................08 00021 MB
09 01468 MB...........................................................................09 00600 MB *
10 12900 MB...........................................................................10 14638 MB *
11 00537 MB...........................................................................11 00537 MB
.....15709 MB................................................................................15709 MB
The difference can seem small compared to the original partitioning, nevertheless will allow us to get all our usual apps installed and, even so, preserve a free space higher than we had previously, even before than start to install anything. That's saying: even more than with a pure CM just installed and not even configured.
Obviously, if we translate all that to a 8 GB model, the proportional gain is much higher.
Also, consider that an AOSP rom like CM is not bigger than 460 MB in /system, and that cache will need just 60 MB for dalvik and what we can download from google-play at a certain time. 170 MB should be enough, unless we want to download an app bigger than 100 MB. The bigger ones I've saw are around 90-105 MB.
In this moment, we'll have to decide if we want to follow on or not.
Till now, I was just fun, but nothing has being 'broken'.
Disclaimer: If you continue reading next post, and you do what's there exposed, it will be ONLY under YOUR RESPONSIBILITY. You've being warned...
CopyRight Tuxafgmur - Dhollmen 2013-2014. You can copy and distribute this post only if you mentions Author and references this XDA theread.
:
You have chosen to continue (you're a risky guy...)
We change the info into number of sectors (512 byts each one)
(parted) u s
(parted) p
Model: MMC MAG2GA (sd/mmc)
Disk /dev/block/mmcblk0: 30777344s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Num... Start................ End............ Size........ Fs....... Name
1............ 8192s.......... 49151s....... 40960s... ext4....EFS
2.......... 49152s.......... 53247s......... 4096s............... SBL1
3.......... 53248s.......... 57343s......... 4096s............... SBL2
4.......... 57344s.......... 73727s....... 16384s............... PARAM
5.......... 73728s.......... 90111s....... 16384s............... KERNEL
6.......... 90112s........ 106495s....... 16384s............... RECOVERY
7........ 106496s...... 1540095s... 1433600s.... ext4... CACHE
8...... 1540096s...... 1581055s....... 40960s................MODEM
9...... 1581056s...... 4448255s... 2867200s.... ext4... FACTORYFS
10.... 4448256s.... 29728733s..25280478s.... ext4... DATAFS
11...29728734s.... 30777309s... 1048576s.... ext4... HIDDEN
(From here onwards, I'll omit the heading, so that it's always the same)
We can see easily the ratio between MB and sectors: 4096 sectors equal 2 MB, so 1 MB are 2048 sectors.
Now, we'll delete the last partition, 'cause starting with it will make work easier at end.
(parted) rm 11Now, we create it again, but with different data, specifying the sector where it begins (30775263) and sector where it finishes (30777310)
(parted) mkpart 11 30775263 30777310
(parted) p
Num...... Start................ End............ Size..... Fs....... Name
1............ 8192s.......... 49151s....... 40960s... ext4......EFS
2.......... 49152s.......... 53247s......... 4096s............... SBL1
3.......... 53248s.......... 57343s......... 4096s............... SBL2
4.......... 57344s.......... 73727s....... 16384s............... PARAM
5.......... 73728s.......... 90111s....... 16384s............... KERNEL
6.......... 90112s........ 106495s....... 16384s............... RECOVERY
7........ 106496s...... 1540095s... 1433600s.... ext4...CACHE
8...... 1540096s...... 1581055s....... 40960s................MODEM
9...... 1581056s...... 4448255s... 2867200s.... ext4... FACTORYFS
10.... 4448256s.... 29728733s..25280478s.... ext4... DATAFS
11... 30775263s... 30777310s......... 2048s
So, we have a 1 MB partition that previously was a 537 MB one
Yes, you're right. I've changed last sector from 30777309 into 30777310. I haven't added one new sector to disk, it was yet there, but unassigned.
This is so 'cause I want the total to be an even number of sectors, and also this partition sectors number has to be even.
Previously, this partition had a name. So, let's be polite with it:
(parted) name 11 HIDDEN
(parted) p
Num...... Start................ End............ Size..... Fs....... Name
1............ 8192s.......... 49151s....... 40960s... ext4.....EFS
2.......... 49152s.......... 53247s......... 4096s............... SBL1
3.......... 53248s.......... 57343s......... 4096s............... SBL2
4.......... 57344s.......... 73727s....... 16384s............... PARAM
5.......... 73728s.......... 90111s....... 16384s............... KERNEL
6.......... 90112s........ 106495s....... 16384s............... RECOVERY
7........ 106496s...... 1540095s... 1433600s.... ext4....CACHE
8...... 1540096s...... 1581055s....... 40960s................MODEM
9...... 1581056s...... 4448255s... 2867200s.... ext4... FACTORYFS
10.... 4448256s.... 29728733s..25280478s.... ext4... DATAFS
11... 30775263s... 30777310s......... 2048s............... HIDDEN
Done. Now, we can forget it, and not even format it.
So that it is the last partition, and will not be used, all this work was really unnecessary, but, preventing the case that any process could count partitions, we keep home tidy.
OK. By now we have:
Deleted partition
Created partition
Named partition
If we have a previously calculated chart, we'll just have to do next steps for each partition and we don't need even to look at it, just to check at end if the obtained result was the one expected.
Anyway, in this How-To we'll do things one by one.
We shrink the CACHE partition
We calculate: 400 x 2048 = 819200 (400 MB x 2048 sectors = 819200 sectors)
106496 + 819200 = 925696 -1 = 925695
Our new partition starts in sector 106496 and finishes in sector 925695
(parted) rm 7
(parted) mkpart 7 106496 925695
(parted) name 7 CACHE
(parted) p
Num...... Start................ End............ Size..... Fs....... Name
1............ 8192s.......... 49151s....... 40960s... ext4.....EFS
2.......... 49152s.......... 53247s......... 4096s............... SBL1
3.......... 53248s.......... 57343s......... 4096s............... SBL2
4.......... 57344s.......... 73727s....... 16384s............... PARAM
5.......... 73728s.......... 90111s....... 16384s............... KERNEL
6.......... 90112s........ 106495s....... 16384s............... RECOVERY
7........ 106496s........ 925695s..... 819200s.... ext4... CACHE
8...... 1540096s...... 1581055s....... 40960s................MODEM
9...... 1581056s...... 4448255s... 2867200s.... ext4... FACTORYFS
10.... 4448256s.... 29728733s..25280478s.... ext4... DATAFS
11... 30775263s... 30777310s......... 2048s............... HIDDEN
We just move the MODEM partition : 925696 + 40960 -1 = 966655
(parted) rm 8
(parted) mkpart 8 925696 966655
(parted) name 8 MODEM
Now, let's go for the FACTORYFS one
(parted) rm 9
(parted) mkpart 9 966656 2195455
(parted) name 9 FACTORYFS
(parted) p
Num...... Start................ End............ Size..... Fs....... Name
1............ 8192s.......... 49151s....... 40960s... ext4.....EFS
2.......... 49152s.......... 53247s......... 4096s............... SBL1
3.......... 53248s.......... 57343s......... 4096s............... SBL2
4.......... 57344s.......... 73727s....... 16384s............... PARAM
5.......... 73728s.......... 90111s....... 16384s............... KERNEL
6.......... 90112s........ 106495s....... 16384s............... RECOVERY
7........ 106496s........ 925695s..... 819200s.... ext4... CACHE
8........ 925696s...... . 966655s....... 40960s................MODEM
9........ 966656s.......2195455s....1228800s................FACTORYFS
10.... 4448256s.... 29728733s..25280478s.....ext4....DATAFS
11.. 30775263s.... 30777310s..........2048s................HIDDEN
There only rest DATAFS.
For it, no calculations are needed: it starts in the sector following FACTORYFS and ends in the previous to HIDDEN.
(parted) rm 10
(parted) mkpart 10 2195456 30775262
(parted) name 10 DATAFS
(parted) p
Num...... Start................ End............ Size..... Fs....... Name
1............ 8192s.......... 49151s....... 40960s... ext4.....EFS
2.......... 49152s.......... 53247s......... 4096s............... SBL1
3.......... 53248s.......... 57343s......... 4096s............... SBL2
4.......... 57344s.......... 73727s....... 16384s............... PARAM
5.......... 73728s.......... 90111s....... 16384s............... KERNEL
6.......... 90112s........ 106495s....... 16384s............... RECOVERY
7........ 106496s........ 925695s..... 819200s.... ext4... CACHE
8........ 925696s...... . 966655s....... 40960s................MODEM
9........ 966656s...... 2195455s....1228800s................FACTORYFS
10.... 2195456s.... 30775262s..28579807s................DATAFS
11.. 30775263s.... 30777310s......... 2048s............... HIDDEN
So, that's what we got. It seemed difficult, but it's done!
Finishing:
We exit parted, for the end of feast using quit command
(parted) q
In this moment, we've returned to recovery.
Now, and only if our tab is a 3G/GSM one, we have to recover the modem:
dd count=40960 bs=512 if=/external_sd/modem.bin of=/dev/block/mmcblk0p8
Format:
Remember that we are in recovery. So, let's go to tablet and we select:
- mounts and storage
Search for and click on:
- format system
- format cache
- format /data and /data/media (/sdcard)
Just and only this options.
To check, now click on:
- mount /system
- mount /cache
- mount /data
If everything is OK, each one of the 3 options will change into unmount
If you are an expert user, surely you know how to format from shell, without using recovery options.
WE HAVE FINISHED. HURRAY!
Now, we have two options to reinitialize:
We install our favourite Rom, boot, configure, restore data, etc.
Or we restore the backup we did with the recovery in the external MicroSD card and we remain as if nothing had happened (but with lot more free space).
NOTE: I've wrote this how-to using CWM recovery, On others recovery, mount options can be slightly different
Disclaimer: If you have read this post, and did what is told in it, it will be ONLY under YOUR RESPONSIBILITY. You've being warned...
CopyRight Tuxafgmur - Dhollmen 2013-2014. You can copy and distribute this post only if you mentions Author and references this XDA theread.
In case there are util for someone, I insert below partitions data from a p3110 tablet.
This data was attached by the user Saitoh00 from spanish HTCmania forum.
This user resized partitions following this How-To.
Model: MMC M8G2FB (sd/mmc)
Disk /dev/block/mmcblk0: 7818MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1.........4194kB..........25.2MB............21.0MB.......ext4.......EFS
2........ 25.2MB..........27.3MB...........2097kB......................SBL1
3.........27.3MB..........29.4MB...........2097kB..................... SBL2
4.........29.4MB..........37.7MB...........8389kB......................PARAM
5.........37.7MB..........46.1MB...........8389kB......................KERNEL
6.........46.1MB..........54.5MB...........8389kB......................RECOVERY
7.........54.5MB...........474MB............419MB.......ext4........CACHE
8..........474MB...........495MB...........21.0MB......................MODEM
9..........495MB...........914MB............419MB.......ext4........FACTORYFS
10........914MB.........7817MB..........6903MB.......ext4........DATAFS
11......7817MB.........7818MB...........1049kB......................HIDDEN
Model: MMC M8G2FB (sd/mmc)
Disk /dev/block/mmcblk0: 15269888s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1............8192s..........49151s.........40960s.........ext4......EFS
2..........49152s..........53247s...........4096s......................SBL1
3..........53248s..........57343s...........4096s......................SBL2
4..........57344s..........73727s.........16384s......................PARAM
5..........73728s..........90111s.........16384s......................KERNEL
6..........90112s........106495s.........16384s......................RECOVERY
7........106496s........925695s.......819200s.........ext4......CACHE
8........925696s........966655s.........40960s......................MODEM
9........966656s........785855s.......819200s.........ext4......FACTORYFS
10....1785856s....15267806s...13481951s.........ext4......DATAFS
11..15267807s....15269854s...........2048s......................HIDDE
I want to know that when we flash specific partition images (say system.img, data.img, cache.img, etc.), then how does the software know where exactly to put those partition bytes? For example, if I flash system.img, which CHS/LBA sector will it consider as beginning of that block? If it is based on the MBR/EBR1 tables, what will happen if I'm flashing the MBR/EBR1 too?
The reason I'm asking is that I want to change the partitioning in EBR1 slightly, so that more space is allocated to `/data` partition instead of `/sdcard`. I've got an old but good conditioned MediaTek (MTK-6577) based smart-phone called Karbonn-A30 which is great in build quality and almost every other aspect, but it only has 500MB of Internal Storage (`/data` partition in Linux lingo) which is not good enough for apps. Presently, the MBR and EBR1 partitions are thus:
$disktype MBR
--- MBR
Regular file, size 512 bytes
DOS/MBR partition map
Partition 1: 2.000 TiB (2199023255040 bytes, 4294967295 sectors from 1024)
Type 0x05 (Extended)
Partition 2: 10 MiB (10485760 bytes, 20480 sectors from 18432)
Type 0x83 (Linux)
Partition 3: 10 MiB (10485760 bytes, 20480 sectors from 38912)
Type 0x83 (Linux)
Partition 4: 650 MiB (681574400 bytes, 1331200 sectors from 113152)
Type 0x83 (Linux)
$disktype EBR1
--- EBR1
Regular file, size 512 bytes
DOS/MBR partition map
Partition 1: 376 MiB (394264576 bytes, 770048 sectors from 1443328)
Type 0x83 (Linux)
Partition 2: 1.293 GiB (1388314624 bytes, 2711552 sectors from 2213376)
Type 0x83 (Linux)
Partition 3: 1.998 TiB (2196501691904 bytes, 4290042367 sectors from 4924928)
Type 0x83 (Linux)
Why this last partition which corresponds to `/sdcard` is left so large (1.998 TiB) is beyond my understanding! Since there is a good 2.5GB of space available on my actual `/sdcard` partition, I was thinking if I can alter the EBS1 and change the LBA addressing so that the third partition starts from 2097152 additional sectors (which comes to 1024MB or 1GB which is good enough for me), will it automatically increase my `/data` partition by 1GB and decrease the `/sdcard` by 1GB correspondingly? On XDA and other forums, I've read that people have successfully done this mod and achieved the change in partition sizes, but I first want to understand how it happens.
I want to know that when we flash specific partition images (say system.img, data.img, cache.img, etc.), then how does the software know where exactly to put those partition bytes? For example, if I flash system.img, which CHS/LBA sector will it consider as beginning of that block? If it is based on the MBR/EBR1 tables, what will happen if I'm flashing the MBR/EBR1 too?
The reason I'm asking is that I want to change the partitioning in EBR1 slightly, so that more space is allocated to /data partition instead of /sdcard. I've got an old but good conditioned MediaTek (MTK-6577) based smart-phone called Karbonn-A30 which is great in build quality and almost every other aspect, but it only has 500MB of Internal Storage (/data partition in Linux lingo) which is not good enough for apps. Presently, the MBR and EBR1 partitions are thus:
$disktype MBR
--- MBR
Regular file, size 512 bytes
DOS/MBR partition map
Partition 1: 2.000 TiB (2199023255040 bytes, 4294967295 sectors from 1024)
Type 0x05 (Extended)
Partition 2: 10 MiB (10485760 bytes, 20480 sectors from 18432)
Type 0x83 (Linux)
Partition 3: 10 MiB (10485760 bytes, 20480 sectors from 38912)
Type 0x83 (Linux)
Partition 4: 650 MiB (681574400 bytes, 1331200 sectors from 113152)
Type 0x83 (Linux)
$disktype EBR1
--- EBR1
Regular file, size 512 bytes
DOS/MBR partition map
Partition 1: 376 MiB (394264576 bytes, 770048 sectors from 1443328)
Type 0x83 (Linux)
Partition 2: 1.293 GiB (1388314624 bytes, 2711552 sectors from 2213376)
Type 0x83 (Linux)
Partition 3: 1.998 TiB (2196501691904 bytes, 4290042367 sectors from 4924928)
Type 0x83 (Linux)
Click to expand...
Click to collapse
Why this last partition which corresponds to /sdcard is left so large (1.998 TiB) is beyond my understanding! Since there is a good 2.5GB of space available on my actual /sdcard partition, I was thinking if I can alter the EBS1 and change the LBA addressing so that the third partition starts from 2097152 additional sectors (which comes to 1024MB or 1GB which is good enough for me), will it automatically increase my /data partition by 1GB and decrease the /sdcard by 1GB correspondingly? On XDA and other forums, I've read that people have successfully done this mod and achieved the change in partition sizes, but I first want to understand how it happens.
Some info:
Code:
Phone: Huawei P8 Lite (ALE-L21) - 1 SIM
So, i've been rooting my device and got it working after probably 12 hours of downloading Firmwares that were corrupted and had slow download speed and flashing up to 12 updates.
I got it working, still not rooted but i can live with that. TWRP is enough.
The problem is, I've downloaded some apps, and some updates were applied from Google Play.
What I've encountered is that the memory is just 2G big!
That's so strange, because I've already had a bigger storage size before flashing.
I'll show you what's the problem:
As i've found out, mmcblk0 is the internal NAND memory.
So, we fetch the partition table which is stored in mmcblk0
Code:
/data # fdisk -l /dev/block/mmcblk0
Found valid GPT with protective MBR; using GPT
Disk /dev/block/mmcblk0: 30785536 sectors, 2744M
Logical sector size: 512
Disk identifier (GUID): f9f21fff-a8d4-5f0e-9746-594869aec34e
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 30785535
Number Start (sector) End (sector) Size Code Name
...
40 8118272 30785535 [U][COLOR="Red"]10.8G[/COLOR][/U] 0700 userdata
Ok, so now we have this information,
Partition is 10.8G big
The partition name in the /dev/block is mmcblk0p40 (as mmcblk0 is the main internal disk and "/data" partition is the 40th partition)
Ok, It's least 10G big, so, what's the problem?
We see the partition is 10.8G big. BUT...
If we use "df" we can see the real deal
Code:
/data # df -h
Filesystem Size Used Available Use% Mounted on
/dev/block/mmcblk0p10
11.7M 7.3M 4.1M 64% /mnvm1:0
tmpfs 917.2M 16.0K 917.2M 0% /dev
tmpfs 917.2M 16.0K 917.2M 0% /tmp
/dev/block/mmcblk0p40
[U][COLOR="Red"]2.4G[/COLOR][/U] 2.4G 50.6M 98% /data
My mom's phone, that is the same phone as mine.
i(dot)imgur(dot)com(slash)dZcD1ME(dot)png
Mine instead
i(dot)imgur(dot)com(slash)Z9aybBu(dot)png
Anyone knows what's going on?
Do i need to wipe partition?
Do i need to resize fs?
Thanks beforehand
Solution:
If you have TWRP:
Wipe -> Advanced Wipe -> Select "Data" and press "Repair or Change File System" -> Resize -> Swipe to Resize
If you dont have TWRP:
Use resize2fs command