This thread is for discussing features and improvements of this rooting method
For questions and problems read the [HOWTO] thread
Project site online: archos-gen8-sde-rooting
wdl1908 said:
chulri what about creating a 1Gb file on the /mnt/storage and formatting that as ext3 copying all the original /data to it and then mounting that with a loop interface on /data.
Click to expand...
Click to collapse
That's what I tried previously (before the /data thing), but I had no luck and it's a big issue because android tries to unmount /mnt/storage when you connect your archos device to the computer but that's not possible because the lock of the mounted rw-file makes umounting of /mnt/storage impossible and I have to mount the rw-file before /mnt/storage gets mounted, that's another issue which must be resolved.
chulri said:
That's what I tried previously (before the /data thing), but I had no luck and it's a big issue because android tries to unmount /mnt/storage when you connect your archos device to the computer but that's not possible because the lock of the mounted rw-file makes umounting of /mnt/storage impossible and I have to mount the rw-file before /mnt/storage gets mounted, that's another issue which must be resolved.
Click to expand...
Click to collapse
Yeah I came to the same conclusion as you, that what I suggested would bork the usb mount option to the PC.
Another thing I realized is that the official firmware upgrades could probably update files on the data partition. So moving the whole partition is not an option as that would break the upgrade process.
I've been looking at splitting the storage partition in several parts with parted I found an arm binary at http://plugapps.com/arm/ maybe these can be included in the initramfs.
I've also been analyzing my data partition
Code:
# du -s /data/*
112003 app
70503 dalvik-cache
40084 data
4622 test
The test directory is the place where the google market is installed via arctools or gappsinstaller.
So if it's possible to split the storage partition in several part we could move these dirs to it's own partition. This would not be optimal a good solution would be to move the complete data partition over but this needs a bit of thinking how to handle upgrades.
wdl1908 said:
So if it's possible to split the storage partition in several part we could move these dirs to it's own partition. This would not be optimal a good solution would be to move the complete data partition over but this needs a bit of thinking how to handle upgrades.
Click to expand...
Click to collapse
We could shrink the internal storage and append partition(s) after it. I'll give it a try, as long as my usb port is broken I have more time to focus on this here
chulri said:
We could shrink the internal storage and append partition(s) after it. I'll give it a try, as long as my usb port is broken I have more time to focus on this here
Click to expand...
Click to collapse
I've been trying to cross compile e2fsprogs and parted but I can't seem to get it.
Code:
e2fsprogs-1.41.14$ cross ./configure --host=arm-linux-uclibcgnueabi --build=i686-linux
Completes without errors but the make does not complete.
Code:
gen_uuid.c:(.text+0x418): undefined reference to `__aeabi_read_tp'
../../lib/libuuid.a(gen_uuid.o):gen_uuid.c:(.text+0x788): more undefined references to `__aeabi_read_tp' follow
I've tried to use the pre-compiled packages but it seems they don't work or i'm missing something.
fdisk is already included in initramfs thus no need for a parted binary.
edit: but to minimize data loss we need a resize2fs binary to resize the fat/ext3 partition
mkfs.ext3 (for the rw partition) and fsck are included too in the initramfs by archos
chulri said:
fdisk is already included in initramfs thus no need for a parted binary.
edit: but to minimize data loss we need a resize2fs binary to resize the fat/ext3 partition
mkfs.ext3 (for the rw partition) and fsck are included too in the initramfs by archos
Click to expand...
Click to collapse
Yep resize2fs is part of e2fsprogs. I've been working on the packages in the buildroot there seems to be a lot of errors but I finally succeeded in building the e2fsprogs package. but riseze2fs is not included. I need to check the config for that package maybe there is an option missing.
To get the buildroot working properly you need to copy the file
Code:
cp local/g8_arm/g8_arm.config .config
remove the line
Code:
package/apdf/Config.in
from .config.cmd
remove the line
Code:
depends on BR2_EXT_UCLIBC_VERSION_0_9_30_1
from toolchain/uClibc/Config.in
then in the buildroot directory execute
Code:
make menuconfig
enable the e2fsprogs in Package selection -> Harware handling
also you have to remove the --disable-resizer from the e2fsprogs.mk file else the resizer is not build.
I can't believe this build package from archos is very up-to-date it seems very strange that all these bugs are in there how where they ever building a good firmware.
but that builds dynamic linked binaries, doesn't it? but we need a static build, don't we?
chulri said:
but that builds dynamic linked binaries, doesn't it? but we need a static build, don't we?
Click to expand...
Click to collapse
Yeah stupid me it needs to run in the initramfs and that does not contain any libraries. Let me check to see if it's possible to link it statically.
and because it has to be statically linked, maybe we better just take the newest e2fsprogs (btw.: does this support FAT resizing?!) and compile it without that buildroot stuff (except for the toolchain of course, we need that to crosscompile)
chulri said:
and because it has to be statically linked, maybe we better just take the newest e2fsprogs (btw.: does this support FAT resizing?!) and compile it without that buildroot stuff (except for the toolchain of course, we need that to crosscompile)
Click to expand...
Click to collapse
Well I tried that and failed. That's why I wanted to do it in the buildroot. I'll try again later need to create a clean environment and do some diffs after I fixed all the stuff that's wrong.
wdl1908 said:
Well I tried that and failed. That's why I wanted to do it in the buildroot. I'll try again later need to create a clean environment and do some diffs after I fixed all the stuff that's wrong.
Click to expand...
Click to collapse
I think I got it.
Add
Code:
export BOARD=g8_arm
To your .bashrc then in the buildroot directory do a make it will take a while as it needs to build everything. This is just a precaution as i think the statically linked resize2fs needs some linking with uclib libraries.
After that is finished do a
Code:
make e2fsprogs LDFLAGS=-static
in the buildroot directory. You should find the resize2fs binary in the directory buildroot/project_build_arm/uclibc/root/sbin
Code:
$ file resize2fs
resize2fs: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, not stripped
resize2fs does not resize vfat so we probably need parted and some extra utils
How to compile parted with buildroot.
I found the attached files on some forum
e3fsprogs.mk is a replacement for the existing file.
Config.in parted.mk and parted-001-ui.cast.patch need to be placed in the directory buildroot/package/parted
then execute the following commands
Code:
make e2fsprogs LDFLAGS=-static
make e2fsprogs-libs
make parted LDFLAGS=-static
you can find the statically linked parted in buildroot/build_arm/parted-2.3/parted
and this is what i tried.
Code:
# [B]parted /dev/block/mmcblk1[/B]
GNU Parted 2.3
Using /dev/block/mmcblk1
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) [B]print[/B]
print
Model: MMC MMC08G (sd/mmc)
Disk /dev/block/mmcblk1: 7466MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 8192B 7466MB 7466MB primary fat32 lba
(parted) [B]resize[/B]
resize
WARNING: you are attempting to use ./parted to operate on (resize) a file system.
./parted's file system manipulation code is not as robust as what you'll find in
dedicated, file-system-specific packages like e2fsprogs. We recommend
you use ./parted only to manipulate partition tables, whenever possible.
Support for performing most operations on most types of file systems
will be removed in an upcoming release.
Partition number? [B]1[/B]
1
Start? [8192B]?
End? [7466MB]? [B]6466MB[/B]
6466MB
(parted) [B]check[/B]
check
WARNING: you are attempting to use ./parted to operate on (check) a file system.
./parted's file system manipulation code is not as robust as what you'll find in
dedicated, file-system-specific packages like e2fsprogs. We recommend
you use ./parted only to manipulate partition tables, whenever possible.
Support for performing most operations on most types of file systems
will be removed in an upcoming release.
Partition number? [B]1[/B]
1
(parted) [B]quit[/B]
quit
Information: You may need to update /etc/fstab.
#[B]fdisk /dev/block/mmcblk1[/B]
The number of cylinders for this disk is set to 227840.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): [B]p[/B]
Disk /dev/block/mmcblk1: 7465 MB, 7465861120 bytes
4 heads, 16 sectors/track, 227840 cylinders
Units = cylinders of 64 * 512 = 32768 bytes
Device Boot Start End Blocks Id System
/dev/block/mmcblk1p1 1 197327 6314445+ c Win95 FAT32 (LBA)
Command (m for help): [B]n[/B]
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): [B]2[/B]
First cylinder (197327-227840, default 197327): Using default value 197327
Last cylinder or +size or +sizeM or +sizeK (197327-227840, default 227840): Using default value 227840
Command (m for help): [B]p[/B]
Disk /dev/block/mmcblk1: 7465 MB, 7465861120 bytes
4 heads, 16 sectors/track, 227840 cylinders
Units = cylinders of 64 * 512 = 32768 bytes
Device Boot Start End Blocks Id System
/dev/block/mmcblk1p1 1 197327 6314445+ c Win95 FAT32 (LBA)
/dev/block/mmcblk1p2 197327 227840 976426+ 83 Linux
Command (m for help): [B]w[/B]
The partition table has been altered!
Calling ioctl() to re-read partition table
# [B]mkfs.ext3 -v -I 128 /dev/block/mmcblk1p2[/B]
mke2fs 1.40.9 (27-Apr-2008)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
61184 inodes, 244106 blocks
12205 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=251658240
8 block groups
32768 blocks per group, 32768 fragments per group
7648 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 28 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
# [B]tune2fs.static -c -1 -i 0 -m 1 /dev/block/mmcblk1p2[/B]
tune2fs 1.40.9 (27-Apr-2008)
Setting maximal mount count to -1
Setting interval between checks to 0 seconds
Setting reserved blocks percentage to 1% (2441 blocks)
I leave the scripting to you but with these utils it should work perfectly to resize the partition and create the second partition.
I copied the mkfs.ext3, fdisk and tune2fs.static from the recovery initramfs
I started hacking around and I came to the conclusion that it would be better to change the initramfs to mount /data from mmcblk1p2 if that partition exists and not if it's not existing and move the whole partition resizing, partition creating, partition deleting (if you wan't to revert without dataloss) and again resizing into an app. so the user has more control over what he's doing and see's if something is failing and not just get's a bootloop or some fancy log file.
edit: /data is mounted by /init.rc script, all of the above can be done by an app, incl. modifying /init.rc script. no need for any special initramfs, yay!
everybody who has +rw rooting installed will be able to use that app. I'm starting development...
edit2: project page online: http://code.google.com/p/archos-gen8-sde-rooting/
stay tuned
First test app: http://code.google.com/p/archos-gen8-sde-rooting/downloads/detail?name=AppDataResizer_v0.1.apk
Release notes:
initial test version v0.1:
- parted binary added
- test button lists partitions of mmcblk1 device
Click to expand...
Click to collapse
note: 250 GB version of the A70 is currently not supported.
chulri said:
First test app: http://code.google.com/p/archos-gen8-sde-rooting/downloads/detail?name=AppDataResizer_v0.1.apk
Release notes:
note: 250 GB version of the A70 is currently not supported.
Click to expand...
Click to collapse
Nice. Yep I was thinking about the transition from standard to custom and also came to the conclusion it had to be done outside the boot process scripts.
Edit: Should this app be installable via the usual way or should it be a system app? (Copied to /system/app)
What I was thinking was split the process in 3 steps.
Step1: Resize storage partition, Add new-data partition and format.
Step2: Copy existing /data to /new-data
Step3: Enable/Disable new-data
Maybe a step2a: To run after upgrade of firmware to check things that have changed.
The step1 requires a reboot as the partitioning should be done in the initramfs if you do that when apps are running you're going to have a hell of a time getting the storage partition unmounted (I know I had the problem when testing the parted binary)
Step2 can be done without any problem when storage is mounted and Step3 requires a reboot after the init.rc is changed.
wdl1908 said:
Nice. Yep I was thinking about the transition from standard to custom and also came to the conclusion it had to be done outside the boot process scripts.
Edit: Should this app be installable via the usual way or should it be a system app? (Copied to /system/app)
Click to expand...
Click to collapse
usual way (download and install) (or maybe I include it in the initramfs (like the Superuser.apk) and copy it to /system/app, but I don't like modifying initramfs any further, no need for 100 different versions )
wdl1908 said:
What I was thinking was split the process in 3 steps.
Step1: Resize storage partition, Add new-data partition and format.
Step2: Copy existing /data to /new-data
Step3: Enable/Disable new-data
Maybe a step2a: To run after upgrade of firmware to check things that have changed.
Click to expand...
Click to collapse
great, that were my plans too.
wdl1908 said:
The step1 requires a reboot as the partitioning should be done in the initramfs if you do that when apps are running you're going to have a hell of a time getting the storage partition unmounted (I know I had the problem when testing the parted binary)
Click to expand...
Click to collapse
No API to unmount /sdcard/? I think I got one: IMountService it's not a public API but android.os.FileUtils isn't public either and it's working great. I think IMountService is the API that the popup, which pops up when you connect your android device to the computer, uses. I think, no need to worry because android handles everything pretty well when you connect your device to the computer, isn't it?
wdl1908 said:
Step2 can be done without any problem when storage is mounted and Step3 requires a reboot after the init.rc is changed.
Click to expand...
Click to collapse
agreed
chulri said:
usual way (download and install) (or maybe I include it in the initramfs (like the Superuser.apk) and copy it to /system/app, but I don't like modifying initramfs any further, no need for 100 different versions )
Click to expand...
Click to collapse
I tried to install it but it won't install. logcat gives something like
Pckage chrulri.gen8.AppDataResizer has no certificated at entry res/layout/main.xml
Yep I agree no need for different versions of the initramfs
chulri said:
No API to unmount /sdcard/?
Click to expand...
Click to collapse
The problem is not only the mount of /mnt/storage if the user has used move2sd there are a lot of other mounts present that also uses that partition.
maybe the API will do. Needs to be tested.
One other remark. Let the AppDataResizer check for the unionfs directory so that you can be sure you'r running on the correct initramfs.
Related
Specifically, what do I need to install on my gtab so that it can read an sdcard formatted to ext2?
I've already installed Clockworkmod and Vegan-Tab Ginger. Maybe I need a different kernel too? I know very little about kernels - Are they device specific? Are they interchangeable? Can I change the kernel without wiping my files?
Has anyone ever had success with ext2 on the gtab?
deadfraggle said:
Specifically, what do I need to install on my gtab so that it can read an sdcard formatted to ext2?
Click to expand...
Click to collapse
Nothing.
I know very little about kernels - Are they device specific?
Click to expand...
Click to collapse
They have to be--that's their function after all.
Are they interchangeable?
Click to expand...
Click to collapse
They should be. For the gTablet, you can use either the Clemsyn or Pershoot kernels. Both have native extn support.
Can I change the kernel without wiping my files?
Click to expand...
Click to collapse
Yes.
Has anyone ever had success with ext2 on the gtab?
Click to expand...
Click to collapse
ext2/3/4 are all natively supported by the linux kernel, and issuing a mount command will work if you do it on the command line. However, the automounter program, called vold, likes to have ext4 or VFAT (aka FAT32) filesystems on the SD card. If your ext2 formatted SD card is not automatically mounted, format it again as ext4.
Formatted the sdcard to ext4, but still cannot read anything off it.
As for mounting through the terminal, if I use
fdisk -l
it shows nothing, not even an error. Is there another way to list disks so I know what to mount?
What I'm trying to do is use the Debian installer for Android, but the only version I could find is 2 years old. It's probably based on Lenny or earlier which does not have native ext4 support.
deadfraggle said:
Formatted the sdcard to ext4, but still cannot read anything off it.
Click to expand...
Click to collapse
What ROM are you on? Are you running Android or something else?
As for mounting through the terminal, if I use
fdisk -l
it shows nothing, not even an error. Is there another way to list disks so I know what to mount?
Click to expand...
Click to collapse
Code:
$ su
# /system/xbin/fdisk -l /dev/block/mmcblk3
Disk /dev/block/mmcblk3: 16.0 GB, 16097738752 bytes
255 heads, 63 sectors/track, 1957 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/block/mmcblk3p1 1 1709 13720703 c Win95 FAT32 (LBA)
/dev/block/mmcblk3p2 1709 1958 1999744+ 83 Linux
Use /dev/block/mmcblk2 for the external SD card. Mount it as:
Code:
$ su
# mount /dev/block/mmcblk2p1 /some/path
or
Code:
$ su
# mount -t ext4 /dev/block/mmcblk2p2 /some/path
rajeevvp said:
What ROM are you on? Are you running Android or something else?
Click to expand...
Click to collapse
Vegan-Tab Ginger edition
rajeevvp said:
Code:
$ su
# /system/xbin/fdisk -l /dev/block/mmcblk3
Click to expand...
Click to collapse
This gives me similar results to yours.
rajeevvp said:
Use /dev/block/mmcblk2 for the external SD card. Mount it as:
Code:
$ su
# mount /dev/block/mmcblk2p1 /some/path
Click to expand...
Click to collapse
My result:
Code:
$ su
# mount /dev/block/mmcblk2p1 /micro
mount: mounting /dev/block/mmcblk2p1 on /micro failed: No Such file or directory
Also tried
mount /dev/block/mmcblk2p2 /micro
with the same result.
rajeevvp said:
or
Code:
$ su
# mount -t ext4 /dev/block/mmcblk2p2 /some/path
Click to expand...
Click to collapse
My result:
Code:
$ su
# mount -t ext4 /dev/block/mmcblk2p2 /micro
mount: mounting /dev/block/mmcblk2p2 on /micro failed: No Such file or directory
Edit:
If I insert a ext2 formatted sdcard, I get a notice that it is being scanned for errors. It goes away after a minute or so.
If I go to /sdcard2 in Root Explorer, the folder is empty but the stats show a correct 2 gb of used space and the correct amount of free space.
(Also in Root Explorer, if I try to create a test file, it says 'successful' but no file is created.)
If someone here owns a gtab and can access a ext2/4 sdcard, please let me know what setup/Rom you are using. Or if you own an extra sdcard you can format to ext2, and use some other aftermarket ROM/different kernel on your gtab, please test and post your results.
The commands I gave were just examples, you'll have to adjust them to suit your system.
deadfraggle said:
If I insert a ext2 formatted sdcard, I get a notice that it is being scanned for errors. It goes away after a minute or so.
Click to expand...
Click to collapse
That looks like the correct behaviour. The external SD card is being fsck'd and then automounted.
If I go to /sdcard2 in Root Explorer, the folder is empty but the stats show a correct 2 gb of used space and the correct amount of free space.
Click to expand...
Click to collapse
This, again, is correct, except that on a newly created filesystem, Root Explorer should've shown a lost+found directory.
(Also in Root Explorer, if I try to create a test file, it says 'successful' but no file is created.)
Click to expand...
Click to collapse
Reformat the filesystem again and try creating a file using the command line:
Code:
$ su
# echo test > /mnt/sdcard2/test.txt
# cat /mnt/sdcard2/test.txt
test
#
My external SD card is formatted as ext3 and I have no problem using Root Explorer. With other file managers, you'll have to be careful because of the standard Unix permissions that come into effect on all extn filesystems. If you want to use file managers other than Root Explorer, just create a new directory on your ext2 filesystem and give that directory a user of "system" and a group of "sdcard_rw", and give (at least) the group "rwx" permissions. Use the user, group and permissions of the /mnt/sdcard directory as a guide:
Code:
$ ls -ld /mnt/sdcard
d---rwxr-x 22 system sdcard_rw 8192 Jan 1 1970 /mnt/sdcard
$ su
# mkdir /mnt/sdcard2/user-dir
# chmod 0775 /mnt/sdcard2/user-dir [I]#or 0075 to exactly match /mnt/sdcard[/I]
# chown system.sdcard_rw /mnt/sdcard2/user-dir
If you don't want to bother with all this, just format the SD card as VFAT, and Android will automatically mount the VFAT filesystem with an owner of "system" and a group of "sdcard_rw". And since (all?) file managers belong to the "sdcard_rw" group, they get automatic read-write permissions to that filesystem. BTW, the Terminal Emulator app also belongs to the "sdcard_rw" group, so you can freely write onto VFAT formatted SD cards on the command line without resorting to the 'su' command (the example above).
Granted, it's been a while since I researched this - but I learned many months ago that the version of VOLD in Froyo does not support anything else but vFAT - so it just won't mount EXT2, or NTFS for that matter.
the mount command would bypass VOLD and we know that NTFS should work, if it's a custom kernel. Conceivably EXT2 should also work, but since it was all manual scripting I just stopped researching it - mainly because I'd still have issues using the card with other devices so it wouldn't really be a portable solution anymore.
As much as I detest FAT32 for its file size limitations, it's still the "standard" between portable devices. The various vendors have yet to figure out a replacement, since they can't seem to agree on anything.
rajeevvp said:
My external SD card is formatted as ext3 and I have no problem using Root Explorer.
Click to expand...
Click to collapse
Figures. Never tried ext3, mainly because it's not a readily available option in Ubuntu. Tried to format to ext3 via the terminal but got a weird error, even after unmounting the drive:
"/dev/sdb is apparently in use by the system; will not make a filesystem here!"
So I booted in to Parted Magic with my netbook, wiped the sdcard, and created a new ext3 partition.
Success!!
The sdcard auto-mounts, and is accessible by Root Explorer, ES File Explorer and File Manager.
Ext3 will suit my purposes just fine. Sorry to make you write all the rest of your post, but it will be a handy reference.
Thank you a million times over!
@ roebeet
I'm humbled this post got your attention. Thanks for the great work!
deadfraggle said:
Figures. Never tried ext3, mainly because it's not a readily available option in Ubuntu.
Click to expand...
Click to collapse
The ext3 format was the default filesystem of Ubuntu, until just recently. It is generally considered better to use ext2 on a SD card. Since a SD card has a limited number of read/writes, a journaling filesystem like ext3/ext4 would use up the limited number of read/writes faster than using ext2. Also, never create a swap partition on a flash drive or SD card.
To format a SD card in Ubuntu, first determine the device name:
Code:
[email protected]:~$ sudo fdisk -l
[sudo] password for paul:
Disk /dev/sda: 64.6 GB, 64609058816 bytes
255 heads, 63 sectors/track, 7854 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0000d996
Device Boot Start End Blocks Id System
/dev/sda1 * 1 3890 31246393+ 83 Linux
/dev/sda2 3891 7854 31840830 83 Linux
Disk /dev/sdb: 16.4 GB, 16437477376 bytes
255 heads, 63 sectors/track, 1998 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000b3366
Device Boot Start End Blocks Id System
/dev/sdb1 1 1998 16048903+ 83 Linux
My EEEPC has a 64 GB hard drive, and a 16 GB SDHC card. So the card I want to format is /dev/sdb1. Use fdisk again for the formatting, here are the steps copied directly from my terminal:
Run commands with root privileges (sudo).
Find the disk:
# sudo fdisk -l
Format the disk (sdb1):
# sudo fdisk /dev/sdb1
Command (m for help):d (delete any existing partitions)
Command (m for help):n (create a new partition)
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4):1
Command (m for help):w (to write the changes to the disk)
Format the card. You may need to unmount it first:
# sudo umount /dev/sdb1
# sudo mkfs -t ext3 /dev/sdb1
This is a merged thread, from the two previous posts I created, both questions I awnserd myself. here is the awnser you really want multiple partitions for your phone
First you must run gparted from command promp on your computer, so connect your phone to your computer and run in the terminal:
Code:
adb shell
parted /dev/block/mmcblk0
print
remove any partitions
Code:
rm1
rm2
rm3
rm4
rm5
now create new partitions these partitions should be as so, for sense or 2.1, or gingerbread roms fat32 ext2 swap file is the order, for froyo I believe it is swap ext2 fat32, but I have not tried a froyo rom yet.
Code:
mkpartfs primary fat32 0 14500MB
mkpartfs primary ext2 14500MB 15500MB
mkpartfs primary linux-swap 15500MB 15900MB
now push swap.zip file from below to your phone, and flash swap.zip
now reboot
now open terminal emulator and type:
Code:
ls /dev/block/
this should print something like this:
mmcblk0p1
mmcblk0p2
mmcblk0p3
mntblock1
mntblock2
loop1
loop2
the mmcblk0p'# are the sdcard partitions
to mount the fat32 partition type:
Code:
mount -o rw -t vfat /dev/block/mmcblk0p1 /mnt/sdcard/
now use one of SwapScriptv2.1.1 thanks to cyanogen
type in terminal:
Code:
[B]swapscriptv2[/B]
Follow the prompts and you should see your new swap partition in use, by typing:
Code:
[B]free[/B]
in your terminal now if you woud like to have the swap started at boot time type
Code:
[B]bootswapv2[/B]
rd
and follow the prompts after this you should have a new 3 partitioned sdcard fat32 ext2 and swap and using and mounted on fat32 on sdcard and swap running
using the ext2 will be for either cach2cach appsor maybe linux, I have not decied yet
http://forum.cyanogenmod.com/topic/208-swap-enabledisable/
Flash from Recovery
Compatible with 2 and 3 partition layouts (ext(fat+ext+swap) and no ext(fat+swap))
http://www.mediafire...qdvxh7sos5svcvc
or
http://www.sendspace.com/file/h66oap
This script adds commands to terminal:
Code:
swapscriptv2
bootswapv2
swap-off
bootswap-off
vmtweaks
vmtweaks-boot
swapscriptv2 - you will be asked what partition layout you are using as well as swappiness, optional vm settings prompted
bootswapv2 - you will be asked what partition layout you are using as well as swappiness, and an init script will be placed for swap at boot time, optional boot time vm settings prompted
swap-off turns off active swap partition (error for parition not in use is normal)
bootswap-off removes bootswap init file.
vmtweaks allows changing settings for vfs_cache_pressure and page-cluster, some people have reported success in reducing these values.
vmtweaks-boot allows changing settings for vfs_cache_pressure and page-cluster and applying them at boot.
Let me know if there are any problems with the new script.
the following commands in the terminal
SwapScript: (v1)
Flash from Recovery
fat32+ext+swap or swap on /dev/block/mmcblk0p3
http://www.mediafire...bnc79k6pkespzbj
fat32+swap no ext or swap on /dev/block/mmcblk0p2
http://www.mediafire...b3ykdk3r21js96q
This script adds several commands to terminal:
swapon10
swapon20
swapon30
swapon40
swapon50
swapon60
swapon70
swapon80
swapon90
bootswap10
bootswap20
bootswap30
bootswap40
bootswap50
bootswap60
bootswap70
bootswap80
bootswap90
swap-off
bootswap-off
Instructions
swaponXX (20,30,40,50,60) - will result in swap being turned on with a swappiness of XX
bootswapXX (20,30,40,50,60) - will enable swap at boot time with a swappiness of XX (no usuerinit.sh needed)
swap-off - Turns running swap off.
bootswap-off - removes init swap script from boot. (see above notes for removal if you used the newer script)
SWAPFILE CREATOR:
http://www.mediafire...yr7w2yd5sfobyte
For anyone interested in testing different swap sizes and swappiness or those with no partition other than the standard fat, I threw together a swapfile script allowing for several common configurations. Similar to my swapscript after flashing from recovery a number of new commands will become available in terminal:
Instructions
First create a swap file on your sdcard or sd-ext partition:
swapfileXX (size 12,24,36,64,96,128 on sdcard fat partition)
extswapXX (size 12,24,36,64,96,128 on sdcard ext partition)
Then set swappiness:
swpXX (XX is swappiness in increments of 10 up to 90)
errors in script are normal, script references both fat and ext locations, will fix this next update
swapfile-off (stop swap file in use)
errors in script are normal, script references both fat and ext locations, will fix this next update
clearswapfile (stops swap file and removes all swap files created)
errors in script are normal, script references both fat and ext locations, will fix this next update
Swapfile at boot ONLY SUPPORTED FOR SWAPFILE ON EXT:
bootswapfileXX (XX is swappiness in increments of 10 up to 90)
bootswapfil-off - removes bootswap
SwapFileScript:
http://www.mediafire...yr7w2yd5sfobyte
How to tell if swap is currently in use:
in terminal emulator or adb shell type 'free' with no 's and press enter
if there is a number in the space that says swap you have swap enabled
Hi all,
I'm been able to mount and chroot to sdcard with the lastest Gentoo stage3-armv7a and portage.
So, now i can compile my programs on TF201, awersome!
but...
using linux from chroot sdcard have it's advantages ( no kernel configuration, no drivers , etc..) but it is quite slow... expecially python scripts ( which gentoo packages system is based on ).
now, I think "resize the 32G partition to 25G, and create a ext4 fs for gentoo. then modify 'initramfs' for asking what OS start."
it could be nice, because i haven't to configure a new kernel, i still use te NVIDIA STOCK Kernel (with all it's optimization for that device ) but on a different OS.
and now the problem...
Code:
[email protected]:/ # fdisk /dev/block/mmcblk0
Device contains neither a valid DOS partition table, nor Sun, SGI, OSF or GPT disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that the previous content
won't be recoverable.
The number of cylinders for this disk is set to 969984.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): q
so, how can i modify TF201 partition table?
sorry for my bad english.
thanks in advance.
-- tux_mind
I think that the possible solutions are these:
resize the 27G partition to 24GB, create a 3GB ext4 partition and copy in all gentoo files.
copy gentoo files to a directory inside the 27GB partition.
then modify init.rc as follow:
mount the ext4 partition on /newroot, mount {proc,sys,dev,tmp} , make dev from sys (how can i do this ?) and chroot into /newroot.
mount the 27GB partition on /garbage, mount /garbage/gentoo on /newroot, mount{proc,sys,dev,tmp} , make dev from sys ( how can i do this ?) and chroot into /newroot.
if I write a bad init.rc, how i can restore the previous one?
or how i can reflash the STOCK firmware?
thanks again.
Hy!
I have a mi2s and this phone is come to separated partitions in its internal drive. It has separated data and sdcard partition. My sdcard partition not mounted for some reason.
I want to keep this partition system, I just want to either mount the sdcard partition, or resize them without loseing data. (I can delete the sdcard partition but I want the data partition untouched, I had a long fight till this rom started to work with google play store, and I dont really want to remach it after all my apps are installed... Fun thing that after the first boot both partitions were mounted, after my first reboot only the data.)
I tried:
adb mount - adb sees it Android not sees it
write it to the fstab.qalcom - its on the / if I reboot the phone its loaded from somewhere again (I know its a ramdisk), my modifications are not permanent on there
I have basic linux knowlage and I started to dig into it, but I cant google out a general solution.
My questions:
How can I mount a fs like the usb otg from adb/android shell?
Can I edit the fstab file in its permanent store on an installed rooted device? And if I can where?
If I place new lines to the fstab on rootfs how can I tell the system to "reload" it?
Can I extend an ext4 partition from adb without loseing its data? *
* I have the required tools like parted from xiaomi forum, I cant post the link but you can google it with "Mi2S extending size of storage partition stillka".
Any help appreciated, and sorry for my english I'm not native.
So the basics:
If you can mount it from adb its a half win!
Try search the correct block partition and mount it with -t, add the correct file system and don't try auto it.
After you can mount it, you need to start an sdcard process its in /system/bin/sdcard. I had to see the custom rom implementation for that, in cm u need to param it "sdcard from to 1023 1023", but in samsung devices the to is hardcoded, and you nedd to do some sed magic.
After that your android programs will see it as a valid sdcard partition.
The harder way:
Wrap it to a startup script.
Add this script somewhere to run at bootup.
I'm still working on it, but I'm closer and closer. After I have the final solution I will write here once more.
I get so much help from there:
http://forum.xda-developers.com/showthread.php?t=2467048
If somebody want to do this:
After few hours of trying to mount the filessystem in boottime (in CM 12.1 its a hard work), i gave up, and went to a repartitioning way.
BE CAREFUL YOU CAN BRICK YOUR DEVICE IF YOU HAVE NO IDEA WHAT IM TALKING ABOUT!
I merged 2 tutorials:
reboot phone into CWM, connect phone to PC
connect to phone over adb and check if you are root
mount system
umount cache
umount data
copy content of partition_tools.zip into /system/bin and add executable attributes if necessary
Run parted on your device: parted /dev/sdX
Change display unit to sectors: unit s
Print current partition table and note the start sector for your partition: p
Delete your partition (won't delete the data or filesystem): rm <number>
Delete your partition (the second one we will delete data from there): rm <number>
Recreate the partition with the starting sector from above: mkpart primary <start> <end>
Recreate partition 27 (the last) mkpartfs primary ext2 3070 15758
name 26 userdata #we have to set back partition labels
name 27 storage
Exit parted: quit
Check the filesystem of 26: sudo e2fsck -f /dev/sdXX
Resize filesystem 26: sudo resize2fs /dev/sdXX
restore partition 27 with:
tune2fs -j /dev/block/mmcblk0p27
e2fsck -fDp /dev/block/mmcblk0p27
tune2fs -O extents,uninit_bg,dir_index /dev/block/mmcblk0p27
e2fsck -fDp /dev/block/mmcblk0p27
Of course in parted print you can see your original partition layout and this case it is possible that you have other partition numbers (my 26 partition is labeld by userdata and 27 with storage, and I gave more space to userdata from storage without loseing any data from userdata).
You can download the partition_tools.zip from the original miui forum, try to search to mi2s extending size of storage partition. (yes it will work with other devices too)
4 this kind of guys x)
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Code:
Warning:
Your device will never boot :D
Does this enough?
Ok jk but consider its possible
So don't blame me,
not responsible for anything
Trick:
Read 2nd Post First
(if u think necessary)(i would)
Why ?? :
Cuz u want to increase/decrease size on internal storage/internal sd card/nand/emmc.
So u can save Avengers 1080p in dual audio
I.e. default internal storage will increase from 24.x GB to 26.x GB
Sounds cool ?
Go ahead
Tools required:
0. Nandorid Backup ,
back up everything every way you can/know
1. Rooted Phone
2. Custom Recovery with ADB Sideload
3. Minimal ADB and Fastboot Tools(for Computer)
4 parted utilities.zip (download from below)
5. Computer should recognise device for that install necessary drive
6. brain, commen sense, patients,calm etc.
---> PROCEDURE/STEPS
(will add screen shot, Rewrite again )
1.
Extract 'parted' from zip copy to "/system/bin"
(if can't Open Es File explorer app>find & tape Root explorer option>mount r/w option> mount system to r/w (read/write allow)
2.
Put phone in TWRP Recovery
3.
Connect to computer
On command line interface
(Windows>Run>CMD>enter)
#commands:
adb shell
su
parted /dev/block/mmcblk0
you will see the following screen
4.
Now to see the partitions and their partition numer use the following command
print
It will output a screen like follows
From the list above we can see partition number, the start position, the end position and the type of partition
Now from the List we need to figure out what partitions we need to remove and remake, and since we are majorly concerned about the Userdata and system partition, we will be playing around with those partitions only. But from the screenshot above you can see that Between the system and the userdata partition there is the cache partition.
To avoid any problems further. i would suggest you take a screenshot of this list .
5
Now Enlisting the partitions that we would have to remove inorder to resize them, they are:-
partition no. 27 i.e. system
partition no. 28 i.e cache
partition no. 29 i.e. userdata
In case you are using a device that has 2 system partitions (For eg. MI3) and you wanna reduce system2 and increase system1 you will need to delete only those 2 partitions
So now going further we will now remove the partitions using the following commands
rm 27
The above command will remove the partition no. 27 i.e the system partition
rm 28
This will remove the partition no. 28 i.e cache
rm 29
This will remove the partition no. 29 i.e. userdata
At this point of time you have lost all the data on your internal storage, system and cache partition. that means your device wont boot anymore except in recovery (which we are already in )
6.
Now that we have removed the partitions, we have raw space with us, which we would allocate to the three partitions that we removed, as per our choice.
To do that, we use the following commands
mkpartfs primary ext2 336 1250
mkpartfs primary ext2 1250 1653
mkpartfs primary ext2 1653 7818
336 is the start position of the partition and 1250 is the end position of the paritition.
since the partitions we removed started at 336 and ended at 7818, for my device, we would be able to play around only between these two numbers. i.e 336 and 7818
The first parition we made here is numbered 27 by default and will be of the size (1250-336 = 914) MBs
The second partition we made is numbered 28 and will be of the size 403 MB. (This is the cache partition and since I did not want to change the size i kept it the same)
The third partition we made is numbered 29 and will be of the size (7818-1653 = 6165) MB
The Important thing we need to note here is that the partition Number should not change as this could cause problems later on. i.e., considering my case the system parition should be 27, cache should be 28 and userdata should be 29.
7.
Now we will name these partitions using the following commands
name 27 system
name 28 cache
name 29 userdata
8.
Now punch the following command
quit
This will make you come out of parted utility. so that we can perform the next set of commands
Now we need to convert the partitions from ext2 to ext4 using the following commands
**// For System Partition //**
tune2fs -j /dev/block/mmcblk0p27
e2fsck -fDp /dev/block/mmcblk0p27
tune2fs -O extents,uninit_bg,dir_index /dev/block/mmcblk0p27
e2fsck -fDp /dev/block/mmcblk0p27
**// **
**// For cache Partition //**
tune2fs -j /dev/block/mmcblk0p28
e2fsck -fDp /dev/block/mmcblk0p28
tune2fs -O extents,uninit_bg,dir_index /dev/block/mmcblk0p28
e2fsck -fDp /dev/block/mmcblk0p28
**// **
**// For userdata Partition //**
tune2fs -j /dev/block/mmcblk0p29
e2fsck -fDp /dev/block/mmcblk0p29
tune2fs -O extents,uninit_bg,dir_index /dev/block/mmcblk0p29
e2fsck -fDp /dev/block/mmcblk0p29
**// **
9.
Now we have changed the type of the 3 partitions that we created from ext2 to ext4 and we are ready to go
Now we will enter the parted utility again and check to see if the partitions are made properly or not.
parted /dev/block/mmcblk0
print
As we can see in the screenshot. The system partition is now 914 MB and the userdata partition is no 6165 MB
Now punch the command
quit
exit
exit
Yes you need to exit two times.. first to come out of super user and second to come out of ADB shell
10.
Now Once the repartitioning is done
you need to flash your ROM
(MIUI /Lineage/RR/Viper/Mokee etc)
Now exit sideload in the TWRP and goto Install and select the Rom package and flash it.
Reboot and you should be done!
CREDITS, Thanks :
https://iwf1.com/how-to-re-partition-your-android-tablet-or-smartphone-all-options-included-change-size-fs-type-etc
https://forum.xda-developers.com/crossdevice-dev/android-one-general/guide-repartition-internal-storage-to-t3292159
http://en.miui.com/thread-183258-1-1.html
Reserved
sry for being so direct
here explanation for things that might didn't understood
->
Note: as much as I’d like to, I do not currently possess the resources to grant readers technical support. The guide itself, in the vast majority of cases should be sufficient help. For any individual issue please refer to online forums which are meant for that purpose.
Why Re-Partition?
If you’re here out of curiosity or any other reason than necessity, you may wonder: “why would anyone want to repartition a smartphone / tablet?”.
To answer, each person probably has their own reason, a couple of such I can think of are:
In the case of an upgrade, when there’s not enough space on one partition but others has aplenty.
When you don’t have enough space to install more apps – since your data partition is full – so you want to resize that partition.
Of course, some cases can be resolved via a more simple solution, however, if you want to deal with the problem directly and not just bypassing it – repartition is perhaps the best way to go.
In order to re-partition your device, basically, these are the steps you’ll need to make:
1. Connect your device to your PC.
2. Open up a command shell, on Windows you’d probably use CMD / PowerShell, on Mac / Linux – Terminal.
2-a. Reboot into recovery mode. (Optional, depends on the partition you plan to modify)
3. Use ADB to connect to your device.
4. Launch a partitioning software.
5. Start partitioning.
6. Reinstall any required system file in case you’ve deleted those and afterwards you may exit the shell and reboot your device.
Explaining The Steps
1. We use another machine, in this case our PC, in order to re-partition Android, because we want to have access to our Android system just in case something goes wrong during the partitioning, and also, since Android system cannot be run and resized at the same time.
2. This step is rather self explanatory. We must use a flexible tool that will assist us re-partitioning.
2-a. If you wish to modify any partition other than the recovery partition, I recommend booting into recovery mode in order to do so.
Being inside recovery mode wouldn’t interfere with the process as you may delete the system partition and its files. Furthermore, it might become handy in case you’ll need to reinstall Android system.
3. ADB is an official Android developers tool and it also happens to be the most suitable tool for the job at the moment.
5.
Since this step depends on what you’re actually intending to do with your device – it doesn’t say much, it is an open step, open for your decisions that is.
By typing the help command of your partitioning tool you’ll get a list of the options available to you. For example, these are a few of the options you’ll see in parted:
rm NUMBER – will delete a partition
mkpart – will create a partition
unit UNIT – will set unit type, for example “unit b” will set parted to use bytes, “unit gb” for Giga bytes, etc… (Tip: use bytes for maximum accuracy).
name NUMBER NAME – lets you name the partition (upon making any changes, don’t forget to name the partitions properly).
q – quit parted.
Important Things To Note:
fdisk executes your commands only when changes are saved whereas Parted executes them instantly.
fdisk may not fully support GPT partition table, thus in case yours is GPT, it’s recommended to use Parted instead.
6.
* Tip: If you’re unsure about your device partition names, you can use a command that shows them: cat /proc/partitions.
As you can see, there’s mmcblk0 – which is the main block where all the partitions are stored.
And there are 12 partitions in total which uses the name format “mmcblk0” plus “p” and a number that represent them, such as: mmcblk0p1, mmcblk0p2, etc…
Blocks lie inside /dev directory in Linux (yes, Android is a variation of Linux). We will use the block we’ve found in order to re-partition the device.
A short explanation regarding the relevant partitions:
Partition number 9 labeled FACTORYFS – is the “system” partition where all the operating system files are stored in.
Number 10 – DATAFS – is the “data” partition where all applications usually save their data.
Number 11 – UMS (USB Mass Storage) – is the internal storage partition where all the stuff such as: pictures, videos, etc, are stored in.
To resize those, you’ll have to delete them all and then assign different sizes – this is where a backup might become handy (I recommend copying all the files to your computer prior to erasing any partition).
After erasing and re-partitioning the available space, you should re-label the partitions with the same names (for compatibility sake) and create file systems (I prefer using ext4, however, if your device came with other specific file systems, it might be a good idea to stick to those).
So, how do we do it?
Here’s the sequence of commands with a following explanation:
(parted) rm 9
(parted) rm 10
(parted) rm 11
Will delete FACTORYFS, DATAFS and UMS respectively.
************
From another thread different info
By default, Parted uses MB as the storage unit. To prevent possible unused space after repartitioning, we’ll use sectors as a unit instead.
Type
unit s
This’ll change to sectors.
Type
print
It’ll give a warning, just type
i
Then:
print free
At the top, you’ll see that the sector size is written. Write this number down somewhere. For my Android One 4GB, the sector size is 512 bytes.
Now, you need to understand what the list means. Each horizontal row shows the details of a partition.
The 1st column shows the partition number.
The 2nd column shows the start offset of that partition. That means that the partition starts at the location mentioned.
The 3rd column shows where the partition ends. Notice that each partition starts exactly 1 sector after the previous one ends.
The 4th column is obviously the size of the partition.
The 5th column is the file system used by the partition. If nothing is written in this column, that means that it’s a binary partition.
The 6th column is the partition name.
You’ll see that the sizes in that list are weird. They’re not in any standard unit you might know. That’s because we used sectors instead of megabytes. The ‘s’ after each number indicates that it’s in sectors. (You can use the default MB unit (1MB=1000 KB. 1KB=1000bytes), or the MiB unit (1MiB=1024 KiB), but that just might leave 1 or 2 MB of space unused. So, I’m using sectors).
Remember that 1 sector = 512 bytes for my phone.
There’s some free space at the top and bottom of the list. Leave that free space there. Do not make partitions using those.
To convert sectors to MiB or KiB:
1s = 512bytes (Use the sector size you wrote down previously for this step, it might not be 512 bytes for you)
1024 bytes = 1 KiB
1024 KiB = 1 MiB
1024 MiB = 1GiB
So, 4833280s = (4833280 x 512) B = 2474639360 B
= (2474639360 / 1024) KiB = 2416640 KiB
= (2416640 /1024) MiB = 2360 MiB
= (2360 / 1024) GiB = 2.30 GiB
We’ll use another terminal window with sizes in MiB now. So open another Parted prompt in a new terminal / command prompt window, but instead of
unit s,
this time, write
unit MiB
Type “print”, “i”, and “print free” again
Look at my 11th partition. Its size is 8MiB. I know that this logo partition doesn’t need more than 2 MiB. So, I’ll make it smaller.
When you make partitions smaller, all the data inside will be lost. So, we need to back up the partitions first.
Open a 3rd terminal window. Type
adb shell dd if=/dev/block/mmcblk0p11 of=/microSD/p11
The “dd” command copies bytes from the “if=” location, to the “of=” location. The internal storage is /dev/block/mmcblk0. The “p11” after that refers to the partition we are backing up. Notice that in the Parted list, “logo” has a partition number of “11”. So the general command to back up partitions is
adb shell dd if=/dev/block/mmcblk0p<partition_number> of=/microSD/p<partition_number>
From recovery, unmount all partitions except microSD and oem. Then back up partitions 11, and 13 from PC. We will copy the files from OEM instead of using dd. So type
adb shell mkdir /microSD/oem
adb shell cp –a /oem/ /microSD/oem
Go to /microSD/oem/oem/app with TWRP’s file manager, and delete everything there.
Open the 1st terminal with sizes in sectors.
Type
rm 11
This will delete the oem partition. Type
print free
.
Abhijeet Rajgor said:
sry for being so direct
here explanation for things that might didn't understood
->
Note: as much as I’d like to, I do not currently possess the resources to grant readers technical support. The guide itself, in the vast majority of cases should be sufficient help. For any individual issue please refer to online forums which are meant for that purpose.
Why Re-Partition?
If you’re here out of curiosity or any other reason than necessity, you may wonder: “why would anyone want to repartition a smartphone / tablet?”.
To answer, each person probably has their own reason, a couple of such I can think of are:
In the case of an upgrade, when there’s not enough space on one partition but others has aplenty.
When you don’t have enough space to install more apps – since your data partition is full – so you want to resize that partition.
Of course, some cases can be resolved via a more simple solution, however, if you want to deal with the problem directly and not just bypassing it – repartition is perhaps the best way to go.
Click to expand...
Click to collapse
Hey, Can you tell me the partition sizes for different partitions i.e. system, data, cache.... for the attached zip file.
incomplete guide
Bro go to link in the post guide is yet incomplete , I'll rewrite again with more specific n Direct to point
Thanks
Abhijeet Rajgor said:
Bro go to link in the post guide is yet incomplete , I'll rewrite again with more specific n Direct to point
Thanks
Click to expand...
Click to collapse
Do you know how we can delete the /cust partition and include it into the system?
I don't know
bekcicandrej said:
Do you know how we can delete the /cust partition and include it into the system?
Click to expand...
Click to collapse
Am yet working on my device itself yet didn't tried on Redmi 3s,
Cwm recovery for my Alcatel