Hey guys.
Some previous Samsung devices had no external storage at all but still mapped the biggest flash partition to /mnt/sdcard.
The Galaxy Tab 2 7.0 has a Micro SD card slot on it (one of the reasons I bought the thing!), but I guess for compatibility they still mount an internal flash storage partition to /sdcard. The actual micro SD card gets mounted to freaking /mnt/extSdCard.
Why does this matter?
Basically, tons of stuff in Android is setup to dump the large files to /sdcard by default. Things like games that require an extra download, the Camera app, etc. I've got a 32GB microSD card in there, and it makes me really frustrated that stuff won't just automatically use that.
So. What I'm looking to do is switch them around, so the internal fake flash partition ends up mounting to /mnt/extSdCard and the REAL microSD card mounts to /mnt/sdcard. That way my big huge card is where most data will end up automagically. Ultimately if I could just dump the internal "sdcard" partition and give that space to other parts of the system, that'd be sweet, but at this point I'm still kindof in la la land with Android, so I'll be happy just to get the mounts flipped around.
I do Linux stuff for work, and use a 5-disk file server at home running Ubuntu Server, so I approached this problem in a Linux way: why not mount via fstab??
Turns out Android doesn't actually directly have a /etc/fstab. Instead you've got /system/etc/vold.fstab.
From my brief research, this file appears to work pretty much the same way as fstab in Linux.
However, the stock one doesn't contain any mountpoint for the fake internal sdcard. vold.fstab seems to tell the vold executable what to do during boot-time.
My first problem: the vold.fstab file on my device doesn't contain any mount instructions for the /sdcard device.
Not a problem, I have SSH and WinSCP working, so I got a read on the mount points likeso:
Code:
127|[email protected]:/dev/block # cat /proc/mounts
rootfs / rootfs ro,noatime 0 0
tmpfs /dev tmpfs rw,nosuid,noatime,mode=755 0 0
devpts /dev/pts devpts rw,noatime,mode=600 0 0
proc /proc proc rw,noatime 0 0
sysfs /sys sysfs rw,noatime 0 0
none /acct cgroup rw,noatime,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,noatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,noatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,noatime,cpu 0 0
/dev/block/platform/omap/omap_hsmmc.1/by-name/FACTORYFS /system ext4 ro,noatime,barrier=1,data=ordered 0 0
/dev/block/platform/omap/omap_hsmmc.1/by-name/DATAFS /data ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered,noauto_da_alloc,discard 0 0
/dev/block/platform/omap/omap_hsmmc.1/by-name/CACHE /cache ext4 rw,nosuid,nodev,noatime,errors=panic,barrier=1,nomblk_io_submit,data=ordered 0 0
/dev/block/platform/omap/omap_hsmmc.1/by-name/EFS /efs ext4 rw,noatime,barrier=1,data=ordered 0 0
/sys/kernel/debug /sys/kernel/debug debugfs rw,noatime 0 0
/dev/fuse /mnt/sdcard fuse rw,nosuid,nodev,noatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
/dev/block/vold/179:25 /mnt/extSdCard vfat rw,dirsync,nosuid,nodev,noexec,noatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
OK. so the vold.fstab file contains:
Code:
## Vold 2.0 Generic fstab
## - San Mehat ([email protected])
##
#######################
## Regular device mount
##
## Format: dev_mount <label> <mount_point> <part> <sysfs_path1...>
## label - Label for the volume
## mount_point - Where the volume will be mounted
## part - Partition # (1 based), or 'auto' for first usable partition.
## <sysfs_path> - List of sysfs paths to source devices
######################
# external sdcard
dev_mount sdcard /mnt/extSdCard auto /devices/platform/omap/omap_hsmmc.0/mmc_host/mmc1
#usb host device
dev_mount usbdisk /mnt/usbdisk auto /devices/platform/omap/musb-omap2430/musb-hdrc/usb1
So, I have made a backup of my vold.fstab file, but I'm a little gun shy about making changes to it, particularly adding a new line for the "internal" sdcard. I know there are a couple of other ways to probably do this, like an init.d shell script that just executes the needed mount commands, and I'm honestly not sure if putting an entry for /mnt/sdcard into vold.fstab will override the mounts that are (I guess?) coming from the ramdisk init sequence. Any input, XDA devs?
Go for it :thumbup:
Sent from my GT-P3100 using xda app-developers app
I have the same Problem on my Galaxy Tab2 7.0 WIFI (GT-P3110 8 GB). I found a temporary Soloution for me. The App that i use is LINK2SD. You should have two partitions on SD card and both should be primary.
The first FAT partition is your standard sdcard (mountetd on extSdCard). The second partition /data/sdext2 is used for application files and can be ext2, ext3, ext4 or FAT32. Here are more informations about it: http://rootzwiki.com/topic/24500-if...move-apps-to-sd-card/page__st__10#entry701146
In this thread are the same Question: http://forum.xda-developers.com/showthread.php?t=1679037
I think it will read the changes. For example on the htc rezound the firmware update for ics changed the mount points from what was used in gb.So in order to run a gb Rom on ics firmware and vice versa the Fix was swaping vstab. Figure as long as u only mess with the sd mounts internal and ext. It will still boot and u can swap file as needed for testing.
Sent from my ADR6425LVW using xda premium
I'll try and figure it out.
Already found one thing: running the mount command with no switches will list all current mounts (can't believe I forgot that!).
DivinityCycle said:
I'll try and figure it out.
Already found one thing: running the mount command with no switches will list all current mounts (can't believe I forgot that!).
Click to expand...
Click to collapse
Im workin on it too. Im used to seeing them on separate lines. Ill let u know if i beat ya to it lol
Sent from my GT-P3113 using xda premium
Something else useful that I found:
Code:
[email protected]:/dev/block # cat /proc/partitions
major minor #blocks name
179 0 7634944 mmcblk0
179 1 20480 mmcblk0p1
179 2 2048 mmcblk0p2
179 3 2048 mmcblk0p3
179 4 8192 mmcblk0p4
179 5 8192 mmcblk0p5
179 6 8192 mmcblk0p6
179 7 716800 mmcblk0p7
259 0 20480 mmcblk0p8
259 1 1433600 mmcblk0p9
259 2 4886511 mmcblk0p10
259 3 524288 mmcblk0p11
179 16 2048 mmcblk0boot1
179 8 2048 mmcblk0boot0
179 24 30318592 mmcblk1
179 25 30314496 mmcblk1p1
and
Code:
[email protected]:/dev/block # df
Filesystem Size Used Free Blksize
/dev 347M 48K 347M 4096
/mnt/asec 347M 0K 347M 4096
/mnt/obb 347M 0K 347M 4096
/system 1G 259M 1G 4096
/data 4G 2G 2G 4096
/cache 688M 58M 630M 4096
/efs 19M 4M 15M 4096
/mnt/extSdCard 28G 13G 15G 32768
/mnt/sdcard 4G 2G 2G 4096
I'm pretty sure the partitions listed are found at /dev/block/mmcblk0pX, so maybe that's what needs to be mounted. I've not been successful yet in mounting anything manually but I just found this stuff, so hopefully will have it soon.
Hey DivinityCycle,
This post and tool in the S3 forum might be useful to you as it does the exact same thing in the GS3.
http://forum.xda-developers.com/showthread.php?t=1772234
If I recall correctly it needs a kernel with init.d support. But I think it will definitely help.
Rgrds
Sent from my GT-I9300
I have this in mine i didnt see it in yours
#storage_struct = series, "/mnt/sdcard/extStorages"
#storage_struct = parallel
Making progress, I was able to mount the "external" sdcard to my test mountpoint using:
mount -t vfat -o umask=0000 /dev/block/vold/179:25 /mnt/testing
So, that's part of the puzzle figured out. Now, just need to sort of out the internal "sdcard" device path and then I guess I can try throwing stuff into vold.fstab
OK I believe I have a solution will work, based on the init.d script inside the package Mattiadj made and Rostol linked me to (thanks!).
I modified his init.d script likeso:
Code:
sleep 2
mount -o remount,rw /
mkdir -p /data/internal_sd
mount -o bind /mnt/sdcard /data/internal_sd
mount -t vfat -o umask=0000 /dev/block/vold/179:25 /mnt/testing
mount -o bind /data/internal_sd /mnt/extSdCard
vold has to be used for external storage. The internal storage isn't very flexible, which is why that guy's script just binds it up during boot time rather than some other method of mounting it.
I have just run the commands in a terminal one by one and they all appear to do exactly what they "should", and I have verified that the result is the "real" sdcard being mounted to /mnt/sdcard, which ALSO makes it accessible at /sdcard (which I think is just a symlink). That's the default target for most apps, so after installing this init.d script I think everything should "just work".
Obviously you could adjust the mount point for the "internal" sdcard space as needed.
Working on the script and installation bit now.
/mnt/sdcard
/dev/fuse fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other
---------- Post added at 11:55 PM ---------- Previous post was at 11:54 PM ----------
Nice
OK I am having some problems getting the init.d script to work properly.
My working code is:
Code:
#!/system/bin/sh
LOG=/data/local/tmp/sdcard.txt
exec 3>&1 4>&2 >$LOG 2>&1
echo "Script start"
echo "Sleeping 2 seconds"
sleep 2
echo "Now attempting to remount root filesystem RW"
mount -o remount,rw /
echo "Make the internal_sd directory"
mkdir -p /data/internal_sd
echo "Bind the internal sdcard to the new folder"
mount -o bind /mnt/sdcard /data/internal_sd
echo "Mount the real sdcard"
mount -t vfat -o umask=0000 /dev/block/vold/179:25 /mnt/sdcard
echo "Bind the internal_sd directory to the extSdCard mountpoint"
mount -o bind /data/internal_sd /mnt/extSdCard
echo "Script done"
Basically I am logging the output to /data/local/tmp/sdcard.txt, so I can debug.
In that log, it gets as far as the first mount command, and then things go off the rails:
Code:
Script start
Sleeping 2 seconds
Now attempting to remount root filesystem RW
Make the internal_sd directory
Bind the internal sdcard to the new folder
mount: Invalid argument
Mount the real sdcard
mount: No such file or directory
Bind the internal_sd directory to the extSdCard mountpoint
Script done
What's messed up is, the same mount command (with the bind) works fine once the device is all the way booted up.
Its just during the "init" sequence that it has a problem. I have no idea why
We had a similar thing for my Droid x2. You my want to check out this thread http://forum.xda-developers.com/showthread.php?p=16875467 and contact the dev.
Sent from my GT-P3113 using xda premium
That guy did it via vold.fstab, which is interesting.
The relevant stuff:
Code:
# external sd card
dev_mount sdcard /mnt/sdcard:none:lun1 auto /devices/platform/tegra-sdhci.2/mmc_host/mmc2 /devices/platform/tegra-sdhci.2/mmc_host/mmc1
# internal eMMC
dev_mount sdcard_ext /mnt/sdcard-ext 18 /devices/platform/tegra-sdhci.3/mmc_host/mmc0
I am honestly not too sure what I'm looking at there, so I'm gonna try some stuff in vold.fstab next.
OK, I am too tired to keep messing around with this for tonight, so I am trying out a new method: I moved my init script over to /data and then used Script Manager to make it run as root as boot time.
This is obviously not a permanent fix, but should be OK for tonight.
Basically my big problem is I don't know the syntax for vold.fstab to mount the internal sdcard to a new mount point...
Ahh the joys of doing weird hacky stuff to your tablet... I pretty much gave up on the vold.fstab working in the short term, and instead just tried setting my init script up as just a regular "run at launch" script using Script Manager.
The version of my script that I posted had unforeseen consequences. For whatever reason, doing a "bind" of /mnt/sdcard like I was doing caused all sorts of things to stop working. Like, Script Manager was locking up, as was Root Explorer!
The best one was that when my alarm clock went to go off this morning it crashed, and I was late for work! LOL
Sooo yeah, that's pretty special. I had to use Terminal Emulator to fix my stuff on the bus on the way to work
I have revised my script and it now works perfectly with the caveat that I'm simply unmounting the internal "sdcard" partition and letting it sit there unused.
Code:
#!/system/bin/sh
LOG=/data/local/tmp/sdcard.txt
exec 3>&1 4>&2 >$LOG 2>&1
echo "Script start"
echo "Unmount internal sdcard"
umount /mnt/sdcard
echo "Mount the real sdcard"
mount -t vfat -o umask=0000 /dev/block/vold/179:25 /mnt/sdcard
echo "Script done"
I believe because of vold.fstab the microSD card still gets mounted to /mnt/extSdCard. My script puts it at /mnt/sdcard as well. This seems to work OK because then the few programs that are smart enough to access the card via /mnt/extSdCard still can get to it, but everything else that works on the regular sdcard also goes to the sdcard as well.
I have tested out the camera, music player, Root Explorer, Script Manager, etc. Everything I have tried works exactly as expected.
The next thing I'll need to test out is if this script can be used as an init.d script instead of needing Script Manager to set it up to run at boot.
I figure the only other things to do are:
1-figure out what's needed to be able to mount the internal "sdcard" partition to a different mount point
or
2-figure out how to delete the "sdcard" partition and then just give that extra space to one of the other flash partitions (probably /system?)
I really am hoping you get this figured out and it can be used by us common folk. (I'm no hacker) Lol :thumbup:
Sent from my GT-P3113 using xda premium
Wow, while working on my init.d script, I managed to make my system freeze at the bootup animation. I "unlocked" things by reflashing my ROM.
Good thing its a slow day at the office...
i really hope u can get this working, would love it
Related
Is there a way to make all applications store their data in a folder other than /sdcard (root folder on the sd card) ?
I'm planning on rooting and thought that this time round I can keep my sdcard nice and organized by creating an "ApplicationData" folder in the root of the sdcard and somehow configuring android to use that.
On a similar note, can I move the DCIM (camera photos) to a different location too?
Will the below change-mount-point idea work?
Maybe as root we can
1) un-define /sdcard (in /etc/fstab) //or wherever its defined
2) define /sdcard as /dev/<hdb0>/ApplicationData //change hdb0 to the appropriate device/partition
thanks.
Yeah, I see your point... but quite frankly, I believe it's upto the app developers [my knowledge of the Android world is still from the stone-age!!]... if the app specifies that it's data will be stored in /sdcard/AppName, there's not much you can do, unless you can modify the app...
I was thinking that maybe as root we can
1) un-define /sdcard (in /etc/fstab) //or wherever its defined
2) define /sdcard as /dev/<hdb0>/ApplicationData
edit: added to post#1
britoso said:
I was thinking that maybe as root we can
1) un-define /sdcard (in /etc/fstab) //or wherever its defined
2) define /sdcard as /dev/<hdb0>/ApplicationData
edit: added to post#1
Click to expand...
Click to collapse
I did think of this too...
/sdcard --> /sd/AppData
rest of sd card --> /sd
but I think it would mean some other changes as well... for example... the mount usb functionality would have to be modified to mount/unmount a different volume...
So heres the contents of my fstab file:
Code:
C:\>adb shell cat /system/etc/fstab
/dev/block/mtdblock3 /system yaffs2 rw
/dev/block/mtdblock4 /cache yaffs2 rw
/dev/block/mtdblock5 /data yaffs2 rw
/dev/block/mmcblk0p1 /sdcard vfat rw
/dev/block/mmcblk0p2 /system/sd auto rw
/system/modules/modules.sqf /system/modules squashfs ro,loop
/system/xbin/xbin.sqf /system/xbin squashfs ro,loop
I'll try changing line 4 (/sdcard), I'm guessing /system/sd is for when I apps2sd is enabled.
Question: How do I escape from INSERT/EDIT mode in VI? Tried pressing trackball+1, trackball+1+2...didnt work
Hey britoso!
Keep us updated with your accomplishments. I, personally, am very interested in being able to achieve this.
Good luck!
update: that didnt work.
Note: the way to get the ESCAPE character is CONTROL + [ (hold the trackball then press [ ). The control key is configurable and defaults to the Jogball/TrackBall
here are the contents of my fstab file, the camera app is still writing to the root of the sdcard (/sdcard/DCIM)
Code:
C:\>adb shell cat /system/etc/fstab
/dev/block/mtdblock3 /system yaffs2 rw
/dev/block/mtdblock4 /cache yaffs2 rw
/dev/block/mtdblock5 /data yaffs2 rw
/dev/block/mmcblk0p1 /sdcard/AppData vfat rw
/dev/block/mmcblk0p2 /system/sd auto rw
/system/modules/modules.sqf /system/modules squashfs ro,loop
/system/xbin/xbin.sqf /system/xbin squashfs ro,loop
Heres the output of "df"
Code:
C:\>adb shell df
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 197600 0 197600 0% /dev
tmpfs 4096 0 4096 0% /sqlite_stmt_journals
/dev/block/mtdblock3 148480 100088 48392 67% /system
/dev/block/mtdblock5 200960 63752 137208 32% /data
/dev/block/mtdblock4 97280 39628 57652 41% /cache
/dev/block//vold/179:1
15643712 6843256 8800456 44% /sdcard
@britoso
This is what I found out about mounts in Android...
The init program directly mounts all filesystems and devices using either hard-coded file names or device names generated by probing the sysfs filesystem (thereby eliminating the need for a /etc/fstab file in Android).
And from what I see in your df output, it didn't mount /sdcard/AppData...
Have a few ideas in mind... gonna try 'em out now...
craigacgomez said:
gonna try 'em out now...
Click to expand...
Click to collapse
thanks for the info. Let us know how it works out.
Here's what I reached finally...
To achieve this, I have 2 ideas...
1. We gotta modify the init and change the SD mount point to AppData and add another for the rest of the SD... this however would require a rebuilt ROM (I can't edit init on the phone, need to edit init.c from the source)
2. We push some startup scripts to achieve this, but so far, I haven't been able to mount anything else on /sdcard (operation failed), but I think I'm doing something wrong...
Didn't get much time to experiment... and it mite be a busy end of week for me... but I'll try to squeeze in so time to get this...
Why not ask Cyanogen to do this for us in his next ROM?
Or your next favorite modder?
I'm sure they'll like this idea!?
theres a setting in /init.rc that may help
Code:
export EXTERNAL_STORAGE /sdcard
However / is mounted read-only
mount
rootfs on / type rootfs (ro,relatime)
Click to expand...
Click to collapse
Hi, I have an unlocked, rooted Milestone running 2.1-update1.
I am having some issues getting App2SD up and running.
Everything seems to be working fine except for one piece:
I can't mount the ext2 partition of my SDCard.
I have a 16gb sdcard, formatted with two primary partitions, 14.5gb for FAT32 and 1.5gb for ext2.
busybox was installed ok, all the shell scripts seem to have installed fine as well, however, in order for it to work, the "mount_sd.sh" script has to be able to mount the second partition in order to link /data/app to it - but the damn thing won't mount.
I have tried re-partitioning the SD card multiple times, using multiple different partitioners (gparted in Ubuntu, Minitool in XP, even fdisk in the Android shell itself...) but nothing seems to work - I always get the same error:
Code:
# mount -t ext2 /dev/block//vold/179:2 /system/sd
mount -t ext2 /dev/block//vold/179:2 /system/sd
mount: No such device
The device however, most certainly DOES exist:
Code:
# ls /dev/block//vold
ls /dev/block//vold
179:2
179:1
179:0
I have seen that some people use the /dev/block/mmcblk0 instead of /dev/block//vold/179 - I am unsure as to why (anyone know which one I should be using on the Milestone???) but I tried that as well:
Code:
# mount -t ext2 /dev/block/mmcblk0p2 /system/sd
mount -t ext2 /dev/block/mmcblk0p2 /system/sd
mount: No such device
Again, it tells me the device doesn't exist, when it clearly DOES:
Code:
# ls /dev/block/mmc*
ls /dev/block/mmc*
/dev/block/mmcblk0
/dev/block/mmcblk0p1
/dev/block/mmcblk0p2
When I try to verify the partitions are there in the ADB shell, it looks like /dev/block//vold/179 doesn't exist or is some kind of special device (incidentally, does anyone know wtf the double slashes "//" are for?):
Code:
# fdisk /dev/block//vold/179
fdisk /dev/block//vold/179
fdisk: can't open '/dev/block//vold/179'
However, I CAN fdisk /dev/block/mmcblk0, and it gives me the following partition table:
Code:
# fdisk /dev/block/mmcblk0
fdisk /dev/block/mmcblk0
...snip...
Disk /dev/block/mmcblk0: 16.0 GB, 16039018496 bytes
255 heads, 63 sectors/track, 1949 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/block/mmcblk0p1 1 1762 14153233+ b Win95 FAT32
/dev/block/mmcblk0p2 1763 1949 1502077+ 83 Linux
So, it looks like /dev/mmcblk0 is the correct block device, however, mount tells me this:
Code:
# mount
mount
...snip...
/dev/block//vold/179:1 /sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=101
020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
So, mount is telling me that the first partition is mounted onto /sdcard from /dev/block//vold/179:1
I am confused. The only thing left I need to do in order to get App2SD working on my Milestone, is to mount the bloody second partition of my SD card and link it to the file system, yet the damn thing refuses to mount.
Does anyone know where I am going wrong here?
Which is the correct block device I should even be trying to mount /dev/block/mmcblk0 or /dev/block//vold/179:2?
I don't want to flash to an unofficial 2.2 and I have everything else working just the way I want it, so I'd rather not reset either.
There MUST be a solution somewhere, but I am getting frustrated.
Thanks for any help you can give me!
Hello!
I'm having exactly the same problem... I've been trying to find a solution for this problem for the last 3 hours, but I can't figure out a way...
Can anyody give us a light??
Thanks!
Same question here. Partitioned more than a month ago, but then I reached a dead end. I don't know a reliable way to mount the ext2 partition. I'm familiar with Linux, and I have tried all kinds of crazy shell scripts, but the Android filesystem is still a bit alien to me.
By the way, what is this App2SD that you speak of? It's something different from the Apps2SD app on Froyo, right?
JoeDuncan said:
Code:
# mount -t ext2 /dev/block/mmcblk0p2 /system/sd
mount -t ext2 /dev/block/mmcblk0p2 /system/sd
mount: No such device
Click to expand...
Click to collapse
A shot in the dark would be ext2.ko is not insmodded ... ?
got this problem to on stock US froyo kernel for Samsung Galaxy 5. I also suspected ext2 was missing but it seems compiled into kernel.
Code:
# cat /proc/filesystems
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev tmpfs
nodev debugfs
nodev sockfs
nodev pipefs
nodev anon_inodefs
nodev rpc_pipefs
nodev inotifyfs
nodev devpts
ext2
nodev ramfs
vfat
nodev nfs
rfs
For the MS, you have to insert a ext2 Kernel module, look around here on the forums..
Depending on which module-version you're using try "-t auto" instead of "-t ext2"
Also you should use "/dev/block/mmcblk0p2" if this is your ext2 partition
Besides, there should be some packages available which contain the necessary scripts and files to install this automatically and at boot, applicable as OR-updates
It was my understanding that Apps2SD could not be used on 2.1, you needed 2.2 to use that app. Although I have the same issue with Links2SD which is suppose to work with 2.1. I can't get anything to see an ext2 or 3 or Fat partition.
My amator tries
Hy,
I've got the same problem on Cyanogen and Goapk roms:
mount -t auto /dev/block/mmcblk0p2 /sd-ext
doesn't work
I verified sd-ext was present
mkdir /sd-ext
Nothing changed.
My mount description is somethime using vold instead of mmcblk0p... I don't really understand.
However I succeeded to mount sdext by using busybox (on goapk rom)
busybox mount -r -w -t auto /dev/block/mmcblk0p2 /sd-ext
result mount:
rootfs / rootfs rw 0 0
tmpfs /dev tmpfs rw,mode=755 0 0
devpts /dev/pts devpts rw,mode=600 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
tmpfs /mnt/asec tmpfs rw,mode=755,gid=1000 0 0
/dev/block/mtdblock3 /system yaffs2 ro 0 0
/dev/block/mtdblock5 /data yaffs2 rw,nosuid,nodev 0 0
/dev/block/mtdblock4 /cache yaffs2 rw,nosuid,nodev 0 0
/dev/block/vold/179:1 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,g
id=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-
1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/vold/179:1 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,uid=1
000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso
8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
tmpfs /mnt/sdcard/.android_secure tmpfs ro,size=0k,mode=000 0 0
/dev/block/mmcblk0p2 /sd-ext ext2 rw,errors=continue 0 0
Just in case, If somebody can help me:
*I have a symlink /data/drm =>/data/local :how to unsymlink it? (unbind isn't present and replacement doesn't work:" Invalid cross-device link")
*perl script are unable to decompresse boot.img, how to change init.rc in this case?
thanks
symlinks
lamidesbetes said:
*I have a symlink /data/drm =>/data/local :how to unsymlink it? (unbind isn't present and replacement doesn't work:" Invalid cross-device link")
Click to expand...
Click to collapse
Symlinks can be removed with the rm command.
The "cross device link" error happens when one uses the ln command without the "-s" option (so attempting a hard link instead of symlink).
Ok.. so I was having issues with not being able to install apps after I did a factory reset on my phone and reinstalled v20q rebuild and a custom kernel.
Some things from the market automatically downloaded, but others failed saying "Not enough disk space".
So I attached my phone to the PC, and deleted some unimportant files (Like soutcraft demo I never used, I removed the spiderman/gameloft stuff.. and other stuff that I knew was not important. I DID NOT remove system files.
So in the end.. I had about a gig spare space on my internal SD card. BUT after rebooting it still says "not enough disk space".
So I tried to boot into CWM... but it no longer boots in. I can't install Astro as not enough disk space. how the heck can I find out what's going on?
Which partition is it referring to not enough space? (And why won't CWM work?)
If i goto settings > applications > Manage Applications > Storage > It tells me I am only using 302MB of 1.2GB .. so defo plenty. It must be a different partition?
The /system partition is probably full, not the entire internal SD-card. I ran across the same problem when I installed adaway and tried to install the hosts file. So I deleted a couple of .apk's from /system/app. Why the system partition is so small I don't know.
Might that explain why CWM isn't starting as well?
Just a quick thought: on my old phone, when this error occurred, I had to wipe cache partition. It wouldn't hurt to try - as you cannot access CWM, maybe there's a way to do this using ADB.
wiredback said:
Just a quick thought: on my old phone, when this error occurred, I had to wipe cache partition. It wouldn't hurt to try - as you cannot access CWM, maybe there's a way to do this using ADB.
Click to expand...
Click to collapse
I've tried a factory reset. It wouldn't do the reset.
I've tried formatting the internal SD Card. It did that, but made no difference.
As you say, I am unable to get into CWM, so I would need some help with ADB if I'm to sort this :-(
I had that once too.
Did you change to EXT4 ?
Hmm.. not that I remember. I remember it saying that it was 'converting to ext3' when I put flashed "V20Q rebuild" on again, but I thought it was ext3 anyway. I'm not sure anything I have put on has ext4...
Only other thing I put on was the V20Q tweak pack, followed by spica's HP RC12 kernel (was trying it out).
Only thing I can do at present is seemingly to get in Android, and hook it up to the PC. It's useable, but without apps I'm a bit screwed, and even more screwed without access to CWM.
Can I reflash CWM perhaps?
(Side Note: I have flashed V20Q rebuild, gueste kernel, flik123's tweak pack and spica's HP kernel before without issue... I think this might be relating to the internal partition space. How the hell do I get access to it).
It's a bit of a pain that you can't get in CWM else you could try the backtoext3 tool by Paul, and reflash
I did that and it worked.
But with my problem, CWM still worked... Strange.
try reflashing CWM, and then go in CWM and format your /system and do a full wipe.
And reflash the ROM.
Try the BackToExt3 tool too (if Reflashing CWM worked):
http://android.modaco.com/topic/336...3-for-converting-your-device-er-back-to-ext3/
IT WILL WIPE YOUR DATA
BTW : Only use the backtoext3.zip mod of course if you use a EXT3 ROM
If that all dind't work try to hard reset to factory settings with NVFlash:
http://android.modaco.com/topic/335...k-rom-release-v10b-dated-1300166062-15032011/
Flashing at your own risk of course.
Hope this helps you somewhat i'm just suggesting some things for you to try.
I would firstly try to flash CWM again using ROM Manager or (if this is not possible) manually (I think there is a thread in Development section how to do this).
Secondly, I would flash original ROM using Smartflash.
I'm unable to run that from work, so I'll give it a shot when I get home.
Restalling CWM did nothing. Still a blank screen after the 2nd LG logo (Where the CWM logo and options would normally be).
Hmm.. how can I get access to the system partition, and then how do I delete stuff? (I'm a newb at linux stuff)
In fact, interal and external CWM bat files seems to copy but doesn't work on reboot :-( ARGGHH.
Hmm.. seems I can do a 'pull' and managed to pull everything out of /system/ LOL!!!
Someone help me here.. I assume I need to delete something in /system/ (or another directory???) to make room on the partition?
As info I have been looking around and used the 'df' command to get this:
# df system
df system
Filesystem Size Used Free Blksize
system 338M 327M 11M 1024
# df root
df root
Filesystem Size Used Free Blksize
root 0K 0K 0K 4096
# df
df
Filesystem Size Used Free Blksize
/dev 185M 64K 185M 4096
/mnt/asec 185M 0K 185M 4096
/mnt/obb 185M 0K 185M 4096
/system 338M 327M 11M 1024 <---- is this the issue here 11M free ?
/data 1G 136M 1G 4096
/mnt/extasec 185M 0K 185M 4096
/lgdrm 2M 2M 398K 2048
/mnt/sdcard 5G 2M 5G 4096
/mnt/secure/asec 5G 2M 5G 4096
/mnt/sdcard/_ExternalSD 7G 2G 4G 32768
/mnt/extsecure/extasec 7G 2G 4G 32768
"Pulled" some files off as backups, and deleted a few apk's to try and make space on system, but CWM will still not boot.
I have tried deleting the dalvik-cache, and no difference. I've tried reinstalling CWM.. but no difference :-(
What is going on :-(
EDIT: Even after removing these APK's which must have given me at least 20mb extra.. I STILL cannot download anything else from the market. Something is wrong here. please help XDA
Have you tried the Smartflash or NVflash method
To hard reset your phone we recommended ?
Not yet. Spent all night trying to make space on the system area, but it still told me no space, and CWM wouldn't boot.
Which do you recommened I try first? Actually I will follow Rusty's post here and see what happens (with NVFlash) . http://forum.xda-developers.com/showthread.php?t=1229407&highlight=smart+flash
I am not worried about the data in the slightest, only recovering the phone.
@Scougar: the df output looks a bit strange for me. I was expecting to see something like this:
# df
df
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 215564 32 215532 0% /dev
tmpfs 215564 0 215564 0% /mnt/asec
tmpfs 215564 0 215564 0% /mnt/obb
tmpfs 215564 0 215564 0% /mnt/asec
tmpfs 215564 0 215564 0% /mnt/extasec
/dev/block/mmcblk0p1 347067 198348 130799 60% /system
/dev/block/mmcblk0p8 1548144 271128 1198376 18% /data
/dev/block/mmcblk0p2 63461 4154 56031 7% /cache
/dev/block/mmcblk0p6 2472 2074 398 84% /lgdrm
(some other less relevant entries deleted to make the output more readable).
Please note that I can see actual devices (partitions) how much they are filled and where they are mounted. In your output I'm missing things like e.g. cache partition.
The above output I got on adb but the same thing appeared in terminal emulator on my phone (currently WIUI).
You can also use "mount" command to see what is mounted where.
mipr said:
@Scougar: the df output looks a bit strange for me. I was expecting to see something like this:
# df
df
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 215564 32 215532 0% /dev
tmpfs 215564 0 215564 0% /mnt/asec
tmpfs 215564 0 215564 0% /mnt/obb
tmpfs 215564 0 215564 0% /mnt/asec
tmpfs 215564 0 215564 0% /mnt/extasec
/dev/block/mmcblk0p1 347067 198348 130799 60% /system
/dev/block/mmcblk0p8 1548144 271128 1198376 18% /data
/dev/block/mmcblk0p2 63461 4154 56031 7% /cache
/dev/block/mmcblk0p6 2472 2074 398 84% /lgdrm
(some other less relevant entries deleted to make the output more readable).
Please note that I can see actual devices (partitions) how much they are filled and where they are mounted. In your output I'm missing things like e.g. cache partition.
The above output I got on adb but the same thing appeared in terminal emulator on my phone (currently WIUI).
You can also use "mount" command to see what is mounted where.
Click to expand...
Click to collapse
OK, I'll redo the df tonight when I get in (I can't do it from work), and see what I get. Maybe you have a different version of ADB to me ? (I am using the version as supplied by Rusty in his CWM script thread - linked to from the Q&A).
I'm trying to go through the sequence of events that lead up to this:
1) Booted into CWM (I did all the below WITHOUT rebooting until I had finished installing ZIPS - fatal flaw?)
2) Wiped dalvik cache
3) wiped data/Factory reset
4) Installed the Rebuilt V20Q ROM
5) Installed the V20Q Tweak pack (From Flix123)
6) Installed Spica's latest HP kernel (RC12 a few days ago).
I then rebooted.
None of the above I believe would have changed to ext4, only ext3 (Although I really don't understand ext versions at present). Perhaps by me doing too much at once, and not rebooting after I installed the V20Q ROM is what did it?
I'm using the latest adb downloaded from google. But this should not matter because with adb you are running commands from your phone, not from your computer, i.e. after "adb shell" you are effectively on your phone and the "df" is one of the commands on your phone. You may try "df -a" which should list all your file systems. You may also try "df --help" to see all command options. Additionally the "mount" command (without any params) should list all your mounted devices/partitions along with their filesystems, e.g. on my phone I get following:
/dev/block/mmcblk0p1 on /system type ext4 (rw,noatime,barrier=1,data=ordered)
/dev/block/mmcblk0p8 on /data type ext4 (rw,nosuid,nodev,noatime,barrier=1,data=ordered)
/dev/block/mmcblk0p2 on /cache type ext4 (rw,nosuid,nodev,noatime,barrier=1,data=ordered)
/dev/block/mmcblk0p6 on /lgdrm type ext3 (rw,nosuid,nodev,noatime,data=writeback)
As you can see my "system" partition is ext4, as well as "data" and "cache" partitions.
mipr said:
I'm using the latest adb downloaded from google. But this should not matter because with adb you are running commands from your phone, not from your computer, i.e. after "adb shell" you are effectively on your phone and the "df" is one of the commands on your phone. You may try "df -a" which should list all your file systems. You may also try "df --help" to see all command options. Additionally the "mount" command (without any params) should list all your mounted devices/partitions along with their filesystems, e.g. on my phone I get following:
/dev/block/mmcblk0p1 on /system type ext4 (rw,noatime,barrier=1,data=ordered)
/dev/block/mmcblk0p8 on /data type ext4 (rw,nosuid,nodev,noatime,barrier=1,data=ordered)
/dev/block/mmcblk0p2 on /cache type ext4 (rw,nosuid,nodev,noatime,barrier=1,data=ordered)
/dev/block/mmcblk0p6 on /lgdrm type ext3 (rw,nosuid,nodev,noatime,data=writeback)
As you can see my "system" partition is ext4, as well as "data" and "cache" partitions.
Click to expand...
Click to collapse
Cool, thanks. I'll give those a go tonight
Here is the result of the mount command:- (I do not know how to interprete the output, advice here gladly received)
# mount
mount
rootfs / rootfs ro,noatime 0 0
tmpfs /dev tmpfs rw,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
tmpfs /mnt/asec tmpfs rw,noatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,noatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
/dev/block/mmcblk0p1 /system ext3 ro,nodev,noatime,errors=continue,data=ordered
0 0
/dev/block/mmcblk0p8 /data ext3 rw,nosuid,nodev,noatime,errors=continue,data=ord
ered 0 0
tmpfs /mnt/extasec tmpfs rw,nodev,noatime,mode=755,gid=1000 0 0
/dev/block/mmcblk0p6 /lgdrm ext3 rw,nosuid,nodev,relatime,data=ordered 0 0
/dev/block/vold/179:9 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,noatime,ui
d=1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=
iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/vold/179:9 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,noati
me,uid=1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocha
rset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
tmpfs /mnt/sdcard/.android_secure tmpfs ro,relatime,size=0k,mode=000 0 0
/dev/block/vold/179:17 /mnt/sdcard/_ExternalSD vfat rw,dirsync,nosuid,nodev,noex
ec,noatime,uid=1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp4
37,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/vold/179:17 /mnt/extsecure/extasec vfat rw,dirsync,nosuid,nodev,noexe
c,noatime,uid=1000,gid=1015,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp43
7,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
tmpfs /mnt/sdcard/_ExternalSD/.android_secure tmpfs ro,relatime,size=0k,mode=000
0 0
#
Dual-booting has always intrigued me. I dual-boot between Windows and Linux on one of my computers, dual-boot between stock firmware and RockBox on my Sansa Fuze v2, and I decided to find out how to dual-boot my Galaxy Tab 2 7.0". It took a couple days of work, but I have found one way to do so using the external SD card.
In the future, if I can work it out, I will provide a method for dual-booting using only internal storage. Update: I have successfully tested an internal dualboot setup. I will post details later.
Warning: While I am not aware of any specific way this could brick your device, stuff happens, so don't blame me. I've tested this and found no problems, but you may not be the same.
To use this method, you need a microSD card at least 8GB in size. If you use 8GB, though, you will have pretty limited space for storage, so a card 16GB or greater is advised.
Preparing SD Card
Repartition your microSD card using whatever program suits you. You need to shrink the first storage partition to make room for the new system partitions. The new partitions should take at least 5GB, so be sure to leave at least 5.25GB. You can always resize later if you need to.
After shrinking your storage partition, create four ext4 partitions in this order: system (min 800MB, recommended 1.25GB), cache (min 500MB, recommended 700MB), data (min 3GB, recommended 5GB), and EFS (min 21MB, recommended 32MB).
Verify your partitions on your tablet by inserting the SD card, booting into CWM, and running "parted /dev/mmcblk1" (no quotes) over ADB shell.
Flashing External ROM
Now you just need a ROM to flash. Most ROMs are not packaged to run from external SD card. You MUST either use a provided ROM or edit one yourself. I provide here a repackaged version of the 8/28 CM10 nightly which can flash to and run from your SD card. If you want to edit a ROM yourself, see the bottom of this post.
Boot into CWM and backup. You will need your backed up boot image if anything goes wrong.
Now flash your ROM. It will install to the external SD card on the appropriate partitions if you did everything right. Reboot: you should be in your new ROM.
You'll probably want a Google Apps package. See below for packages for external dualboot.
Using Your Dual-Boot Setup
Your internal and external ROMs do not share internal storage, due to the odd nature of the SD card fuse tool.Your external ROM has an "internal SD card" of its own. You may find a way to mount the internal /data/media to the external ROM's /sdcard. My new ROM conversion script will add attempt to mount the internal ROM's storage to /storage/intSdCard
The ROMs I provide here include a script in /system/bin called "bootinternal." Run this from a terminal emulator or adb to switch from the external ROM back to the internal one. I have attached a script called "bootexternal" to this post. Use it on your internal ROM to switch to the external one (remember to set the executable permission).
In order for the boot switching scripts to work, you must do some preparation. On your external ROM, place the internal ROM's boot.img in /sdcard/Boot/internal.img. For your internal ROM, place your external ROM's boot.img in /sdcard/Boot/external.img.
If you ever need/watch to switch ROMs manually, run the following commands in a terminal emulator or over ADB, replacing "boot.img" with the boot image of the ROM you are switching to:
Code:
cat boot.img > /dev/block/mmcblk0p5
reboot
Alternatively, you could switch boot images using Mobile Odin.
Update: I would skip using my prepackaged ROMs now, because I have uploaded a converter script that will actually do a better job. These will configure the "bootinternal" and "bootexternal" scripts automatically.
If you ever need to wipe your data, cache, or dalvik cache, see the next post for CWM zips.
Downloads
Roms for External SD Card:
CyanogenMod 10 Nightly (8/28/2012)
AOKP P3113 Stable
Note that these are probably unnecessary now, because I provide a script to convert ROMs automatically on Linux.
Google Apps Packages for External SD Card:
Gapps for Jelly Bean - Use for CM10, AOKP, etc
Gapps for Ice Cream Sandwich - Use for stock, RomsWell, etc
If I ever have time, I plan to upload SD card images which you can use to partition your external SD card automatically.
---
Repacking a ROM for Dual-boot from SD Card
Note: You no longer need to do this manually. I have uploaded a script which automates the conversion process. See the next post for download.
First, you need to extract and unpack the boot image. There are tools and scripts available for this, so find one.
Once the boot image is unpacked, you need to edit init.espresso.rc on the ramdisk. Find where the partitions are mounted and change the code to look like this (yours may look slightly different depending on the ROM, but just be sure to replace the default partition mounts with those of your SD card partitions):
Code:
#mount ext4 /dev/block/platform/omap/omap_hsmmc.1/by-name/FACTORYFS /system wait rw
mount ext4 /dev/block/mmcblk1p2 /system wait rw
#mount ext4 /dev/block/platform/omap/omap_hsmmc.1/by-name/FACTORYFS /system ro remount
mount ext4 /dev/block/mmcblk1p2 /system ro remount
#mount ext4 /dev/block/platform/omap/omap_hsmmc.1/by-name/DATAFS /data wait noatime nosuid nodev crypt discard,noauto_da_alloc
mount ext4 /dev/block/platform/omap/omap_hsmmc.1/by-name/DATAFS /data2 wait noatime nosuid nodev crypt discard,noauto_da_alloc
mount ext4 /dev/block/mmcblk1p4 /data wait noatime nosuid nodev crypt discard,noauto_da_alloc
#mount ext4 /dev/block/platform/omap/omap_hsmmc.1/by-name/CACHE /cache wait noatime nosuid nodev nomblk_io_submit,errors=panic
mount ext4 /dev/block/mmcblk1p3 /cache wait noatime nosuid nodev nomblk_io_submit,errors=panic
#mount ext4 /dev/block/platform/omap/omap_hsmmc.1/by-name/EFS /efs wait rw
mount ext4 /dev/block/mmcblk1p5 /efs wait rw
Repack the boot image and stick it back into the ROM. Then edit the updater-script, and change all references to the internal system partition (/dev/block/mmcblk0p9) to the external system partition (e.g. /dev/block/mmcblk1p2). If any other partitions are referenced, change them as well.
Optional: insert the "bootinternal" script in /system/bin and the a script to mount the internal storage in /system/etc/init.d.
Your ROM is ready to go. Flash and be happy!
Thanks to Johnsel for helping me edit the boot image and pointing me to sendust7's work on the Atrix, who I also thank for his precedent.
CWM Zips for Wiping External Partitions
If you ever need to wipe /data, /cache, or dalvik on your external dual-boot partitions, you can use these CWM zips to do so.
Update: Here is a script to automate the conversion of a ROM from standard to external dualboot.
interesting... gonna try this later...
Nice guide! Dual boot with stock and cm9/10/AOKP would be ideal.
Confirmed?
Sent from my GT-P3113 using Tapatalk 2
scottx . said:
Nice guide! Dual boot with stock and cm9/10/AOKP would be ideal.
Click to expand...
Click to collapse
Agreed! Is it possible to dual boot stock and AOKP?
IFLATLINEI said:
Agreed! Is it possible to dual boot stock and AOKP?
Click to expand...
Click to collapse
Absolutely. If you're running stock, just follow the instructions to partition your SD card, then flash the provided AOKP package and (I assume you would) the gapps package. You should boot right into to your external AOKP installation. Then just copy your stock boot image to /sdcard/Boot/internal.img and run "bootinternal" from a Terminal Emulator or adb shell to return to stock.
BRILLIANT !!!
A few suggestions:
Possible to have a GUI to switch ROM or even better to have it at boot (through kernel).
Script to Automate the process of converting any(P31xx) ROM to dual-boot. It will take away pressure off you.
Thanks !
thanks for the tutorial.
silentvisitor said:
BRILLIANT !!!
A few suggestions:
Possible to have a GUI to switch ROM or even better to have it at boot (through kernel).
Script to Automate the process of converting any(P31xx) ROM to dual-boot. It will take away pressure off you.
Thanks !
Click to expand...
Click to collapse
The GUI may or may not happen, since I, while familiar with partitions and scripting, don't know much about Java or Android development. I'll look into it, though. Having it run at boot through the kernel is beyond my skills. The closest I could do would be an init.d script.
As for a script to automate the conversion process, that seems doable. It only involves two files (init.espresso.rc in the boot image and the updater-script), so I could see that happening. I'll try to do something with that.
This is very interesting!
But I think it is better if we can install dual-boot like CM10 and some porting of Linux desktop version, chrome OS (love it) and other
I follow this thread!
Update: I've added a script that automatically converts ROMs to external dualboot format. I advise using this script instead of my provided ROMs. Just open a terminal in the script's directory and run:
Code:
./convert.sh rom-to-convert.zip
It will automatically edit the boot image and updater script, as well as configure the dualboot scripts. Go back to the second post to download.
Dual-boot question
Sorry for offtop, but your work is very interesting for me. I have GT-P6800 (Tab 7.7) and will try your method on my device. What can i do for it? May be change numeration of partitions inside a script? And firmware counter will be ticked or not? And my current firmware in internal memory will be untoched? Thanks for your work again!
partola1 said:
Sorry for offtop, but your work is very interesting for me. I have GT-P6800 (Tab 7.7) and will try your method on my device. What can i do for it? May be change numeration of partitions inside a script? And firmware counter will be ticked or not? And my current firmware in internal memory will be untoched? Thanks for your work again!
Click to expand...
Click to collapse
I would assume our tablets are very similar, so my method probably would work as is. To be sure, extract the updater-script from your rom and send it to me, along with the boot image, and I'll check it out. Your firmware counter will not be increased, and your current firmware should not be affected.
marry me. I just asked the dual boot question like a week ago lol
Macadamia Daze said:
I would assume our tablets are very similar, so my method probably would work as is. To be sure, extract the updater-script from your rom and send it to me, along with the boot image, and I'll check it out. Your firmware counter will not be increased, and your current firmware should not be affected.
Click to expand...
Click to collapse
Hi, this is my p680 kernel & updater-script:
http://hotfile.com/dl/170647189/80fec16/P6800.ZIP.html
Please, check it!
Also, i have some questions:
as you know, only 4 primary partition allowing on sdcard. I create 1 partition primary fat32 and 4 partitions logical ext4. Is this ok?
And how can i check partitions directly on tab? Terminal emulator not understand parted command, and from recovery TWRP 2.2.0.0 terminal asking me about from which directory execute commands. I try few directories, but parted/dev/mmcblk1 command show nothing to me.
Thank you for your adwise.
partola1 said:
Hi, this is my p680 kernel & updater-script:
http://hotfile.com/dl/170647189/80fec16/P6800.ZIP.html
Please, check it!
Click to expand...
Click to collapse
I'm having problems unpacking your boot image. Run the command "mount" on your tab and give me the output. I looked in your updater-script, though, and that seems compatible.
as you know, only 4 primary partition allowing on sdcard. I create 1 partition primary fat32 and 4 partitions logical ext4. Is this ok?
Click to expand...
Click to collapse
I was able to put 5 primary partitions on my SD card. Are you using an MBR partition table or GUID partition table? You need to use GUID to have 5 primary partitions. Anyway, I don't know if it will make a difference for logical partitions. Once you can check the partitions from your tab, I'll be able to tell you if it will work.
And how can i check partitions directly on tab? Terminal emulator not understand parted command, and from recovery TWRP 2.2.0.0 terminal asking me about from which directory execute commands. I try few directories, but parted/dev/mmcblk1 command show nothing to me.
Click to expand...
Click to collapse
Use CWM instead of TWRP.
Macadamia Daze said:
I'm having problems unpacking your boot image. Run the command "mount" on your tab and give me the output. I looked in your updater-script, though, and that seems compatible.
Click to expand...
Click to collapse
Hi, this is result of mount command:
Code:
[email protected]:/ $ export PATH=/data/local/bin:$PATH
[email protected]:/ $ mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
/dev/block/mmcblk0p9 /system ext4 ro,noatime,barrier=1,data=ordered 0 0
/dev/block/mmcblk0p7 /cache ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered 0 0
/dev/block/mmcblk0p1 /efs ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered 0 0
/dev/block/mmcblk0p10 /data ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered,noauto_da_alloc 0 0
/dev/block/mmcblk0p4 /mnt/.lfs j4fs rw,relatime 0 0
/sys/kernel/debug /sys/kernel/debug debugfs rw,relatime 0 0
/dev/fuse /mnt/sdcard fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
tmpfs /mnt/sdcard/extStorages tmpfs rw,dirsync,nosuid,nodev,noexec,noatime,nodiratime,size=0k,mode=755,gid=1000 0 0
/dev/block/vold/179:9 /mnt/sdcard/extStorages/SdCard vfat rw,dirsync,nosuid,nodev,noexec,noatime,nodiratime,uid=1000,gid=1023,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
[email protected]:/ $
Also, i get CWM instead TWRP. But CWM have not possibility entering commands at all.
If you had troubles with unpacking CM10 kernel, any way for update it to booting from sd?
Thank you.
Why duplicate the efs partition?
And what makes it need such a big cache partition?
Sent from my GT-P1000
partola1 said:
Hi, this is result of mount command:
Code:
[email protected]:/ $ export PATH=/data/local/bin:$PATH
[email protected]:/ $ mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,relatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
/dev/block/mmcblk0p9 /system ext4 ro,noatime,barrier=1,data=ordered 0 0
/dev/block/mmcblk0p7 /cache ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered 0 0
/dev/block/mmcblk0p1 /efs ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered 0 0
/dev/block/mmcblk0p10 /data ext4 rw,nosuid,nodev,noatime,barrier=1,data=ordered,noauto_da_alloc 0 0
/dev/block/mmcblk0p4 /mnt/.lfs j4fs rw,relatime 0 0
/sys/kernel/debug /sys/kernel/debug debugfs rw,relatime 0 0
/dev/fuse /mnt/sdcard fuse rw,nosuid,nodev,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
tmpfs /mnt/sdcard/extStorages tmpfs rw,dirsync,nosuid,nodev,noexec,noatime,nodiratime,size=0k,mode=755,gid=1000 0 0
/dev/block/vold/179:9 /mnt/sdcard/extStorages/SdCard vfat rw,dirsync,nosuid,nodev,noexec,noatime,nodiratime,uid=1000,gid=1023,fmask=0002,dmask=0002,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
[email protected]:/ $
Click to expand...
Click to collapse
Your essential partitions are the same, but are referenced differently. I will need to make a slight alteration to the conversion script.
Also, i get CWM instead TWRP. But CWM have not possibility entering commands at all.
Click to expand...
Click to collapse
You do it through ADB.
If you had troubles with unpacking CM10 kernel, any way for update it to booting from sd?
Click to expand...
Click to collapse
I'm looking into the boot image, but let's try something out. In the terminal emulator, run "cat /dev/block/mmcblk0p5 > /sdcard/full-boot.img" (without quotes). Then upload that file.
cdesai said:
Why duplicate the efs partition?
Click to expand...
Click to collapse
When I first ran across it, I wasn't sure what it was, so I added it for safety.
And what makes it need such a big cache partition?
Click to expand...
Click to collapse
I'm not sure. I decided to keep it close to the original cache partition size, which was 700+ MB. However, I've found in another setup that I can get by with half that. In my internal dual-boot setup, I have a 384MB cache partition.
Hello, [Solution lower in this thread]
My /EFS partition is gone. I dont know why, because I wasnt doing anything with my phone at that moment. Until this problem I was running cyanogenmod nightly. The battery was wasted I think because it feels slightly thicker than normal. I already replaced it.
I have an efs.img made with SA manager.
Symptoms:
Bootloop
Original recovery says:
Code:
E: failed to mount /efs (invalid argument)
I can get into recovery & download mode.
I can still flash philz custom recovery.
When in cwm I can still flash a zip with a rom, but it wont start.
These are the steps I tried to get my phone working again:
ODIN
Flashed stock jellybean with original pit file, and checked "clear efs" in odin 3.09.
Custom Recovery
Connected with ADB, and executed the following commands:
Code:
But as you can see that doesnt help much.
I tried several other things, but they boil down to the same. I used an aroma efs restore tool, but it just executes the dd command and fails the same way.
jogai said:
Hello,
My /EFS partition is gone. I dont know why, because I wasnt doing anything with my phone at that moment. Until this problem I was running cyanogenmod nightly. The battery was wasted I think because it feels slightly thicker than normal. I already replaced it.
I have an efs.img made with SA manager.
Symptoms:
Bootloop
Original recovery says:
Code:
E: failed to mount /efs (invalid argument)
I can get into recovery & download mode.
I can still flash philz custom recovery.
When in cwm I can still flash a zip with a rom, but it wont start.
These are the steps I tried to get my phone working again:
ODIN
Flashed stock jellybean with original pit file, and checked "clear efs" in odin 3.09.
Custom Recovery
Connected with ADB, and executed the following commands:
Code:
~ # mount
mount
rootfs on / type rootfs (rw)
tmpfs on /dev type tmpfs (rw,seclabel,nosuid,relatime,mode=755)
devpts on /dev/pts type devpts (rw,seclabel,relatime,mode=600)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,seclabel,relatime)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
tmpfs on /tmp type tmpfs (rw,seclabel,relatime)
tmpfs on /storage type tmpfs (rw,seclabel,relatime,mode=050,gid=1028)
tmpfs on /mnt/secure type tmpfs (rw,seclabel,relatime,mode=700)
tmpfs on /mnt/fuse type tmpfs (rw,seclabel,relatime,mode=775,gid=1000)
/dev/block/mmcblk0p7 on /cache type ext4 (rw,seclabel,relatime,user_xattr,barrier=1,journal_async_commit,data=ordered)
/dev/block/vold/259:3 on /storage/sdcard0 type vfat (rw,dirsync,nosuid,nodev,noexec,relatime,uid=1023,gid=1023,fmask=0007,dmask=0007,allow_uime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro)
~ # mke2fs /dev/block/mmcblk0p3
mke2fs /dev/block/mmcblk0p3
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
160 inodes, 1280 blocks
64 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=1310720
1 block group
8192 blocks per group, 8192 fragments per group
160 inodes per group
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 27 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
~ # dd if=/storage/sdcard0/efs.img of=/dev/block/mmcblk0p3 bs=4096
dd if=/storage/sdcard0/efs.img of=/dev/block/mmcblk0p3 bs=4096
dd: writing '/dev/block/mmcblk0p3': No space left on device
321+0 records in
320+0 records out
1310720 bytes (1.3MB) copied, 0.035800 seconds, 34.9MB/s
~ # chown 1001:radio /efs/nv_data.bin
chown 1001:radio /efs/nv_data.bin
chown: /efs/nv_data.bin: No such file or directory
But as you can see that doesnt help much.
I tried several other things, but they boil down to the same. I used an aroma efs restore tool, but it just executes the dd command and fails the same way.
Click to expand...
Click to collapse
so hold on!
the dd is failing because the img file is larger than the partition
why?
https://github.com/CyanogenMod/andr...common/blob/cm-11.0/rootdir/fstab.smdk4210#L9
i dont have an exynos4 device, but it seems p1 is /efs. and you are flashing p3, wtf!!! its a miracle if the phone is not fully bricked!! also, was efs mounted while you dd'ed? that would have corrupted it! not to mention using chown on it.
seriously, please stop randomly touching things and be very sure of what you do next or you'll have an unrecoverable brick soon.
p2 and p3 seem to be the bootloaders:
https://gitlab.com/ameer1234567890/...part_layouts/raw/partlayout4nandroid.GT-N7000
so. have you tried rebooting the phone after this? do you still have recovery and download mode?
if so, you need to recover p3 somehow. google a method then ASK before doing anything.
go to recovery and adb shell to it.
use blockdev command to find out the sizes of partitions p1 p2 and p3.
compare it to the size of the alleged-efs.img file you have, which apparently may actually be anything but.
unmount everything from recovery, then you can just adb pull /dev/your/desired/partition.
(i havent seen this used anywhere in xda, but i use it all the time. easier than dd'ing)
get images of your current p1 p2 and p3.
check that p3 and alleged-efs.img match (except for size) to verify that p3 was actually overwritten.
check the contents of alleged-efs.img and verify that it actually is an efs partition image.
dont make any further changes, and post the result of EVERYTHING here
Yes. Can confirm p1 is EFS.
This is N7000 partition table print by parted.
Model: MMC VYL00M (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 26.5MB 1311kB SBL1
3 27.3MB 28.6MB 1311kB 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 264MB 210MB ext4 CACHE
8 264MB 281MB 16.8MB MODEM
9 281MB 1174MB 893MB ext4 FACTORYFS
10 1174MB 3322MB 2147MB ext4 DATAFS
11 3322MB 15.2GB 11.9GB fat32 UMS
12 15.2GB 15.8GB 537MB ext4 HIDDEN
The efs backup image in my phone is about 20mb.
GL.
you havent answered my questions.
so. have you tried rebooting the phone after this? do you still have recovery and download mode?
go to recovery and adb shell to it.
use blockdev command to find out the EXACT sizes of partitions p1 p2 and p3.
or use any other command you want.
compare it to the EXACT size of the alleged-efs.img file you have.
apparently it might be a match for p1, which is good.
get images of your current p1 p2 and p3:
unmount everything from recovery, then you can just adb pull /dev/your/desired/partition.
(i havent seen this used anywhere in xda, but i use it all the time. easier than dd'ing)
this is another way to find the exact partition sizes by the way: looking at the image sizes
check that p3 and alleged-efs.img match (except for size) to verify that p3 was actually overwritten.
do you absolutely trust that your alleged-efs.img is a good efs backup? you can mount it read only in your linux pc and check the contents of it to verify that it actually is an efs partition image. or you can just be sure that it is the right image. or you can pm it to me and i can check that.
you can pm the 4 partition images so i can see whats going on.
i think the phone has two equal bootloader copies (because corruption means unrecoverable brick) and you borked one. that's why it might be still booting. we need to restore p3 asap. please google the subject and check my asumption if you can.
---------- Post added at 03:31 PM ---------- Previous post was at 02:35 PM ----------
of course if you are lazy you can just:
dd if=/storage/sdcard0/efs.img of=/dev/block/mmcblk0p1
or:
adb push your/pc/dir/efs.img /dev/block/mmcblk0p1
MAKE SURE that the efs partition is not mounted before doing those.
you dont need any kind of chown if the backup is ok.
you need to recover p3. it could be as simple as:
adb pull /dev/block/mmcblk0p2 sbl.img
adb push sbl.img /dev/block/mmcblk0p3
if the two copies are the same, BUT DONT DO ANYTHING UNTIL YOU ARE VERY SURE!
if you use, say, odin now, and the writing of p2 gets interrupted for any reason, there wont be p3 to boot! so device is bricked FOREVER. no recovery possible without JTAG. you need to fix this ASAP.
your first TO-DO: verify the assumption that p2 and p3 are supposed to be two bit-by-bit exact copies of the bootloader.
any rom that contains a bootloader is extremely dangerous to flash at this time. this includes stock.
Thanks for your concern!
I got my instructions from here: http://techbeasts.com/2013/11/29/how-to-restore-and-back-up-efs-data-on-samsung-galaxy-devices/
Thats why I was tring p3. The aroma backup tool did try the same partition.
I tried all this several times, and tried to odin flash several times. The phone is still not bricked and I still can get to download & recovery just fine.
I'm at work now, but will post my findings asap.
jogai said:
Thanks for your concern!
I got my instructions from here: http://techbeasts.com/2013/11/29/how-to-restore-and-back-up-efs-data-on-samsung-galaxy-devices/
Thats why I was tring p3. The aroma backup tool did try the same partition.
I tried all this several times, and tried to odin flash several times. The phone is still not bricked and I still can get to download & recovery just fine.
I'm at work now, but will post my findings asap.
Click to expand...
Click to collapse
I would try to restore efs first to see how it goes. I suspect SBL2 maybe not important!
forest1971 said:
I would try to restore efs first to see how it goes. I suspect SBL2 maybe not important!
Click to expand...
Click to collapse
SBL2 is probably the 2nd copy of the bootloader. if SBL1 gets damaged (eg: interrupted odin) the phone is bricked and unbrickable, except by taking it to a JTAG house.
if you are not going to reseach this, at least copy p2 over p3:
adb pull /dev/block/mmcblk0p2 sbl.img
adb push sbl.img /dev/block/mmcblk0p3
Code:
~ # dd if=/dev/block/mmcblk0p2 of=sdcard/sbl1.img
dd if=/dev/block/mmcblk0p2 of=sdcard/sbl1.img
2560+0 records in
2560+0 records out
1310720 bytes (1.3MB) copied, 0.400897 seconds, 3.1MB/s
~ # dd if=/dev/block/mmcblk0p3 of=sdcard/sbl3.img
dd if=/dev/block/mmcblk0p3 of=sdcard/sbl3.img
2560+0 records in
2560+0 records out
1310720 bytes (1.3MB) copied, 0.161615 seconds, 7.7MB/s
Result:
https://filetea.me/t1sxlmPdQ9xSe2qh94HX82wMQ
https://filetea.me/t1sVUTXpxrWQ2mRSIx600aCqg
Code:
~ # dd if=sdcard/efs.img of=/dev/block/mmcblk0p1
dd if=sdcard/efs.img of=/dev/block/mmcblk0p1
40960+0 records in
40960+0 records out
20971520 bytes (20.0MB) copied, 6.726656 seconds, 3.0MB/s
Seems to work!
Code:
~ # mkdir /efs
mkdir /efs
~ # busybox mount -w -t ext4 /dev/block/mmcblk0p1 /efs
busybox mount -w -t ext4 /dev/block/mmcblk0p1 /efs
I think its strange I had to make /efs, and after reboot its seems gone:
Code:
~ # mount
mount
rootfs on / type rootfs (rw)
tmpfs on /dev type tmpfs (rw,seclabel,nosuid,relatime,mode=755)
devpts on /dev/pts type devpts (rw,seclabel,relatime,mode=600)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,seclabel,relatime)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
tmpfs on /tmp type tmpfs (rw,seclabel,relatime)
tmpfs on /storage type tmpfs (rw,seclabel,relatime,mode=050,gid=1028)
tmpfs on /mnt/secure type tmpfs (rw,seclabel,relatime,mode=700)
tmpfs on /mnt/fuse type tmpfs (rw,seclabel,relatime,mode=775,gid=1000)
/dev/block/mmcblk0p7 on /cache type ext4 (rw,seclabel,relatime,user_xattr,barrier=1,journal_async_commit,data=ordered)
While in fstab.smdk4210:
Code:
# Android fstab file.
#<src> <mnt_point> <type> <mnt_flags and options> <fs_mgr_flags>
# The filesystem that contains the filesystem checker binary (typically /system) cannot
# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
# data partition must be located at the bottom for supporting device encryption
/dev/block/mmcblk0p9 /system ext4 ro,noatime wait
/dev/block/mmcblk0p7 /cache ext4 noatime,nosuid,nodev,journal_async_commit,errors=panic wait,check_spo
/dev/block/mmcblk0p1 /efs ext4 noatime,nosuid,nodev,journal_async_commit,errors=panic wait,check_spo
/dev/block/mmcblk0p10 /data ext4 noatime,nosuid,nodev,discard,noauto_da_alloc,journal_async_commit,errors=panic wait,check_spo,encryptable=/efs/metadata
/dev/block/mmcblk0p12 /preload ext4 noatime,nosuid,nodev,journal_async_commit wait
# vold-managed volumes ("block device" is actually a sysfs devpath)
/devices/platform/dw_mmc/mmc_host/mmc0/mmc0 auto auto defaults voldmanaged=sdcard0:11,nonremovable,noemulatedsd
/devices/platform/s3c-sdhci.2/mmc_host/mmc1 auto auto defaults voldmanaged=sdcard1:auto
/devices/platform/s3c_otghcd/usb auto auto defaults voldmanaged=usbdisk0:auto
# recovery
/dev/block/mmcblk0p5 /boot emmc defaults recoveryonly
/dev/block/mmcblk0p6 /recovery emmc defaults recoveryonly
/dev/block/mmcblk0p8 /modem emmc defaults recoveryonly
Odin'd & working again!
Many thanks to everyone who wanted to help this dumbass out! Much appreciated!
I think its strange I had to make /efs, and after reboot its seems gone:
Code:
~ # mount
mount
rootfs on / type rootfs (rw)
Click to expand...
Click to collapse
/ is rootfs which is a special instance of tempfs (which is a ram drive). nothing you put in / will survive a reboot.