Related
I've been looking off and on and having little luck finding the answer. My ultimate goal is to not have the EMMC partitions mounted at all when booting from my CM7 SD card as I have a 32GB card and have plenty of space on it so do not need the 5GB or so that's mounted as /media. I know I can go into the fstab.vold file and change the mounts there that CM7 uses, but what controls which partitions are mounted when connecting it to windows? I either want to alter the EMMC /media partition that's mounted to something else on the SD card (boot maybe? dunno if this is a good idea or not) or remove it from the USB mounting altogether.
- Aerlock
You can remove emmc from vold.fstab and create your own startup script in /data/local/userinit.sh.
Something like: mount /dev/block/mmcblk... /mnt/emmc -t ... -o .........
Note: I am using CM7 and it executes /data/local/userinit.sh at boot. (Look at /etc/init.d/20userinit)
bigsheep123 said:
You can remove emmc from vold.fstab and create your own startup script in /data/local/userinit.sh.
Something like: mount /dev/block/mmcblk... /mnt/emmc -t ... -o .........
Note: I am using CM7 and it executes /data/local/userinit.sh at boot. (Look at /etc/init.d/20userinit)
Click to expand...
Click to collapse
Thanks, I already had that in mind for changing the actual partitions mounted in Android, but what I would like to figure out (and am having absolutely zero luck with) is how to change what shows in Windows/OSX/Linux when I plug it into a USB port. Currently when I connect my Nook I have the sdcard partition show up and the internal media partition show up in windows. I want to change those so that I can get a different partition to who instead of the emmc partition.
- Aerlock
Aerlock said:
Thanks, I already had that in mind for changing the actual partitions mounted in Android, but what I would like to figure out (and am having absolutely zero luck with) is how to change what shows in Windows/OSX/Linux when I plug it into a USB port. Currently when I connect my Nook I have the sdcard partition show up and the internal media partition show up in windows. I want to change those so that I can get a different partition to who instead of the emmc partition.
- Aerlock
Click to expand...
Click to collapse
You can use the samuelhalff Nook Color UMS app to select mapping of partitions to USB
http://forum.xda-developers.com/showthread.php?t=952456
Windows is normally only going to show results for partitions which are formatted as FAT(32) and won't show the ext3/4 partitions used for system and data.
bobtidey said:
You can use the samuelhalff Nook Color UMS app to select mapping of partitions to USB
http://forum.xda-developers.com/showthread.php?t=952456
Windows is normally only going to show results for partitions which are formatted as FAT(32) and won't show the ext3/4 partitions used for system and data.
Click to expand...
Click to collapse
Hrmmm...this works temporarily. I can use this app to change whats mounted but I need to re-run and remount at every disconnect and reconnect. What I really would like to find is the files/config that determines which partitions to mount at the time the Nook is connected to the computer. If I could find that info I'd be a happy Nooker.
- Aerlock
Anybody got an idea where I can look this info up? Or what files I should start poking around in to make these changes? I tried PMing samuelhalff last week and haven't gotten a reply yet.
- Aerlock
Aerlock said:
Anybody got an idea where I can look this info up? Or what files I should start poking around in to make these changes? I tried PMing samuelhalff last week and haven't gotten a reply yet.
- Aerlock
Click to expand...
Click to collapse
I can tell you what you need to change. The partition to mount is stored in /sys/devices/platform/usb_mass_storage/lun0/file. The 'file' is a text file with the partition number in it. For instance, if you wanted to mount the boot partition in emmc you would add "/dev/block/mmcblk0p1" (without the quotes) to the file. Then you could do the same with lun1 to mount something else. After you put the value in the file and save it, just plug in the cable. It will show up as a drive letter. (Do not select the 'turn on USB storage' button that pops up in android, that changes the files to point to /media (emmc) and /sdcard, and when you exit the mode, it clears them to null.)
I leave it to you to figure which partitions to mount and how to change the file when you need it. Remember, Windows can only read fat partitions, which on emmc is /rom (2?), /boot (1) and media (8). /system (5), /data (6), and /cache (7) are all ext and Windows cannot read ext without third party software help.
Not sure why you want to do this. If you are wanting to mount the SD boot partition on an SD installed system, it is ...mmcblk1p1.
leapinlar said:
I can tell you what you need to change. The partition to mount is stored in /sys/devices/platform/usb_mass_storage/lun0/file. The 'file' is a text file with the partition number in it. For instance, if you wanted to mount the boot partition in emmc you would add "/dev/block/mmcblk0p1" (without the quotes) to the file. Then you could do the same with lun1 to mount something else. After you put the value in the file and save it, just plug in the cable. It will show up as a drive letter. (Do not select the 'turn on USB storage' button that pops up in android, that changes the files to point to /media (emmc) and /sdcard, and when you exit the mode, it clears them to null.)
Click to expand...
Click to collapse
Thank you! Thank you! Thank you! I've been trying to find this info off and on for a few months now. I wasn't able to get it to go away with fiddling with the vold.fstab so I knew it was somewhere else but I didn't know where exactly.
So if I were to leave that file blank would it have nothing show up when I connect the NC to windows? Or do I need to do something else to disable the second lun?
leapinlar said:
I leave it to you to figure which partitions to mount and how to change the file when you need it. Remember, Windows can only read fat partitions, which on emmc is /rom (2?), /boot (1) and media (8). /system (5), /data (6), and /cache (7) are all ext and Windows cannot read ext without third party software help.
Click to expand...
Click to collapse
Thanks again, I'd found this out on my own while playing with mounting the various partitions in the vold.fstab but it's helpful to get someone else to confirm my findings.
leapinlar said:
Not sure why you want to do this. If you are wanting to mount the SD boot partition on an SD installed system, it is ...mmcblk1p1.
Click to expand...
Click to collapse
My ultimate goal is to disable the second partition mount in Windows. I only want to have the SD card data partition show up, I want to completely separate the emmc boot from the SD boot. I may also want to add the boot partition from the SD card at a later time so I can do upgrades when I have a computer but no SD card adapter/reader.
Also (just theoretically, for my understanding) would it be possible to add more luns by creating the dirs and files in the /sys/devices/platform/usb_mass_storage/ directory?
- Aerlock
Aerlock said:
So if I were to leave that file blank would it have nothing show up when I connect the NC to windows? Or do I need to do something else to disable the second lun?
Also (just theoretically, for my understanding) would it be possible to add more luns by creating the dirs and files in the /sys/devices/platform/usb_mass_storage/ directory?
Click to expand...
Click to collapse
There are always going to be two drives show up when you plug it in (lun0 and lun1). They are non functional until you press the button to turn on (because the two files are empty). When you press the button the software populates the files with the emmc and sdcard partition locations and the drives become functional.
I'm not sure how to prevent emmc from showing if you want just sdcard. Maybe you can set permissions on one to be all boxes unchecked. But two drives will always show, just one may be non functional. Another option would be to set the two luns to be what you want and set permissions to be read only. Then maybe pushing the button will have no effect.
But two drive letters will always show.
No, there can only be two lun files. It is built into the operating system.
Edit: I am going to experiment and get back to you.
Edit 2: I've got it all fixed for you. I attached a rar file to the board. Just unrar and you will find two files
The first, 55mountsingleSD, will cause just the SD card to mount. The second drive letter should disappear.
The second, 56mount2customdrives, will mount the boot partition of emmc and the SD card. You can edit the file to change which two partitions you want Windows to see.
Place one (only one) of these files in the /system/etc/init.d folder and change its permissions to match the other files in that folder.
When you reboot with one of these files in that folder, the drive(s) are ready for mounting in Windows. All you have to do is plug in your USB cable. The drive(s) should show in Windows automatically. Do NOT select the "Turn on USB storage" button (just hit the back button). If you do, it will unmount emmc and the SD card in CM7 and you will have to go to settings to re-mount them. Also, be sure to "eject" the drives in Windows before disconnecting the cable.
NookColorUMS will not work anymore because I accomplished this by locking the lun files. If you want to use it, just remove the file from init.d or rename it with .bak and reboot and everything will return to normal.
Enjoy
Have you tried this? I'm looking for feedback. BTW, for others interested, this will not work on CM9 since it does not currently support UMS mounting.
leapinlar said:
Have you tried this? I'm looking for feedback. BTW, for others interested, this will not work on CM9 since it does not currently support UMS mounting.
Click to expand...
Click to collapse
Sadly I haven't had a chance to try it. I've got a 2 year old and a sick wife at home so my time has been limited. Good news is the wife is almost back to normal now and I should be able to play with these tomorrow or this weekend.
- Aerlock
P.S. Thanks for the scripts. They'll save me lots of trial and error making my own.
leapinlar said:
Have you tried this? I'm looking for feedback. BTW, for others interested, this will not work on CM9 since it does not currently support UMS mounting.
Click to expand...
Click to collapse
Finally got a chance to try these out between projects at work today.
Here's what I get when I run the 55mountsingleSD script in gscript:
Code:
stderr:
stderr:
stderr:
stderr:
stderr: cannot create /sys/devices/platform/usb_mass_storage/lun0/file: permission denied
stderr:
stderr:
stderr:
stderr:
stderr:
stderr:
The first time I ran it I got all 'stderr:' lines. I do have a Boot partition mounted in windows after running this script. I haven't checked to determine if its the SD card or the emmc but it appears to be the SD card at first glance.
Here's what I get when I run the 56mount2customdrives script in gscript:
Code:
stderr:
stderr:
stderr:
stderr:
stderr: cannot create /sys/devices/platform/usb_mass_storage/lun0/file: permission denied
stderr:
stderr: cannot create /sys/devices/platform/usb_mass_storage/lun1/file: permission denied
stderr:
stderr:
stderr:
stderr:
stderr:
stderr:
Again the first time I ran it I got all 'stderr:' lines. This time I have 2 boot partitions mounted in windows, 1 appears to be the emmc and the other the SDcard.
I also took a look at the /sys/devices/platform/usb_mass_storage/lun(x)/file files and heres what I found in them when I had the USB storage turned on:
Code:
lun0 - /dev/block/vold/179:20
lun1 - /dev/block/vold/179:8
Since you've been so helpful with these scripts I've got some more questions for you.
Where are the settings for the USB storage stored? For example what do I change if I want the 'Turn on USB storage' button to mount the sdcard and boot partitions of my SD card instead of the sdcard and emmc media partitions?
Or how do I disable the USB storage screen from popping up when I connect the USB cable so I can just use the script.
Also how do I unmount the partitions when I'm done in windows? Just delete the contents of those two files?
- Aerlock
Aerlock said:
Finally got a chance to try these out between projects at work today.
Here's what I get when I run the 55mountsingleSD script in gscript:
Code:
stderr:
stderr:
stderr:
stderr:
stderr: cannot create /sys/devices/platform/usb_mass_storage/lun0/file: permission denied
stderr:
stderr:
stderr:
stderr:
stderr:
stderr:
The first time I ran it I got all 'stderr:' lines. I do have a Boot partition mounted in windows after running this script. I haven't checked to determine if its the SD card or the emmc but it appears to be the SD card at first glance.
Here's what I get when I run the 56mount2customdrives script in gscript:
Code:
stderr:
stderr:
stderr:
stderr:
stderr: cannot create /sys/devices/platform/usb_mass_storage/lun0/file: permission denied
stderr:
stderr: cannot create /sys/devices/platform/usb_mass_storage/lun1/file: permission denied
stderr:
stderr:
stderr:
stderr:
stderr:
stderr:
Again the first time I ran it I got all 'stderr:' lines. This time I have 2 boot partitions mounted in windows, 1 appears to be the emmc and the other the SDcard.
I also took a look at the /sys/devices/platform/usb_mass_storage/lun(x)/file files and heres what I found in them when I had the USB storage turned on:
Code:
lun0 - /dev/block/vold/179:20
lun1 - /dev/block/vold/179:8
Since you've been so helpful with these scripts I've got some more questions for you.
Where are the settings for the USB storage stored? For example what do I change if I want the 'Turn on USB storage' button to mount the sdcard and boot partitions of my SD card instead of the sdcard and emmc media partitions?
Or how do I disable the USB storage screen from popping up when I connect the USB cable so I can just use the script.
Also how do I unmount the partitions when I'm done in windows? Just delete the contents of those two files?
- Aerlock
Click to expand...
Click to collapse
Did you read my post? Those scripts were not meant to run in gscript. Thats why you are getting those error messages. They were meant to put in /etc/init.d. They have to be run at boot time to have the right permissions to do things.
The settings for 'turn on' are stored in the operating system program code. You will not be able to change that.
Again, the scripts are not to be run after booting. They run at boot time and are there waiting for you to plug in the cable. When the cable is plugged in, they automatically show up in windows (depending on which script you put in init.d). Just hit the back button when the pop-up comes up to get rid of it. To disconnect the drives in Windows, use the eject command by right clicking on the drive in Windows Explorer. Then unplug the cable and it is ready for next time you plug in. Don't do anything with the files. Just never press the 'Turn on' button, ever. Just hit back to get rid of it.
If you want different partitions to show, edit the script file before you re-boot.
leapinlar said:
Did you read my post? Those scripts were not meant to run in gscript. Thats why you are getting those error messages. They were meant to put in /etc/init.d. They have to be run at boot time to have the right permissions to do things.
The settings for 'turn on' are stored in the operating system program code. You will not be able to change that.
Again, the scripts are not to be run after booting. They run at boot time and are there waiting for you to plug in the cable. When the cable is plugged in, they automatically show up in windows (depending on which script you put in init.d). Just hit the back button when the pop-up comes up to get rid of it. To disconnect the drives in Windows, use the eject command by right clicking on the drive in Windows Explorer. Then unplug the cable and it is ready for next time you plug in. Don't do anything with the files. Just never press the 'Turn on' button, ever. Just hit back to get rid of it.
If you want different partitions to show, edit the script file before you re-boot.
Click to expand...
Click to collapse
I feel stupid now. I did read that the first time. When I went back and got the files to test I just skimmed your post and thought I knew what I was doing. Let me try these again and I'll post the results.
- Aerlock
where are these files in cm 10.1
Hi there,
I'm running CM 10.1 aka 4.2 on a Samsung I9000..I'm wondering if you can point me in the wright direction where these files are stored....
And what to change...
As said in the private message i would like to make my second SDCARD or a folder from it visible on the first sdcard even when I connect to Windows.
Vold.fstap doesn't help me in this case..
Already a big thank you for pointing in the right direction
Is there a posibility to repost the scripts I understand they'll have to be in init.d...
Kind Regards
Guy Forssman
How on Samsung I9000 CM 10.1
With putty as the tool and SSHDroid running as app
I do a "ls /dev/block/vold"
results in 179.0 179.1 179.2 179.8 179.9
"ls /dev/block/platform" results in s3c-sdchi.0 s3c-sdchi.2 s5pc110-onenand
"mount" learns me
rootfs on / type rootfs (ro,relatime)
tmpfs on /dev type tmpfs (rw,nosuid,relatime,mode=755)
devpts on /dev/pts type devpts (rw,relatime,mode=600)
none on /dev/cpuctl type cgroup (rw,relatime,cpu)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
/sys/kernel/debug on /sys/kernel/debug type debugfs (rw,relatime)
none on /acct type cgroup (rw,relatime,cpuacct)
tmpfs on /mnt/secure type tmpfs (rw,relatime,mode=700)
tmpfs on /mnt/asec type tmpfs (rw,relatime,mode=755,gid=1000)
tmpfs on /mnt/obb type tmpfs (rw,relatime,mode=755,gid=1000)
/dev/block/mtdblock3 on /cache type yaffs2 (rw,nosuid,nodev,relatime)
/dev/block/mtdblock5 on /radio type yaffs2 (rw,relatime)
/dev/block/mtdblock2 on /datadata type yaffs2 (rw,relatime)
/dev/lvpool/system on /system type ext4 (ro,relatime,barrier=1,data=ordered)
/dev/lvpool/userdata on /data type ext4 (rw,nosuid,nodev,noatime,errors=panic,barrier=1,nomblk_io_submit,data=ordered)
/dev/block/mtdblock4 on /efs type yaffs2 (rw,relatime)
]/dev/block/vold/179:9 on /storage/sdcard1 type vfat (rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro)
/dev/block/vold/179:1 on /storage/sdcard0 type vfat (rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro)
tmpfs on /storage/sdcard0/.android_secure type tmpfs (ro,relatime,size=0k,mode=000)
/dev/block/dm-2 on /mnt/asec/me.shkschneider.dropbearserver-1 type ext4 (ro,dirsync,nosuid,nodev,noatime,barrier=1)
and indeed windows 7 shows me a walkman icon with 2 entrys
SD card
USB storage
The content of the external micro sd card is on the SD card which Windows8 shows
The content of the internal memory is shown on windows8 in the USB storage
The phone itself doesn't shown the usb mount icon
It seems that even after a reboot the settings stay
I did a "setprop persist.sys.usb.config mtp,adb"
"echo /dev/block/vold/179:1 > /sys/devices/platform/s3c-usbgadget/gadget/lun0/file"
"echo /dev/block/vold/179:9 > /sys/devices/platform/s3c-usbgadget/gadget/lun1/file"
Forssound said:
With putty as the tool and SSHDroid running as app
I do a "ls /dev/block/vold"
results in 179.0 179.1 179.2 179.8 179.9
"ls /dev/block/platform" results in s3c-sdchi.0 s3c-sdchi.2 s5pc110-onenand
"mount" learns me
rootfs on / type rootfs (ro,relatime)
tmpfs on /dev type tmpfs (rw,nosuid,relatime,mode=755)
devpts on /dev/pts type devpts (rw,relatime,mode=600)
none on /dev/cpuctl type cgroup (rw,relatime,cpu)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
/sys/kernel/debug on /sys/kernel/debug type debugfs (rw,relatime)
none on /acct type cgroup (rw,relatime,cpuacct)
tmpfs on /mnt/secure type tmpfs (rw,relatime,mode=700)
tmpfs on /mnt/asec type tmpfs (rw,relatime,mode=755,gid=1000)
tmpfs on /mnt/obb type tmpfs (rw,relatime,mode=755,gid=1000)
/dev/block/mtdblock3 on /cache type yaffs2 (rw,nosuid,nodev,relatime)
/dev/block/mtdblock5 on /radio type yaffs2 (rw,relatime)
/dev/block/mtdblock2 on /datadata type yaffs2 (rw,relatime)
/dev/lvpool/system on /system type ext4 (ro,relatime,barrier=1,data=ordered)
/dev/lvpool/userdata on /data type ext4 (rw,nosuid,nodev,noatime,errors=panic,barrier=1,nomblk_io_submit,data=ordered)
/dev/block/mtdblock4 on /efs type yaffs2 (rw,relatime)
]/dev/block/vold/179:9 on /storage/sdcard1 type vfat (rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro)
/dev/block/vold/179:1 on /storage/sdcard0 type vfat (rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro)
tmpfs on /storage/sdcard0/.android_secure type tmpfs (ro,relatime,size=0k,mode=000)
/dev/block/dm-2 on /mnt/asec/me.shkschneider.dropbearserver-1 type ext4 (ro,dirsync,nosuid,nodev,noatime,barrier=1)
and indeed windows 7 shows me a walkman icon with 2 entrys
SD card
USB storage
The content of the external micro sd card is on the SD card which Windows8 shows
The content of the internal memory is shown on windows8 in the USB storage
The phone itself doesn't shown the usb mount icon
It seems that even after a reboot the settings stay
I did a "setprop persist.sys.usb.config mtp,adb"
"echo /dev/block/vold/179:1 > /sys/devices/platform/s3c-usbgadget/gadget/lun0/file"
"echo /dev/block/vold/179:9 > /sys/devices/platform/s3c-usbgadget/gadget/lun1/file"
Click to expand...
Click to collapse
If you want those luns to be different, you echo a different /dev/block... to the file instead of the vold locations. Looks like it uses /dev/block/mtdblock with a partition number after it for the interior partitions. Look in /dev/block/platform and those sc3-h... folders and see if it lists partition numbers either for interior or sdcards.
Sent from my HD+ running CM10 on SD with XDA Premium
rest the question
how do i make these commands flash proof?
Already the commands I did made the car find my phone and played the music..
It also played system sounds, my movies etc etc
I just did a
/dev/block/platform # ls
s3c-sdhci.0 s3c-sdhci.2 s5pc110-onenand
/dev/block/platform # cd s5pc110-onenand
/dev/block/platform/s5pc110-onenand # ls
mtdblock0 mtdblock1 mtdblock2 mtdblock3 mtdblock4 mtdblock5 mtdblock6
"cd /dev/block/platform/s3c-sdhc1.0"
"ls"
result by-num mmcblk0 mmcblk0p1 mmcblk0p2
cd /dev/block/platform/s3c-sdhci.2
/dev/block/platform/s3c-sdhci.2 # ls
by-num mmcblk1 mmcblk1p1
So if I only would mount the music folder from my external folder onto a folder on the internal folder?
Or is it easyer to just mount the whole extenal sd card ?
Forssound said:
how do i make these commands flash proof?
Click to expand...
Click to collapse
I'm not sure what you mean flash proof. Do you mean so they stick after flashing a new rom? To do that you need to put the commands in /data. And for that to work, your rom has to support userinit.d or bootcompletehook.sh in /data. Each device is different. Look in your init.d folder and see if it has a script that calls userinit.d. You said you had CM10.1 and usually CM supports userinit.d. Create a folder in /data/local named userinit.d and put your scripts there. They get run right after init.d scripts are run. Be sure to set the script file permissions to execute.
Sent from my HD+ running CM10 on SD with XDA Premium
leapinlar said:
I'm not sure what you mean flash proof. Do you mean so they stick after flashing a new rom? To do that you need to put the commands in /data. And for that to work, your rom has to support userinit.d or bootcompletehook.sh in /data. Each device is different. Look in your init.d folder and see if it has a script that calls userinit.d. You said you had CM10.1 and usually CM supports userinit.d. Create a folder in /data/local named userinit.d and put your scripts there. They get run right after init.d scripts are run. Be sure to set the script file permissions to execute.
Sent from my HD+ running CM10 on SD with XDA Premium
Click to expand...
Click to collapse
I found a init.rc on /data/local/tmp
it's huge
in /system/etc/init.d I found 2 files 00banner and 90userinit
vi 90userinit is this
#!/system/bin/sh
# call userinit.sh and/or userinit.d/* scripts if present in /data/local
if [ -e /data/local/userinit.sh ];
then
log -p i -t userinit "Executing /data/local/userinit.sh";
logwrapper /system/bin/sh /data/local/userinit.sh;
setprop cm.userinit.active 1;
fi;
if [ -d /data/local/userinit.d ];
then
logwrapper busybox run-parts /data/local/userinit.d;
setprop cm.userinit.active 1;
fi;
so it seems that I can make a
/data/local/userinit.d
this file should be executable and what do you advise I put in it?
---------- Post added at 11:01 PM ---------- Previous post was at 10:51 PM ----------
Is it better to use
setprop persist.sys.usb.config mass_storage,adb
or
setprop persist.sys.usb.config mtp,adb
further you talk about the /dev/block/platform and those sc3-h... folders
I found the following
echo /dev/block/vold/179:9 > /sys/devices/platform/s3c-usbgadget/gadget/lun1/file"
Is there a reason to choose to use one above the other?
Android Batch File to Partition SD Card
This batch command file invokes the /sbin/parted and /sbin/tune2fs tools hosted by ClockWorkMod (CWM) Recovery 5.0.2.0 to control partitioning of your SD card for a variety of purposes, some of which are listed below.
It is a good idea to review the command line options and parameters of the parted and tune2fs tools: On your phone (for example, via computer-enabled ADB or terminal emulator), get root and enter:
# /sbin/parted --help
# /sbin/tune2fs --help
I decided to make this a separate thread for a number of reasons:
Streamline the process of making room for second ROM in a dual boot configuration (see http://forum.xda-developers.com/showthread.php?t=1651356 ). These commands can theoretically be rolled into a flashable zip to almost fully automate a dual-boot install of fixed ROMs, e.g. CM9 and CM7.
My Dual Boot threads have “sensory overload” written all over them
The amount of material presented here is probably enough to warrant a separate thread
This is an Android-friendly alternative to GParted/MiniTool. For example there is no need to pull SD card, partition and reinsert. Of course, GParted has the pleasant GUI and gives you a chance to review your changes before committing, whereas the Android “parted” tool is highly utilitarian.
Batch commands are quickly and easily modified to create/remove/adjust partitions. The general consensus is that for large files, ext3 R/W speeds are faster than those of FAT32. And ext3[4] is more stable and can handle files exceeding the maximum 4GB allowed by FAT32.
Batch commands are easily modified to perform customizations other than dual boot
Some users may wish to host their entire system on SD card: ROM, music, pictures, movies etc.
Some users may wish to return their SD cards to a traditional single-boot state by running a subset of these batch commands
That said, I strongly advise that you NOT run these commands UNLESS you are comfortable with ALL of the following:
1. /sdcard (FAT32) and ALL subdirectories copied to /emmc/sdcard-backup. Ask yourself: Do I have enough space left on my 10GB emmc partition to host a full backup of /sdcard? AND, will there be enough room on the /sdcard filesystem to restore this backup AFTER downsizing my SD card's FAT32 partition?
2. Any existing ext* partitions of SD card are blown away, for example those generated by a previous dual boot zip install. In other words, you lose /system, /cache and /data from an existing sdcard-based ROM.
3. You MAY lose all data on your (backed-up) FAT32 partition depending on what boundaries were used for resizing.
Note that I do not include a command to push /emmc/sdcard-backup back onto SD card. That is because:
There may not be enough room on /sdcard after a FAT32 downsize, and
There may be a data conflict when flashing a different dual boot configuration as opposed to an updated one. But at least there is a full backup of /sdcard FAT32 --- assuming emmc has enough room to host it.
Presently there is no logic to detect the storage limits of the /emmc and /sdcard filesystems. I will leave that to you.
SO... if for ANY reason you are NOT comfortable with the potential changes outlined above, I recommend that you please STOP HERE and consider researching this topic further until you are comfortable.
For those willing and able to give this a try, I strongly recommend first performing an ADB-assisted run (i.e. with a computer hosting Android SDK Platform Tools) using an SD card with at least 4GB open (to be safe) AND with enough room on emmc to host a FULL backup of your entire /sdcard filesystem (/sdcard and all its subdirectories).
Fully charge your battery! CWM draws a lot of current, even if nothing else is running.
Boot phone to CWM
Connect phone to computer
Launch ADB shell to access phone
# adb shell (can do this on any ADB-enabled machine)
Get root (enter “su” at phone shell command prompt) and copy/paste/enter each and every command (those not prefixed by "echo") in your computer's command window:
Code:
#! /bin/sh
echo "Android batch script to create ext partitions for SD card-based ROM"
echo
echo "First unmount all filesystems of primary (emmc) ROM"
umount /system > /dev/null 2>&1
umount /cache > /dev/null 2>&1
umount /data > /dev/null 2>&1
echo
echo "Mount external (sdcard) and internal (emmc) memory"
mount /sdcard > /dev/null 2>&1
mount /dev/block/mmcblk0p18 /emmc > /dev/null 2>&1
echo
echo "Create sdcard-backup directory on emmc with current date and time"
echo "Recommend delete any unnecessary backups of sdcard at this point"
bkdir="sdcard-backup-`date +%d-%b-%Y-%H%M%S`"
mkdir /emmc/$bkdir > /dev/null 2>&1
echo
echo Backup directory: /emmc/$bkdir
echo
echo "Press ENTER to continue..." ; read
echo
echo "Backing up contents of sdcard FAT32 to emmc"
cp -a /sdcard/* /emmc/$bkdir/
echo
echo Done...
ls -ld /emmc/$bkdir
echo
echo "Unmount internal and external memory"
umount /emmc > /dev/null 2>&1
umount /sdcard > /dev/null 2>&1
echo
echo "Show existing partition map of SD card"
parted /dev/block/mmcblk1 print
echo
echo "Press ENTER to continue..." ; read
echo
echo "Delete any existing ext* partitions and show results"
parted /dev/block/mmcblk1 rm 4 > /dev/null 2>&1
parted /dev/block/mmcblk1 rm 3 > /dev/null 2>&1
parted /dev/block/mmcblk1 rm 2 > /dev/null 2>&1
parted /dev/block/mmcblk1 print
echo
echo "Press ENTER to continue..." ; read
echo
echo "Resize START/STOP values MUST be expressed in MB"
echo "Downsize FAT32 and generate new ext2 partitions"
echo "Resize START/STOP values MUST be expressed in MB!"
echo "This example shows TYPICAL repartitioning of 16GB card..."
parted /dev/block/mmcblk1 resize 1 4.194 10700
parted /dev/block/mmcblk1 mkpartfs primary ext2 10.7GB 11.1GB
parted /dev/block/mmcblk1 mkpartfs primary ext2 11.1GB 11.8GB
parted /dev/block/mmcblk1 mkpartfs primary ext2 11.8GB 13.9GB
echo
echo "Upgrade from ext2 to ext3"
tune2fs -j /dev/block/mmcblk1p2
tune2fs -j /dev/block/mmcblk1p3
tune2fs -j /dev/block/mmcblk1p4
echo
echo "Review changes"
parted /dev/block/mmcblk1 print
echo
echo "Press ENTER to continue..." ; read
echo
echo "Final review. Mount SD card ROM filesystems"
mount /dev/block/mmcblk1p2 /system > /dev/null 2>&1
mount /dev/block/mmcblk1p3 /cache > /dev/null 2>&1
mount /dev/block/mmcblk1p4 /data > /dev/null 2>&1
echo
echo "Show used and available space (in MB) on all mounted filesystems"
df -m
echo
echo "Unmount SD card ROM filesystems"
umount /system
umount /cache
umount /data
echo
echo "Remount emmc ROM /cache (CWM mounts this by default)"
mount /cache > /dev/null 2>&1
echo
echo "Done. Can now (if necessary) wipe /cache and /data for primary ROM and flash dual boot zip"
echo
And now ... here are unedited results of a successful batch run made on 11 Jun 2012 at 1630 PDST
Code:
~ # sh /tmp/part-sdc.sh
Android batch script to create ext partitions for SD card-based ROM
First unmount all filesystems of primary (emmc) ROM
Mount external (sdcard) and internal (emmc) memory
Create sdcard-backup directory on emmc with current date and time
Recommend delete any unnecessary backups of sdcard at this point
Backup directory: /emmc/sdcard-backup-11-Jun-2012-233034
Press ENTER to continue...
Backing up contents of sdcard FAT32 to emmc
Done...
drwxrwxrwx 16 root root 8192 Jun 11 23:36 /emmc/sdcard-backup-11-Jun-2012-233034
Unmount internal and external memory
Show existing partition map of SD card
Model: SD SU16G (sd/mmc)
Disk /dev/block/mmcblk1: 15.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 4194kB 10.7GB 10.7GB primary fat32 lba
2 10.7GB 11.1GB 395MB primary ext2
3 11.1GB 11.8GB 707MB primary ext2
4 11.8GB 13.9GB 2097MB primary ext2
Press ENTER to continue...
Delete any existing ext* partitions and show results
Model: SD SU16G (sd/mmc)
Disk /dev/block/mmcblk1: 15.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 4194kB 10.7GB 10.7GB primary fat32 lba
Press ENTER to continue...
Resize START/STOP values MUST be expressed in MB
Downsize FAT32 and generate new ext2 partitions
Resize START/STOP values MUST be expressed in MB!
This example shows TYPICAL repartitioning of 16GB card...
Information: You may need to update /etc/fstab.
Information: You may need to update /etc/fstab.
Information: You may need to update /etc/fstab.
Information: You may need to update /etc/fstab.
Upgrade from ext2 to ext3
tune2fs 1.41.6 (30-May-2009)
Creating journal inode: done
This filesystem will be automatically checked every 30 mounts or
0 days, whichever comes first. Use tune2fs -c or -i to override.
tune2fs 1.41.6 (30-May-2009)
Creating journal inode: done
This filesystem will be automatically checked every 30 mounts or
0 days, whichever comes first. Use tune2fs -c or -i to override.
tune2fs 1.41.6 (30-May-2009)
Creating journal inode: done
This filesystem will be automatically checked every 30 mounts or
0 days, whichever comes first. Use tune2fs -c or -i to override.
Review changes
Model: SD SU16G (sd/mmc)
Disk /dev/block/mmcblk1: 15.9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 4194kB 10.7GB 10.7GB primary fat32 lba
2 10.7GB 11.1GB 395MB primary ext3
3 11.1GB 11.8GB 707MB primary ext3
4 11.8GB 13.9GB 2097MB primary ext3
Press ENTER to continue...
Final review. Mount SD card ROM filesystems
Show used and available space (in MB) on all mounted filesystems
Filesystem 1M-blocks Used Available Use% Mounted on
tmpfs 408 0 408 0% /dev
/dev/block/mmcblk1p2 353 8 326 2% /system
/dev/block/mmcblk1p3 632 16 582 3% /cache
/dev/block/mmcblk1p4 1874 32 1742 2% /data
Unmount SD card ROM filesystems
Remount emmc ROM /cache (CWM mounts this by default)
Done. Can now (if necessary) wipe /cache and /data for primary ROM and flash dual boot zip
~ #
All you brave testers out there, please let me know if you see anything amiss. Thanks!
Disclaimer
Standard disclaimers apply. In short, I am not responsible for any harm you or your phone may incur by using any or all of this material.
Enjoy.
References
http://androidos.in/2009/11/manually-partition-sd-card-for-android/
http://www.gnu.org/software/parted/manual/html_chapter/parted_2.html
http://linux.die.net/man/8/tune2fs
Successfully Installed Dual Boot After Running Batch SD Card Partitioner
Shortly after running Android Batch SD Card Partitioner, I successfully flashed Dual Boot Zip v1.4: http://forum.xda-developers.com/showthread.php?t=1651356 featuing AOKP+Aroma_37a (emmc) and CM7 RC3 (sdcard)
don't know if that is the correct place
Hello,
Thanks for your patch, I am facing an issue with my Atrix (Orange UK), I have scrued up my internal storage, here I have posted once a Question but got no reply from nobody (POST).
Am I right to ask here, or is it wrong place too
Thanks and Thumbs up for the nice work
Ammar
Arwany said:
Hello,
Thanks for your patch, I am facing an issue with my Atrix (Orange UK), I have scrued up my internal storage, here I have posted once a Question but got no reply from nobody (POST).
Am I right to ask here, or is it wrong place too
Thanks and Thumbs up for the nice work
Ammar
Click to expand...
Click to collapse
Hello Ammar,
Please see my answer here: http://forum.xda-developers.com/showthread.php?p=27311205#post27311205
I hope this helps
sendust7
Hi everyone,
I'm trying to figure out if I can get my nook to be the ultimate upgrade on a 160gb Ipod, that is to get it to work with an external battery powering a 200gb or higher 2.5" external hard drive.
and then using audio through USB.
Do you know if that is theorically possible? (power wouldnt be an issue with external power but maybe the nook just can't recognize any external storage beyond a certain capacity)
the info is probably out there somewhere but I'm sad to say I don't know enough to understand most of what I find on the board (yet)
please tell me it's possible !
cheers
I don't see why it wouldn't work.
USB mass storage should all be the same.
You'll need to mount it.
I'll have to borrow a 2.5" disk in a USB enclosure and try it today.
Hi Renate,
Great! thanks for your reply
and wow! thanks for looking into this!
I'll have to wait till next month to give it a try, the idea is to build some sort of portable dock (using the slots meant for the nook cases) with battery/USB hub/hard drive and jack audio output so I can use the nook+dock as a unit, just the dock as music library on my laptop or just the nook for reading.
I've been dreaming of an e-ink computer for some time, the three main things I needed were a keyboard, and sound output (both of which you already took care of, and mass storage) if you tell me it works I'll post a guide on how to get that done.
I have a 2.5" disk out of an old laptop in a USB.
It has 3 partitions on it.
Yes, it works fine on FAT, FAT32 & NTFS
If you use this a lot, you might want to put a mkdir for the mount point in init.rc before the root goes ro.
This is how you have to mount it if you have to do all the steps.
Code:
mount -o rw,remount rootfs /
mkdir /usb
mount -t vfat /dev/block/uba1 /usb
Change vfat to ntfs if applicable.
Thanks a lot Renate,
I don't quite understand everything yet, but I'll get there (there's plenty to read on this board) don't bother explaining, if you start you'll never see the end of it.
Now I suppose the big question is : can the nook touch take a 300gb itunes library? I'll get back to you on that
cheers
I tried this script
mount -o rw,remount rootfs /
mkdir /usbdisk
mount -o rw,iocharset=utf8 -t vfat /dev/block/uba1 /usbdisk
Click to expand...
Click to collapse
for fat32 hard disks - 500 and 1000gb and work perfect
but for ntfs
mount -o rw,remount rootfs /
mkdir /usbdisk
mount -o rw,iocharset=utf8 -t ntfs /dev/block/uba1 /usbdisk
Click to expand...
Click to collapse
script works without errors but usbdisk folder remained empty.
where I do mistake? please advice.
Try without any of the options.
It may be that with the default driver NTFS can only be mounted read-only.
Code:
mount -t ntfs /dev/block/uba1 /usbdisk
Renate NST said:
...
If you use this a lot, you might want to put a mkdir for the mount point in init.rc before the root goes ro.
This is how you have to mount it if you have to do all the steps.
Code:
mount -o rw,remount rootfs /
mkdir /usb
mount -t vfat /dev/block/uba1 /usb
Change vfat to ntfs if applicable.
Click to expand...
Click to collapse
Does this just work on top of a plain rooted 1.1.2, or do I also need some additional apk?
It should work on anything.
Renate NST said:
It should work on anything.
Click to expand...
Click to collapse
What I meant to ask was if the above process (to mount an external drive on the NST) was contingent on the prerequisite "to first get my NST to support USB Host Mode"?
Yes, to get a disk drive working you need to somehow get the Nook to be a USB host.
The straight forward way is to install verygreen & mali100's uImage and then use my UsbMode.apk to switch it into host mode.
This is all detailed in another thread: http://forum.xda-developers.com/showthread.php?t=1457971
You'll need a powered hub if you want to run a disk drive.
If you know what you are doing and you use a back-powering hub you can get the Nook to kick into USB host mode without any modifications or apps.
Oh, yeah, of course an OTG adapter is required for any of this.
Thanks for reply/pointer.
I found the usb-host-mt-pack_0.1.zip.
I assume I should replace the NullKbd-1.1.apk and UsbMode-1.2.apk in the zip file with their corresponding newer versions NullKbd-1.2.apk and UsbMode-1.6.apk?
Renate NST said:
Try without any of the options.
It may be that with the default driver NTFS can only be mounted read-only.
Code:
mount -t ntfs /dev/block/uba1 /usbdisk
Click to expand...
Click to collapse
Renate thanks for advice. I tried without any of the options, but without luck. usbdisk folder still remaining blank. Please any more suggestions.
You probably have multiple partitions on the drive.
Try:
Code:
busybox fdisk -l /dev/block/uba1
Then you'll have to do something like:
Code:
mount -t ntfs /dev/block/uba1p1 /usb
Renate NST said:
Try without any of the options.
It may be that with the default driver NTFS can only be mounted read-only.
Code:
mount -t ntfs /dev/block/uba1 /usbdisk
Click to expand...
Click to collapse
Renate NST said:
You probably have multiple partitions on the drive.
Try:
Code:
busybox fdisk -l /dev/block/uba1
Then you'll have to do something like:
Code:
mount -t ntfs /dev/block/uba1p1 /usb
Click to expand...
Click to collapse
I get this print with error:
***********************
# busybox fdisk -l /dev/block/uba1
busybox fdisk -l /dev/block/uba1
Disk /dev/block/uba1: 500.1 GB, 500104691712 bytes
255 heads, 63 sectors/track, 60800 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/block/uba1p1 ? 120528 234814 918008208 4f Unknown
Partition 1 does not end on cylinder boundary
/dev/block/uba1p2 ? 119381 153271 272218546+ 73 Unknown
Partition 2 does not end on cylinder boundary
/dev/block/uba1p3 ? 113202 147075 272087568 2b Unknown
Partition 3 does not end on cylinder boundary
/dev/block/uba1p4 ? 177064 177067 27487 61 Unknown
Partition 4 does not end on cylinder boundary
Partition table entries are not in disk order
# mount -t ntfs /dev/block/uba1p1 /usbdisk
mount -t ntfs /dev/block/uba1p1 /usbdisk
mount: No such file or directory
**********************
p.s. In Windows this disk have one ntfs partition only.
Hmm, I tried fdisk on an old 256M flash drive that I had and got similar gobble-dee-gook.
It mounted correctly though without a partition number.
Renate NST said:
Hmm, I tried fdisk on an old 256M flash drive that I had and got similar gobble-dee-gook.
It mounted correctly though without a partition number.
Click to expand...
Click to collapse
Now tried sd 256mb ntfs via card reader. In fdisk - same gibberish output. mount work w/o errors but usbdisk dir still empty (on sd were few files).
Renate NST said:
...
If you use this a lot, you might want to put a mkdir for the mount point in init.rc before the root goes ro.
This is how you have to mount it if you have to do all the steps.
Code:
mount -o rw,remount rootfs /
mkdir /usb
mount -t vfat /dev/block/uba1 /usb
Change vfat to ntfs if applicable.
Click to expand...
Click to collapse
Is there another way to auto-create a persistent mount point without fiddling with unpacking/repacking uRamdisk to apply the snippet to its init.rc copy?
digixmax said:
Is there another way to auto-create a persistent mount point ...
Click to expand...
Click to collapse
Certainly. Just do it in init.rc before the root is mounted read-only.
Code:
[b]mkdir /usb 0777 system system[/b]
mount rootfs rootfs / ro remount
(init.rc is in uRamdisk in the boot partition.
use bootutil.exe to extract and replace the init.rc)
[How-To] [Link2SD] Solve "mount: No such file or directory" error on stock ROM
I rooted my Galaxy S3 Mini (GT-i8190) (following seedrom193's tutorial), but I'm still on the stock Android ROM.
I was trying to use Link2SD with a correctly partitioned SD card (10GB primary FAT32 + 4GB primary ext2), but got the following error, which showed every time I tried to recreate mount scripts:
"Mount script cannot be created. mount: No such file or directory"
Also, on every reboot, I would get a "Mount warning" from Link2SD, requiring me to "quick reboot" my phone. After that (second) reboot, Link2SD would work correctly, but shortcuts on my home screen to linked apps were missing.
After much googling I figured that maybe the problem was caused by my (stock) ROM not having init.d support. So I used this method to add init.d:
http://forum.xda-developers.com/showthread.php?t=1933849
Init.d worked properly, but I still got the same error in Link2SD. Then, I used Root Explorer to look at my file system (any other root browser would work too I guess) and found the cause. Here's the contents of /data/data/com.buak.Link2SD/files/init-link2sd.sh, which I *guess* is a copy of the script Link2SD is trying to get to run at boot:
Code:
set +e
echo "$(date) mounting..." > $LOG
sleep 4
mount -t ext2 -o rw [COLOR="Red"][B]/dev/block/vold/179:98[/B][/COLOR] /data/sdext2 1>>$LOG 2>>$LOG
mount -t ext2 -o rw /dev/block/mmcblk1p2 /data/sdext2 1>>$LOG 2>>$LOG
mount >> $LOG
echo "$(date) mount finished" >> $LOG
Apparently, the device node /dev/block/vold/179:98 does not exist, because Android's vold mounting system doesn't automatically mount the second partition of the SD card. This causes the "mount: No such file or directory" error on the first mount command. However, the second mount command (from /dev/block/mmcblk1p2) should work. For some reason, this error seems to keep Link2SD from installing the boot script.
So, I decided to create an init.d script of my own. Using Root Explorer, I created and edited a file named "11link2sd" in /system/etc/init.d/ and inserted the following text:
Code:
#!/system/bin/sh
sleep 4
mount -t ext2 -o rw /dev/block/mmcblk1p2 /data/sdext2
This solved the problem for me, and I can now use Link2SD without needing the extra quick reboot. I figured I'd share my solution in case anybody else had the same problem. I do suggest that anybody who tries to do the same thing first check the init-link2sd.sh file for that /dev/block/mmcblk1p2 bit, to make sure it''s the same.
Link2SD 2nd Partition getting full
Hi,
I saw that you are using Link2SD and seems to have a good understanding of the subject. I am new to using Android!
Maybe you could help. I think I properly installed Link2SD and that it is working correctly (I don't know of any way to check that).
When I go into the menu and ask for storage, I get the following: it is in french, but "libres" means "free".
Interne (85% Libres)
/data
Total: 4,37 Go Utilisés: 658 Mo Libres: 3,73 Go
Carte SD (85% Libres)
/storage/emulated/legacy
Total: 4,37 Go Utilisés: 658 Mo Libres: 3,73 Go
Externe SD (98% Libres)
/storage/external_SD
Total: 27,42 Go Utilisés: 516 Mo Libres: 26,92 Go
Carte SD 2nde Partition (9% Libres)
/data/sdext2
Total: 2,34 Go Utilisés: 2,12 Go Libres: 230 Mo
Système (23% Libres)
/system
Total: 1,67 Go Utilisés: 1,28 Go Libres: 407 Mo
Cache (98% Libres)
/cache
Total: 787 Mo Utilisés: 12,58 Mo Libres: 774 Mo
As you can see the 2nd partition is almost full.
Is it possible to remove the SD card, resize the 2nd partition and put it back in the phone without loosing everything?
I am not sure if that can be done with link2sd installed.
Thanks for your help.
Jacques
Hello Jacques,
Your Link2SD seems to be working just fine. Here's how I can tell:
jacques_xda said:
Carte SD (85% Libres)
/storage/emulated/legacy
Total: 4,37 Go Utilisés: 658 Mo Libres: 3,73 Go
Click to expand...
Click to collapse
This is your internal memory, and plenty of it is now empty, probably thanks to Link2SD.
jacques_xda said:
Carte SD 2nde Partition (9% Libres)
/data/sdext2
Total: 2,34 Go Utilisés: 2,12 Go Libres: 230 Mo
Click to expand...
Click to collapse
This is the second partition which you created and which is indeed almost full. Unless you intentionally put other files there (which I assume you didn't, or you'd have known about it ), this partition was filled by Link2SD, with over 2 Gb of data. So Link2SD is working as it should, freeing your internal memory by moving stuff to that second partition.
Now, as for your second question:
jacques_xda said:
Is it possible to remove the SD card, resize the 2nd partition and put it back in the phone without loosing everything?
I am not sure if that can be done with link2sd installed.
Click to expand...
Click to collapse
Yes, but I recommend taking a backup of your SD card first, just to be safe. If your power fails or your card reader is disconnected during re-partitioning, you might lose data.
Assuming you're using Windows, you will need to make sure that MiniTool Partition Wizard is installed first (link can be found here). Also, you will need to have a way to back up the second SD card partition (which I assume contains an ext file system) over to Windows. You can copy over the files using Ext2Fsd, DiskInternals Linux Reader or Ext2explore, or find some program for creating an image of an ext partition in windows.
Then, take these steps:
1. Turn off your phone (and do not turn it on again!)
2. Take your SD card out of your phone and connect it to your computer using a card reader
3. To make a backup, copy everything on both partitions of your SD card to your computer
4. Use Partition Wizard to shrink the first partition on your SD card, and use the resulting unallocated space to expand the second partition (don't forget to press the "Apply" button!)
5. Safe-remove your SD card and put it back in your phone
6. Turn your phone on again
This should enlarge your extra partition without causing any problems with Link2SD. If you really want to be safe, you could use Link2SD to unlink all of your apps before step 1, and re-link them after step 6. Based on the information you provided, you should have just enough internal memory to do so.
Bonne chance!
link2SD resize ext partition
Warre101 said:
Hello Jacques,
Your Link2SD seems to be working just fine. Here's how I can tell:
This is your internal memory, and plenty of it is now empty, probably thanks to Link2SD.
This is the second partition which you created and which is indeed almost full. Unless you intentionally put other files there (which I assume you didn't, or you'd have known about it ), this partition was filled by Link2SD, with over 2 Gb of data. So Link2SD is working as it should, freeing your internal memory by moving stuff to that second partition.
Now, as for your second question:
Yes, but I recommend taking a backup of your SD card first, just to be safe. If your power fails or your card reader is disconnected during re-partitioning, you might lose data.
Assuming you're using Windows, you will need to make sure that MiniTool Partition Wizard is installed first (link can be found here). Also, you will need to have a way to back up the second SD card partition (which I assume contains an ext file system) over to Windows. You can copy over the files using Ext2Fsd, DiskInternals Linux Reader or Ext2explore, or find some program for creating an image of an ext partition in windows.
Then, take these steps:
1. Turn off your phone (and do not turn it on again!)
2. Take your SD card out of your phone and connect it to your computer using a card reader
3. To make a backup, copy everything on both partitions of your SD card to your computer
4. Use Partition Wizard to shrink the first partition on your SD card, and use the resulting unallocated space to expand the second partition (don't forget to press the "Apply" button!)
5. Safe-remove your SD card and put it back in your phone
6. Turn your phone on again
This should enlarge your extra partition without causing any problems with Link2SD. If you really want to be safe, you could use Link2SD to unlink all of your apps before step 1, and re-link them after step 6. Based on the information you provided, you should have just enough internal memory to do so.
Bonne chance!
Click to expand...
Click to collapse
Hi,
Thanks for your response. I have a question: do I need to unmount the SD card before closing the phone and pulling it out?
If the answer is yes, when I put it back and open the phone, will it mount automatically?
Jacques
Hello Jacques,
I think it will re-mount automatically, but don't have any similar experience with my own phone. With my own device, the micro-SD expansion slot is underneath the battery, so I have no choice but to turn off the phone before removing the SD. By consequence, the OS offers no option to unmount the SD card (that I know of at least).
However, once you turn your phone on again, your SD card should be mounted automatically. Have you rebooted (or turned your phone off and then on again) since using Link2SD? If yes, then it's probably fine. I would recommend that you don't unmount your SD card while the phone is running and apps are still linked; your linked apps would probably stop working.
Warre101 said:
Hello Jacques,
I think it will re-mount automatically, but don't have any similar experience with my own phone. With my own device, the micro-SD expansion slot is underneath the battery, so I have no choice but to turn off the phone before removing the SD. By consequence, the OS offers no option to unmount the SD card (that I know of at least).
However, once you turn your phone on again, your SD card should be mounted automatically. Have you rebooted (or turned your phone off and then on again) since using Link2SD? If yes, then it's probably fine. I would recommend that you don't unmount your SD card while the phone is running and apps are still linked; your linked apps would probably stop working.
Click to expand...
Click to collapse
Hi,
I closed the phone and took off the SD card without any problem.
I made an image of the content with ext2explore.
I then use MiniTool Partiton to try to extend the ext4 partition. The problem is there: MiniTool Partition cannot handle the job!
On the SD card, I have one FAT32 Partition and one ext4 linux patition. MiniTool can resize the FAT32 partition, leaving an unallocated space between the FAT32 and the ext4 partition, but it cannot resize the ext4 partition to take advantage of the unallocated space! I can move the ext4 partition closer to the FAT32, leaving the unallocated space at the end; that is all I can do with MiniTool.
Of course I could delete the ext4 partition and create a new one, using all the unallocated space. But then , will I be able to load the ext4 image I created before in that new partition, since it is not the same size? When ext2explore create an image, does it make a clone of the partition (content, size, etc...) there is no explanation or help on that product!
I will try with Gparted to see what it does and try to simply copy the content of the ext4 partition instead of creating an image.
Thank again for helping.
Jacques
Hello Jacques,
That's odd. I did almost exactly the same thing you described here (except for using ext2 rather than ext4) and was able to resize my ext2 partition using Partition Wizard. I first shrunk the FAT32 partition, then moved and resized the ext2 to use all the unallocated space. Have you tried first pressing apply after you shrink the fat32 and move the ext4? In any case, GParted should also work.
I can't help you with ext2explore as I have no direct experience with that program. You might be able to get some help in other parts of this forum.
If you want to try deleting that ext4 partition and creating a new one, you may be able to do this by first unlinking your apps back to your internal memory in Link2SD (as I suggested in an earlier post), re-partitioning and then re-linking with Link2SD.
Warre101 said:
Hello Jacques,
That's odd. I did almost exactly the same thing you described here (except for using ext2 rather than ext4) and was able to resize my ext2 partition using Partition Wizard. I first shrunk the FAT32 partition, then moved and resized the ext2 to use all the unallocated space. Have you tried first pressing apply after you shrink the fat32 and move the ext4? In any case, GParted should also work.
I can't help you with ext2explore as I have no direct experience with that program. You might be able to get some help in other parts of this forum.
If you want to try deleting that ext4 partition and creating a new one, you may be able to do this by first unlinking your apps back to your internal memory in Link2SD (as I suggested in an earlier post), re-partitioning and then re-linking with Link2SD.
Click to expand...
Click to collapse
Hi,
It is realy odd! I created that ext partition with the same tool! Now I can move it, but not resize it....I will try with Gparted with my old computer running Linux (Ubuntu)...later on, expecting it will work fine.
Thanks again,
Jacques
I rooted my moto e 2nd gen 4g phone and made partition on my 16gb sd card using ext4 FAT32. After partioning sd card then i inserted it in my phone to use link2sd but when i try to recreate mount script an error pop up every time showing " mount script cannot be created. No such file or directory" please help me. If any solution you know.
ankit gaur said:
I rooted my moto e 2nd gen 4g phone and made partition on my 16gb sd card using ext4 FAT32. After partioning sd card then i inserted it in my phone to use link2sd but when i try to recreate mount script an error pop up every time showing " mount script cannot be created. No such file or directory" please help me. If any solution you know.
Click to expand...
Click to collapse
Hi,
Try to mount with ext2 instead of ext4. I had the same problem trying to mount with ext2; I then try with ext4 and it worked|
Regards,
Jacques
ankit gaur said:
I rooted my moto e 2nd gen 4g phone and made partition on my 16gb sd card using ext4 FAT32. After partioning sd card then i inserted it in my phone to use link2sd but when i try to recreate mount script an error pop up every time showing " mount script cannot be created. No such file or directory" please help me. If any solution you know.
Click to expand...
Click to collapse
jacques_xda said:
Hi,
Try to mount with ext2 instead of ext4. I had the same problem trying to mount with ext2; I then try with ext4 and it worked|
Regards,
Jacques
Click to expand...
Click to collapse
That looks exactly like the problem I had. I suggest you first try Jacques' idea (changing ext2 into ext4 or vice versa) and if that doesn't work, use the method I put in the very first post. Let us know if you have any problems with that...
Been trying to get link2sd to work for awhile now
My init-link2sd.sh file looks a bit different though. For me, it looks like:
set +e
echo "$(date) mounting..." >$LOG
sleep4
mount-t vfat-o
rw,uid=1000,gid=1000,unmask=133,dmask=0002 /
dev/block/vold/179:34/data/sdext2 1>>$LOG 2>>
$LOG
mount -t vfat-o
rw,uid=1000,gid=1000,unmask=133,dmask=0002 /
dev/block/mmcblk1p2 /data/ sdext2 1>>$LOG 2>>
$LOG
Mount >> $LOG
echo "$(date) mount finished" >> $LOG
chmod 773 /data/dalvik-cache
Whenever I try to use Link2SD, it gies me the "mount: No such file or directory error," would you be able to help me?
A couple of things stand out to me; I'll go through the script you posted step by step:
FinalFreeze said:
set +e
echo "$(date) mounting..." >$LOG
sleep4
Click to expand...
Click to collapse
A space is missing between "sleep" and "4". Was it lost in copy-pasting?
FinalFreeze said:
mount-t vfat-o
rw,uid=1000,gid=1000,unmask=133,dmask=0002 /
dev/block/vold/179:34/data/sdext2 1>>$LOG 2>>
$LOG
Click to expand...
Click to collapse
I expected this to be on a single line like this:
Code:
mount-t [B]vfat[/B]-o rw,uid=1000,gid=1000,unmask=133,dmask=0002 /dev/block/vold/179:34/data/sdext2 1>>$LOG 2>>$LOG
Is it like that in your file?
Anyway, I notice the second argument in the mount command is "vfat". If you use the "recreate mount scripts" in Link2SD, which option do you use for the file system? Does it correspond to the way your SD card is partitioned? I used EXT2.
FinalFreeze said:
mount -t vfat-o
rw,uid=1000,gid=1000,unmask=133,dmask=0002 /
dev/block/mmcblk1p2 /data/ sdext2 1>>$LOG 2>>
$LOG
Click to expand...
Click to collapse
This is the information you would need to follow the tutorial that I posted. You could try putting the following in an init.d script:
Code:
#!/system/bin/sh
sleep 4
mount -t [B]ext2[/B] -o rw,uid=1000,gid=1000,unmask=133,dmask=0002 /dev/block/mmcblk1p2 /data/sdext2
Note that I'm assuming here that your SD card uses an EXT2 partition, as shown in bold.
FinalFreeze said:
Mount >> $LOG
echo "$(date) mount finished" >> $LOG
chmod 773 /data/dalvik-cache
Click to expand...
Click to collapse
The last line (starting with chmod) is something I haven't seen before. If you create your own init.d script, you may need to add the same line.
Warre101 said:
I rooted my Galaxy S3 Mini (GT-i8190) (following seedrom193's tutorial), but I'm still on the stock Android ROM.
I was trying to use Link2SD with a correctly partitioned SD card (10GB primary FAT32 + 4GB primary ext2), but got the following error, which showed every time I tried to recreate mount scripts:
"Mount script cannot be created. mount: No such file or directory"
Also, on every reboot, I would get a "Mount warning" from Link2SD, requiring me to "quick reboot" my phone. After that (second) reboot, Link2SD would work correctly, but shortcuts on my home screen to linked apps were missing.
After much googling I figured that maybe the problem was caused by my (stock) ROM not having init.d support. So I used this method to add init.d:
http://forum.xda-developers.com/showthread.php?t=1933849
Init.d worked properly, but I still got the same error in Link2SD. Then, I used Root Explorer to look at my file system (any other root browser would work too I guess) and found the cause. Here's the contents of /data/data/com.buak.Link2SD/files/init-link2sd.sh, which I *guess* is a copy of the script Link2SD is trying to get to run at boot:
Code:
set +e
echo "$(date) mounting..." > $LOG
sleep 4
mount -t ext2 -o rw [COLOR="Red"][B]/dev/block/vold/179:98[/B][/COLOR] /data/sdext2 1>>$LOG 2>>$LOG
mount -t ext2 -o rw /dev/block/mmcblk1p2 /data/sdext2 1>>$LOG 2>>$LOG
mount >> $LOG
echo "$(date) mount finished" >> $LOG
Apparently, the device node /dev/block/vold/179:98 does not exist, because Android's vold mounting system doesn't automatically mount the second partition of the SD card. This causes the "mount: No such file or directory" error on the first mount command. However, the second mount command (from /dev/block/mmcblk1p2) should work. For some reason, this error seems to keep Link2SD from installing the boot script.
So, I decided to create an init.d script of my own. Using Root Explorer, I created and edited a file named "11link2sd" in /system/etc/init.d/ and inserted the following text:
Code:
#!/system/bin/sh
sleep 4
mount -t ext2 -o rw /dev/block/mmcblk1p2 /data/sdext2
This solved the problem for me, and I can now use Link2SD without needing the extra quick reboot. I figured I'd share my solution in case anybody else had the same problem. I do suggest that anybody who tries to do the same thing first check the init-link2sd.sh file for that /dev/block/mmcblk1p2 bit, to make sure it''s the same.
Click to expand...
Click to collapse
Mount script error
Mount Script cannot be created
Moun Invalid arguement
I've been at this every day for a week i inserted the txt file with ur script rebooted and nothing same old bs script error. PLEASE tell me som1 knows A REAL WORKING FIX.
I've tried fat32/ext2 fat32/ext4 fat32/fat32 The mount DOES NOT EXIST. i have int.d support How do I create the mount? Not just a file directory?
Hi, I have tried the script, but at restart seems not to run because no mount is done, so no partition.
I use CM13. Any ideas? Thank you.
mikeroku said:
Hi, I have tried the script, but at restart seems not to run because no mount is done, so no partition.
I use CM13. Any ideas? Thank you.
Click to expand...
Click to collapse
That's difficult to tell based on the information you provided. Can you look for this file:
Code:
/data/data/com.buak.Link2SD/files/init-link2sd.sh
and post the contents please?
Hey...my problem is mounting the second partition...I've been literally trying since yesterday....no luck using the mini tool to format any of the ext's and lost a lot of time trying different fixes....typing in "cannot mount 2nd partition" on google leaves me with so many results that don't have actual fixes...any help?
Stabbey said:
Mount script error
Mount Script cannot be created
Moun Invalid arguement
Click to expand...
Click to collapse
psantos1091 said:
Hey...my problem is mounting the second partition...I've been literally trying since yesterday....no luck using the mini tool to format any of the ext's and lost a lot of time trying different fixes....typing in "cannot mount 2nd partition" on google leaves me with so many results that don't have actual fixes...any help?
Click to expand...
Click to collapse
Hey guys,
Some time ago my phone started having the exact same problem that Stabbey describes: mounting the second partition no longer works, manually mounting the second partition results in the "Invalid argument" error when running this command in a terminal emulator:
Code:
mount -t ext2 -o rw /dev/block/mmcblk1p2 /data/sdext2
This started happening after I installed an update for busybox and some other apps and then rebooted. Something might have changed in the mount applet of busybox with that update, and that might have broken the mount command. Right now I don't know for sure if this is the case; I haven't figured out how to roll back the busybox update yet. In any case, if I can't manually mount, it certainly won't work on startup with init.d, so I'm stuck for now.
I'm sorry I can't give any of you a solution right now. If anyone else wants to take a crack at it, my problems started after installing busybox 1.25.1, so a version *before* that might work.
大神你好:
这是个非常厉害的好办法!您帮我解决了这个疑难杂症!让我手机重新获得新生,而且问题分析得非常准确。
致敬!
机油
Hi Warre101
thank you so much for your solution!
However, I still have a small issue:
When I created a file in the init.d folder, I ended with a .txt file while the others in that folder have no extension. I wrote the code you mentioned. Then with Universal init.d app, I executed the file, and it worked -> the partition get mounted. But, when I reboot my phone, it is not done automatically: I have the error message on Link2sd, then I have to come back to Universal init.d, execute the script, and come back to Link2sd to see it is mounted. Do you have an idea to have it done automatically?
the init-link2sd.sh file is like this (when the partition in mounted) :
Code:
set +e
echo "$(date)mounting..." > $LOG
sleep 2
mount -t ext4 -o rw /dev/block/vold/public:179_130 /data/sdext2 1>>$LOG 2>>$LOG
mount -t ext4 -o rw /dev/block/mmcblk1p2 /data/sdext2 1>>$LOG 2>>$LOG
mount >> $LOG
echo "$(date) mount finished" >> $LOG
chmod 773 /data/dalvik-cache
The partition I created using minitool is in ext4
The 11link2sd.txt file is:
Code:
#!/system/bin/sh
sleep 2
mount -t ext4 -o rw /dev/block/mmcblk1p2 /data/sdext2
Then in /data I got a new file link2sd-boot-receiver-mount.log:
Code:
Tue Oct 24 09:47:50 CEST 2017 mounting...
mount: No such file or directory
rootfs / rootfs ro,seclabel 0 0
tmpfs /dev tmpfs rw,seclabel,nosuid,relatime,mode=755 0 0
devpts /dev/pts devpts rw,seclabel,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,seclabel,relatime 0 0
selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,seclabel,relatime 0 0
none /acct cgroup rw,relatime,cpuacct 0 0
none /sys/fs/cgroup tmpfs rw,seclabel,relatime,mode=750,gid=1000 0 0
tmpfs /mnt tmpfs rw,seclabel,relatime,mode=755,gid=1000 0 0
none /dev/cpuctl cgroup rw,relatime,cpu 0 0
pstore /sys/fs/pstore pstore rw,seclabel,relatime 0 0
/dev/block/platform/mtk-msdc.0/11120000.msdc0/by-name/system /system ext4 ro,seclabel,relatime,data=ordered 0 0
/dev/block/platform/mtk-msdc.0/11120000.msdc0/by-name/userdata /data ext4 rw,seclabel,nosuid,nodev,noatime,discard,noauto_da_alloc,resuid=10010,data=ordered 0 0
/dev/block/platform/mtk-msdc.0/11120000.msdc0/by-name/cache /cache ext4 rw,seclabel,nosuid,nodev,noatime,discard,noauto_da_alloc,data=ordered 0 0
/dev/block/platform/mtk-msdc.0/11120000.msdc0/by-name/protect1 /protect_f ext4 rw,seclabel,nosuid,nodev,noatime,nodelalloc,noauto_da_alloc,commit=1,data=ordered 0 0
/dev/block/platform/mtk-msdc.0/11120000.msdc0/by-name/protect2 /protect_s ext4 rw,seclabel,nosuid,nodev,noatime,nodelalloc,noauto_da_alloc,commit=1,data=ordered 0 0
/dev/block/platform/mtk-msdc.0/11120000.msdc0/by-name/nvdata /nvdata ext4 rw,seclabel,nosuid,nodev,noatime,discard,noauto_da_alloc,data=ordered 0 0
adb /dev/usb-ffs/adb functionfs rw,relatime 0 0
tmpfs /storage tmpfs rw,seclabel,relatime,mode=755,gid=1000 0 0
/dev/block/loop1 /su ext4 rw,seclabel,noatime,data=ordered 0 0
/dev/fuse /mnt/runtime/default/emulated fuse rw,nosuid,nodev,noexec,noatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
/dev/fuse /storage/emulated fuse rw,nosuid,nodev,noexec,noatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
/dev/fuse /mnt/runtime/read/emulated fuse rw,nosuid,nodev,noexec,noatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
/dev/fuse /mnt/runtime/write/emulated fuse rw,nosuid,nodev,noexec,noatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
/dev/block/vold/public:179,129 /mnt/media_rw/319C-76D0 vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1023,gid=1023,fmask=0007,dmask=0007,allow_utime=0020,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/fuse /mnt/runtime/default/319C-76D0 fuse rw,nosuid,nodev,noexec,noatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
/dev/fuse /storage/319C-76D0 fuse rw,nosuid,nodev,noexec,noatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
/dev/fuse /mnt/runtime/read/319C-76D0 fuse rw,nosuid,nodev,noexec,noatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
/dev/fuse /mnt/runtime/write/319C-76D0 fuse rw,nosuid,nodev,noexec,noatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0
/dev/block/mmcblk1p2 /data/sdext2 ext4 rw,seclabel,relatime,data=ordered 0 0
Tue Oct 24 09:47:50 CEST 2017 mount finished
I used MiXplorer that I found on thi forum as a file explorer and to create the script file.
I am on Android 6.0, stock ROM but not original (eg when I bought the phone the stock ROM was on Android 5, then I discovered they changed to Android 6 so I downloaded the new stock ROM from the official website and flashed it).
Thank you for your help !
I have a rooted Shield but I can't figure out how to mount the microsd card.
I see that the file system is supported but I don't see where the device is listed.
Usually I would look for mmcblk or something.
[email protected]:/ $ cat /proc/filesystems
ext3
ext2
ext4