OESF Portables Forum
Model Specific Forums => Sharp Zaurus => Zaurus - pdaXrom => Topic started by: climber on March 05, 2007, 03:48:01 am
-
Hi,
I want to create the following symlink:
/home is a symlink of /mnt/ide2/home
What I did:
- copy the whole /home directory to /mnt/ide2/home
- Create symlink: ln -s /mnt/ide2/home/ /home
When I do a reboot I get the following error message:
Module dependencies: OK
mount: special device /hom/user does not exist
I think I did not all entries but I don't know where and which to do to fix this problem.
Can anybody help me?
Thanks
climber
SL-C3100 with pdaXrom beta3
-
Did you copy hidden stuff? I probably can't help, but I can weed out simple solutions for those who can.
-
Do you actually have a problem - apart from the error message ?
I thought this message came from the "one-partition-setup".
Correct me if I'm wrong.
Chero.
-
do the pdaXrom startup scripts act like those in sharp or cacko, which attempt to recreate the home directory if the /home/zaurus/Documents directory doesn't exist?
I tried moving /home/zaurus/Documents elsewhere and symlinking in, using cacko1.23 on my 3100 and the startup scripts tried to remove the symlink and fix things, but actually broke it completely!
-
mount: special device /hom/user does not exist
I think I did not all entries but I don't know where and which to do to fix this problem.
Can anybody help me?
[div align=\"right\"][a href=\"index.php?act=findpost&pid=155384\"][{POST_SNAPBACK}][/a][/div]
I'm not an expert on Linux, but on my desktop and my Zaurus, /home is mounted. It's not just a simple directory; the system is actually mounting it. I don't believe you can simply symlink it. I think you'd have to find what is mounting it and change that script.
I would suggest changing /etc/fstab, but I've heard that this doesn't always work as one would expect in pdaXrom.
-
as I have mentioned before in some other post, the best would be to bind the directory instead:
mount --bind /mnt/ide2/home /home
-
Chero: No I have only the error message on booting but everything works after.
Meanie: That could be also a solution and maybe the better one! Where should I put in your code to bind it automatically?
Thanks
climber
-
Meanie,
could you help me please because I tried so many things without success!
Where should I put in your code to bind it automatically?
Thanks
climber
-
Meanie,
could you help me please because I tried so many things without success!
Where should I put in your code to bind it automatically?
Thanks
climber
[div align=\"right\"][a href=\"index.php?act=findpost&pid=155822\"][{POST_SNAPBACK}][/a][/div]
Hi Climber,
because I also did a similar thing recently, I can tell you:
Put this into a script called /etc/rc.d/init.d/mountbind:
#!/bin/sh
. /etc/rc.d/init.d/functions
COUNTER=0
case "$1" in
start)
while [ ! -d /mnt/ide2/home ]; do
sleep 1
COUNTER=$[$COUNTER+1]
if [ $COUNTER -gt 45 ]; then
echo /mnt/ide2/home does not become available!
echo Cannot bind /home!
echo Please try removing any CF cards and reboot.
echo Or did /mnt/ide2/home get deleted or corrupted?
action "Binding home from HDD:" mount --bind /mnt/ide2/home /home
exit 1
fi
done
action "Binding home from HDD:" mount --bind /mnt/ide2/home /home
;;
stop)
;;
esac
exit 0
As you see, this uses the same looped detection mechanism as I suggested for your swap issue in z-portal.info. :-)
In fact, this is the problem what I used that for initially.
Once more for the OESF people:
Sometimes, the devices (SD or CD cards) don't get available quickly enough in order to let subsequent rc scripts use the devices.
For example, when there is a CF WLAN card inserted, the microdrive initialization is so slow, that a script liek the one above, albeit executed as the last script in the rc sequence, cannot access the microdrive.
Hence the need for that loop.
It checks each second if the directory (and hence the device) in question is available and only THEN runs the actual action.
Why two occurrecnces of the action? The purpose is that the user gets the red "FAILED" message in the timeout case.
Of course, one could leave away the "exit 1" instead and make te script even more elegant with an error state variable and conditional exit value at the end... :-)
Oh, and link this script to rcX.d (X=1..5) as "S60mountbind".
Otherwise it won't be executed ;-)
Also, be sure to make the script executable.
daniel
-
Daniel,
thank you for your answer. It works very well !!! :-)
Regards
climber