Hmm that's odd, this is not supposed to happen - I mean, I can't see the scenario that leads to it. If there is already a whiteout file on the pup_rw, creating a new file with the same name should automatically clear remove the whiteout file. But we know "impossible thing" sometimes does happenjemimah wrote:Ok here is the situation that definitely gets you I/O errors.
File exists in Read-Only layer
Both file and its whiteout exist in Read-Write layer.
This does on occaision happen unintentionally with Puppy and the only fix is to delete the offending whiteouts by hand.
So at the very least, it is necessary to check the save file.
So perhaps we can get away by doing the test once every 20th boot or so? (and/or with some option to do manual check if required - just like fsck).
Busybox must be specifically compiled for this to happen ("exec prefers applet" and "standalone shell" must be enabled).jpeps wrote:I tried with bash/sh/ash in Lucid. All use gnu coreutils unless I specifically specify "busybox"
This is expected - that's what pfix=upgrade is supposed to do.jpeps wrote:I've also had to manually remove whiteout files that get into pupsave and prevent subsequent loading of files. For example, picpuz was separated out in an old remaster, although there in the present lupu-sfs. However, there's
/initrd/pup_rw/usr/share/pixmaps/.wh.picpuz.png
/initrd/pup_rw/usr/local/.wh.picpuz
..so files are missing, and it won't run. Delete the whiteouts, reboot, and all is well.
Technosaurus, I always thought $((s+s)) expression is bash-ism ... but to my surprise, it does work in ash. Bash has a pretty good reference docs in gnu.org, does a similar doc exist for ash? (at least for busybox ash?)
EDIT: Found it here http://linux.die.net/man/1/ash.