[Q] Error in init.d script - Android Q&A, Help & Troubleshooting

Hi,
My today goal is to swap internal memory with SD card on HTC Desire 310, and I almost accomplished that, because at this moment I need to send command trough adb to get this working:
So ADB and
Code:
su
busybox mount -t vfat -o umask=0000 /dev/block/vold/179:97 /mnt/sdcard
so now I need to create init.d script to swap internal memory with SD card at boot, I've tried something like that:
Code:
#!/system/bin/sh
mount -t vfat -o umask=0000 /dev/block/vold/179:97
script location /system/etc/init.d/04swapsd, and this script does nothing even I tried to add 'busybox' before 'mount' - zero changes.
SManager app gives me 'Device or resource busy' error
Can anyone help me with my problem?
Thanks!

meciu99 said:
Hi,
My today goal is to swap internal memory with SD card on HTC Desire 310, and I almost accomplished that, because at this moment I need to send command trough adb to get this working:
So ADB and
Code:
su
busybox mount -t vfat -o umask=0000 /dev/block/vold/179:97 /mnt/sdcard
so now I need to create init.d script to swap internal memory with SD card at boot, I've tried something like that:
Code:
#!/system/bin/sh
mount -t vfat -o umask=0000 /dev/block/vold/179:97
script location /system/etc/init.d/04swapsd, and this script does nothing even I tried to add 'busybox' before 'mount' - zero changes.
SManager app gives me 'Device or resource busy' error
Can anyone help me with my problem?
Thanks!
Click to expand...
Click to collapse
Try this: https://www.youtube.com/watch?v=nWN0tOSPFv4
It should work fine!

in this tutorial I can expand RAM memory, but this is I dont want to do.
I have about 800MB left in internal storage - and I cant install big games like Asphalt 8, and because of that I want to create script to automatically swap internal with external memory.
I've tried already apps like Internal 2 External SD, Link2SD, DirectoryBind, FolderMount.

Related

[Q] SDCard Script

Can someone post the script that mount sdcard at boot?
I created a kernel but it doesn't mount sdcard at boot, it's possibile to create the script in system/etc/init.d that mount sdcard at boot?
Try busybox mount while booted to see if it's possible to mount SD Card with a script. SD card mounts automatically if it's FAT32 and it takes a little vold.fstab configuration for other file systems. You should check franco's or LG's kernel to see how to automount sd card from kernel.
This is taken from CM7, put it in init.d and see.
Turducken said:
This is taken from CM7, put it in init.d and see.
Click to expand...
Click to collapse
Thank you very much but what's that?
# set property with exit code in case an error occurs
setprop cm.e2fsck.errors $e2fsk_exitcode;
if [ "$e2fsk_exitcode" -lt 2 ];
then
# mount and set perms
$BB mount -o noatime,nodiratime,barrier=1 -t ext3 $SD_EXT_PART $SD_EXT_DIRECTORY;
if [ "$?" = 0 ];
then
$BB chown 1000:1000 $SD_EXT_DIRECTORY;
$BB chmod 771 $SD_EXT_DIRECTORY;
log -p i -t mountsd "$SD_EXT_DIRECTORY successfully mounted";
else
log -p e -t mountsd "Unable to mount filesystem for $SD_EXT_DIRECTORY!";
fi
else
log -p e -t mountsd "Unable to repair filesystem, disabling apps2sd";
fi
Click to expand...
Click to collapse
EDIT: Mount This script sdcard?
#!/system/bin/sh
mount -o remount,ro -t yaffs2 /dev/block/mmcblk0
Click to expand...
Click to collapse
RE-EDIT: The CM7 script doesn't works, in the second reboot the sd wasn't mount
The CM7 script mounts a2sd apps (apps2sd script). The second one should be like
Code:
mount -o remount,r[b]w[/b] -t [b]fat32[/b] /dev/block/mmcblk0
. As I already said, it's probably a kernel problem, vold mounts sdcards automatically.
Cricco said:
Thank you very much but what's that?
Click to expand...
Click to collapse
That part of the script mounts an ext partition if one exists.
RE-EDIT: The CM7 script doesn't works, in the second reboot the sd wasn't mount
Click to expand...
Click to collapse
As Ianis G. Vasilev said there are various ways to mount the SD card but I suspect the issue is with the kernel you've compiled. Flash francos, if it mounts then your kernel is bad. Run logcat to see what's going on.
**EDIT**
I didn't see Ianis post before I began mine...
so with
mount -o remount,rw -t fat32 /dev/block/mmcblk0
Click to expand...
Click to collapse
the sd will be mount?
EDIT: I need a script that mount sd without write or read permission, infact if i use root explorer and I go to sdcard sometimes the sdcard folder is blank, so the sd didn't mount
Read permissions are needed to see what's on the sd card. For a read-only mount replace rw with ro:
Code:
mount -o remount,r[b]o[/b] -t fat32 /dev/block/mmcblk0
I would advice you to use dmesg(should be enabled in kernel) to see if your phone detects the card and logcat to see if any errors are preventing your card from mounting.
Now i create script
#!/system/bin/sh
mount -o remount,rw -t fat32 /dev/block/mmcblk0
mount -t vfat -o /dev/block/mmcblk0
Click to expand...
Click to collapse
is it correct?

