Arno Steffen wrote:
2011/4/5 Ralf Friedl <[email protected]>:
Arno Steffen wrote:
2011/3/29 Harald Becker <[email protected]>:
You can try
ln /bin/busybox /bin/busybox.old
mv busybox /bin/busybox
Then remove /bin/busybox.old after the next reboot.
That is the best way to replace any running executable in place, but
doesn't solve the "Device busy" problem in all cases (that even arise
due to other actions, not only Busybox update). As those problems are a
mess on flash file systems, I focused on the reboot question ... but
otherwise you are right. You can even remove busybox.old right after the
move, it than gets deleted on shutdown automatically.
--
Harald
I cannot confirm that remove of busybox_old is working before reboot.
In this case your device will keep busy and it is impossible to
remount in read-only.
That's pity, as I like this method.
Regards
Arno
If you remove the old program after the move, you might as well omit the
link completely.
The effect of the additional link is that the program will not be removed at
shutdown, as there exists a link to the file.
If you remove the link, or don't create the link at all, there is no
reference left to the file, just the running processes executing the
program. Therefor the file will be removed when the last process exits,
which will likely be init.
Most file systems will deal with this without any problems.
In this case the problem is either the flash file system itself that doesn't
handle this case, or it may be the fact that the file system was remounted
read only, although updates were pending.
That should be easy to find out, just replace busybox and then do a reboot
without remounting read only.
Ralf
Ok, I leave my busybox_old in system. Nevertheless I have the problem,
that I can't do
mount -r -o remount / (mount: mounting /dev/root on / failed:
Device or resource busy)
Usually an reboot is next command. If I comment it out I can manually
remount / without any problem.
And it is not a matter of time. I have done long sleeps befor umount
command. So it seems,
that the script itself is the problem. If I copy this script to /tmp
(ramdisk) and start it from this place
the remount works.
Arno
Why are you doing a remount read-only at all if your next command is a
reboot anyway?
Ralf
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox