Working on idea to handle improper shutdown

Silverpuppy and mikeb did a lot of work on this in the forum, for full hd installations. The problem with their solution is that it does a f.s. check on a mounted f.s., though they do it prior to it being remounted read/write.

I have been attempting to take it a step further, by creating a ramdisk and then do a pivot_root into it, then unmount the Puppy partition, then do a f.s. check.

I have got a bit stuck though, getting that famous "Kernel Panic - Not Syncing : Attempted to kill init!"

...I'll keep at it.

Posted on 15 Mar 2010, 16:51


Posted on 15 Mar 2010, 17:09 by Ramachandran
Improver Shutdown
It is my long pending demand. I have reported this many times in forum. Now, I am happy to note that you are taking this problem very seriously. Looking forward your permanent solution to it as improper shutdown was major problem in full HD installation.

Posted on 15 Mar 2010, 17:10 by aarf
e2fsck and fsck in puppy go nowhere on a FAT file system, whereas some meaningful output can be gained from e2fsck in knoppix531 on a FAT (but not necessarily a fixed file system.)

Posted on 15 Mar 2010, 23:48 by kirk
You could have the Universal installer make a frugal install on top of a full install anytime a full install is selected. Then you would always have a recovery option available. Of course if the partition is really hosed up that wouldn't help. I don't usually use a full install, but when I have and it's died, the symptom is usually X won't start.

Posted on 16 Mar 2010, 2:32 by Pizzasgood
Full install vs. Xorg
For the record, the problem kirk mentions above is that on Full installs, /tmp is not a tmpfs ramdisk, so unless a script explicitly deletes it, the files it holds will persist across boots. The /etc/profile script creates the file /tmp/bootcnt.txt to prevent X from trying to start every time a terminal is opened (since in Puppy we source /etc/profile in ~/.bashrc). If Puppy crashes, the code that clears /tmp on reboot won't run, which means the bootcnt.txt file will still be there on bootup, and X won't start. The easy fix: check if /tmp/bootcnt.txt exists on bootup (in /etc/rc.d/rc.sysinit) and if so remove it. I think there might be some code that checks for pfix=nox and creates that file to suppress X, so the removal of bootcnt.txt would have to either happen before that runs, or else be factored into the if statement.

I haven't upgraded to Puppy 4.3.x, so I don't know if that's still an issue. I just did a quick look through its scripts and it seems to have not changed though.

Posted on 16 Mar 2010, 4:30 by kirk
Thanks Pizza, I never really looked into it.