[Q]How to mount directories across SD cards

Okay, this is what I want to do. Under Linux, it would be done via /etc/fstab, but Android has changed some things up.
Certain apps store files and other things on the internal SD card of the RAZR. For example, the Amazon MP3 Cloud player stores all downloaded music files to /sdcard/amazonmp3. There is no way to change this. However, I store all my music on my external SD card. So, what I want to do is create a mount point on the internal sdcard for the /sdcard/amazonmp3 directory that points to a directory on my external sd card (/sdcard-ext/amazonmp3).
That way, when I download music, it will still attempt to save it to /sdcard/amazonmp3 which really is a mount point that points to /sdcard-ext/amazonmp3.
Now, there is an app called FoldersPlug which does this. However, it's not doing it across reboots and it's a little buggy in how it works. I'd rather just fix the /etc/vold.fstab file (if that's possible) to mount my directories for me, but I don't completely understand all the needs to be set up in it.
If I have the following directories set up:
/sdcard/amazonmp3 (this will be empty)
/sdcard-ext/amazonmp3 (this will contain all the files and folder structures that would normally be in /sdcard/amazonmp3)
I want it so that the /sdcard-ext/amazonmp3 directory is mounted to the /sdcard/amazonmp3 directory.
Here is what I see when I run the "mount" command to look at the current mount points that are mounted:
Code:
/dev/block/vold/179:97 /mnt/sdcard/amazonmp3 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 0 0
/dev/block/vold/179:97 /mnt/sdcard/DCIM 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 0 0
/dev/block/vold/179:97 /mnt/sdcard/Pictures 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 0 0
/dev/block/vold/179:97 /mnt/sdcard/Android/data/com.iconology.comics.app 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 0 0
These are the mount points that FoldersPlug set up and what I want to do instead is define them in the /etc/vold.fstab file but I don't know how they should be entered into the /etc/vold.fstab file.
Any help would be greatly appreciated!
Thanks!
I may be wrong, but I don't believe Android Vold can mount loopback (bind). You'll have to create a partition on the SD card instead, feeding it to Vold. Then try something similar to;
dev_mount /dev/block/mmcblk0p2 /mnt/sdcard/amazonmp3 /devices/platform/msm_sdcc.2/mmc_host/mmc1
Or if you forget about Vold, and use an ordinary mount;
# mount -o bind /sdcard-ext/amazonmp3 /sdcard/amazonmp3
In this case (bind loopback mount), you don't need it to be a partition.
Maybe the easies way is you just forget about the internal sdcard, replacing /mnt/cdcard with The real McCoy instead.
Cool. Thanks for the help. I see that this would have to be done using busybox, which is cool since I have that installed.
I tested what you stated and yup, that mounts them. So, I guess I'll fool around a little more with the scripts in /etc/init.d and see if I can't get it to work. I might have to do a sleep or something in the script to give the system time to mount the sdcards, but hopefully, this will work.
Thanks again for the tip!
UPDATE:
Well, here's my script but it doesn't seem to work. I have it first check to see if the number of lines returned from doing directory listing on the /sdcard and /sdcard-ext directories are 0. If so, it sleeps for 10 seconds and then tries it again, waiting for the sdcards to be mounted.
Once they are mounted, then I go and mount my directories. However, it doesn't seem to work. I have the script in the /etc/init.d directory and the permissions are set for execution (0777) like the other two scripts in there (98tweaks and S99SuperCharger).
If I go and run the script myself, it works and mounts the directories.
Here is the script. Any other ideas?
Code:
#!/system/xbin/sh
# Check if the SDCARDs are mounted yet.
result="`ls /sdcard/ | wc -l`"
while [ "$result" -eq 0 ]
do
sleep 10
result="`ls /sdcard/ | wc -l`"
done
result="`ls /sdcard-ext/ | wc -l`"
while [ "$result" -eq 0 ]
do
sleep 10
result="`ls /sdcard-ext/ | wc -l`"
done
# The cards are mounted. Now mount the directories
busybox mount --bind /sdcard-ext/DCIM /sdcard/DCIM
busybox mount --bind /sdcard-ext/amazonmp3 /sdcard/amazonmp3
busybox mount --bind /sdcard-ext/Pictures /sdcard/Pictures
busybox mount --bind /sdcard-ext/Android/data/com.iconology.comics.app /sdcard/Android/data/com.iconology.comics.app
Okay. Got it to work finally. I just decided to set it up using ScriptManager instead to run on boot.
Not sure why it wasn't working with the init.d process.
you rock!
iBolski said:
Cool. Thanks for the help. I see that this would have to be done using busybox, which is cool since I have that installed.
I tested what you stated and yup, that mounts them. So, I guess I'll fool around a little more with the scripts in /etc/init.d and see if I can't get it to work. I might have to do a sleep or something in the script to give the system time to mount the sdcards, but hopefully, this will work.
Thanks again for the tip!
UPDATE:
Well, here's my script but it doesn't seem to work. I have it first check to see if the number of lines returned from doing directory listing on the /sdcard and /sdcard-ext directories are 0. If so, it sleeps for 10 seconds and then tries it again, waiting for the sdcards to be mounted.
Once they are mounted, then I go and mount my directories. However, it doesn't seem to work. I have the script in the /etc/init.d directory and the permissions are set for execution (0777) like the other two scripts in there (98tweaks and S99SuperCharger).
If I go and run the script myself, it works and mounts the directories.
Here is the script. Any other ideas?
Code:
#!/system/xbin/sh
# Check if the SDCARDs are mounted yet.
result="`ls /sdcard/ | wc -l`"
while [ "$result" -eq 0 ]
do
sleep 10
result="`ls /sdcard/ | wc -l`"
done
result="`ls /sdcard-ext/ | wc -l`"
while [ "$result" -eq 0 ]
do
sleep 10
result="`ls /sdcard-ext/ | wc -l`"
done
# The cards are mounted. Now mount the directories
busybox mount --bind /sdcard-ext/DCIM /sdcard/DCIM
busybox mount --bind /sdcard-ext/amazonmp3 /sdcard/amazonmp3
busybox mount --bind /sdcard-ext/Pictures /sdcard/Pictures
busybox mount --bind /sdcard-ext/Android/data/com.iconology.comics.app /sdcard/Android/data/com.iconology.comics.app
Click to expand...
Click to collapse
Dude...a little renaming of dirs and i was running. thanx:good:
iBolski said:
Okay. Got it to work finally. I just decided to set it up using ScriptManager instead to run on boot.
Not sure why it wasn't working with the init.d process.
Click to expand...
Click to collapse
Works perfectly
Thanks for your work.
I have a question. Is it possible to create a folder in /mnt/sdcard (for example /mnt/sdcard/myfolder) with a script or automaticly after boot?
What i want is to mount the external SD to this folder (/mnt/sdcard/myfolder) but first you have to create the folder "mysdcard".
But i hope it works with a script only like:
Code:
#!/system/xbin/sh
# The cards are mounted. Now mount the directories
mkdir /mysdcard
busybox mount --bind /sdcard-ext /sdcard/mysdcard
sorry for my english
xoxys said:
Thanks for your work.
I have a question. Is it possible to create a folder in /mnt/sdcard (for example /mnt/sdcard/myfolder) with a script or automaticly after boot?
What i want is to mount the external SD to this folder (/mnt/sdcard/myfolder) but first you have to create the folder "mysdcard".
But i hope it works with a script only like:
Code:
#!/system/xbin/sh
# The cards are mounted. Now mount the directories
mkdir /mysdcard
busybox mount --bind /sdcard-ext /sdcard/mysdcard
sorry for my english
Click to expand...
Click to collapse
sorry my english bad...
if i don't have /etc/init.d directory... can i execute this command in another way?
thanks...
nb:
* modified with debuggerd is not work, my jelly-bean not execute debuggerd on boot
* add script install-recovery.sh on /system/etc is not work too....

[Q] Link2SD:2nd partition shown but still not working

I tried to install Link2SD in Micromax A58 as the internal storage is very low and need to install some more apps. Already rooted and installed Link2SD to use the ext4 2nd partition of my 8 GB SD card. After trying with all possible ways, couldn't get it worked. All the time it was showing error--
"Mount Script can not be created. Mount: No such file or directory"
Previously even the 2nd partition was not shown as mounted in the storage info of Link2SD but after modifying the install-recovery.sh in /etc path, the storage info now atleast showing the 2nd partition as mounted. My install-recovery.sh looks like below--
#!/system/bin/sh
/system/xbin/daemonsu --auto-daemon &
/system/etc/install-recovery-2.sh
mount -t ext4 -o rw /dev/block/mmcblk0p2 /data/sdext2
mount -t ext4 -o rw /dev/block/vold/179:2 /data/sdext2
Now, the problems are as below--
1) Installed multiple applications but none of them are actually linked to SDcard. The Link2SD shows them as 'On SD Card' and just after installing 9-10 small applications, the internal memory is now full. If I go to 'Create Link', it is giving error '/data/sdext2 mount not found'.
2) When try to recreate mount script and choosing 'ext4' as parameter, it still throws error
"Mount Script can not be created. Mount: No such file or directory"
It seems that even though the storage info shows the 2nd partition as mounted, but system couldn't identify it somehow. So, Link2Sd is not working at all.
Please help and advice further. Thanks a lot.

[Q] Mount second SD Card partition on boot

Hello, all.
I have a Moto E with a 32GB External Memory card.
I've formatted the card to have a 12G FAT32 partition for the phone to use as intended, and the other 20GB I've formatted into a EXT4 filesystem that I plan to use for various stuff.
I can mount and write to the partition without any problem:
Code:
mount -t ext4 -o rw /dev/block/mmcblk1p2 /sdcard/sdext4/
The issue lies in that I have no idea where I should place this so that it automatically does it on boot (I cannot find any init.d directory, for example).
Could someone let me know what scripts are read at boot and where the best location for putting said command would be?
----
EDIT: Come to think of it, I'll need it for the following command so I can rsync as well without a hassle:
Code:
ln -s /data/data/eu.kowalczuk.rsync4android/files/rsync rsync

How to mount ext4 formatted MicroSD card on Android 6.0?

Hi
my phone is lg k10 android 6.0 and rooted
for me only mounted fat32
when I formatted ext4 microsdcard and insert on phone show message "can't use sd card. tap to set up for use"
when click this message my microsdcard formatted fat32.
How to mount ext4 formatted MicroSD card on Android 6.0?
Thanks
So you need ext4 for symlinking purposes eh?
Anyway , if your device supports ext4 , depends on vendor , you can try to mount it manually
Root is required.
In adb ,
Code:
-adb shell
-su
-df
- cat /proc/partitions
when you know the partition for your external sd ,
Code:
mount -o bind "path to partition" /storage/sdcard1
If this works , you want to add this as a script to run at boot or create a init.d script by your own and give it 0755 permission.
Cheers
-Edit
If it didnt work , try this , it may be a little complicated
https://forum.xda-developers.com/showthread.php?t=2424900
akash14darshan said:
So you need ext4 for symlinking purposes eh?
Anyway , if your device supports ext4 , depends on vendor , you can try to mount it manually
Root is required.
In adb ,
Code:
-adb shell
-su
-df
- cat /proc/partitions
when you know the partition for your external sd ,
Code:
mount -o bind "path to partition" /storage/sdcard1
If this works , you want to add this as a script to run at boot or create a init.d script by your own and give it 0755 permission.
Cheers
-Edit
If it didnt work , try this , it may be a little complicated
https://forum.xda-developers.com/showthread.php?t=2424900
Click to expand...
Click to collapse
I want use exfat because for big files size 4g
but not mount exfat
I want use format exfat Instead fat32
can I or must use custom rom?
123xdagsm said:
I want use exfat because for big files size 4g
but not mount exfat
I want use format exfat Instead fat32
can I or must use custom rom?
Click to expand...
Click to collapse
I need you to be particular with your wordings ..
Do you need ext4 sdcard to be mounted or exfat?
PS:
For File Size larger than 4gb , you can try NTFS , It is supported natively by my device.
Try formatting sdcard as NTFS and then insert into device.
If it shows any problem or doesnt mount , try this
Code:
-su
-ntfs-3g /dev/block/mmcblk1p1 /mnt/sdcard/external_sd
-vold
If this works , try making an init.d script with the above code , to mount sdcard everytime at boot
Cheers
akash14darshan said:
I need you to be particular with your wordings ..
Do you need ext4 sdcard to be mounted or exfat?
PS:
For File Size larger than 4gb , you can try NTFS , It is supported natively by my device.
Try formatting sdcard as NTFS and then insert into device.
If it shows any problem or doesnt mount , try this
Code:
-su
-ntfs-3g /dev/block/mmcblk1p1 /mnt/sdcard/external_sd
-vold
If this works , try making an init.d script with the above code , to mount sdcard everytime at boot
Cheers
Click to expand...
Click to collapse
It does not matter, I just want to support big size file 4g
I format ntfs but not work and type commands show error "
sush: ntfs-3g: not found"
I format ext4 too and test. command
# mount -o bind /dev/block/mmcblk1p1 /storage/sdcard1
and make director /storage/sdcard1 but show error"
mount: Not a directory"
123xdagsm said:
It does not matter, I just want to support big size file 4g
I format ntfs but not work and type commands show error "
sush: ntfs-3g: not found"
I format ext4 too and test. command
# mount -o bind /dev/block/mmcblk1p1 /storage/sdcard1
and make director /storage/sdcard1 but show error"
mount: Not a directory"
Click to expand...
Click to collapse
try this
Code:
-su
-cd /storage/
-mkdir sdcard1
-cd /
-mount -o bind /dev/block/mmcblk1p1 /storage/sdcard1
akash14darshan said:
try this
Code:
-su
-cd /storage/
-mkdir sdcard1
-cd /
-mount -o bind /dev/block/mmcblk1p1 /storage/sdcard1
Click to expand...
Click to collapse
not work show message again
"mount: Not a directory"
I use terminal for commands
I guess due to marshmallow's strict policies , you are not being able to mount NTFS,
I will suggest you to format card as ext4 using EaseUS Partition Manager and then insert sdcard in your device.
Ext4 is natively supported by linux and I dont think it should cause you problems.
Cheers , Pressing that Thanks button wont harm you
I don't know lg k10 android 6.0 not support formats exfat,ntfs,ext4 for micro sdcard.
Does anyone else have a comment to fix the problem?
akash14darshan said:
I guess due to marshmallow's strict policies , you are not being able to mount NTFS,
I will suggest you to format card as ext4 using EaseUS Partition Manager and then insert sdcard in your device.
Ext4 is natively supported by linux and I dont think it should cause you problems.
Cheers , Pressing that Thanks button wont harm you
Click to expand...
Click to collapse
Gonna try this.
akash14darshan said:
So you need ext4 for symlinking purposes eh?
Anyway , if your device supports ext4 , depends on vendor , you can try to mount it manually
Root is required.
In adb ,
Code:
-adb shell
-su
-df
- cat /proc/partitions
when you know the partition for your external sd ,
Code:
mount -o bind "path to partition" /storage/sdcard1
If this works , you want to add this as a script to run at boot or create a init.d script by your own and give it 0755 permission.
Cheers
-Edit
If it didnt work , try this , it may be a little complicated
https://forum.xda-developers.com/showthread.php?t=2424900
Click to expand...
Click to collapse
Would you tell me how to access the adb?
Cheers

Categories

Resources