I have system working in QNX 4.25 that had the system
partition full. Some data log filled the boot partion (hd0t77).
Now the system is not booting. I always get a message of
“cannot exec /bin/sh input/output error”. I used another
QNX HD to boot but I could not mount the full partition because
the system says: cannot mount: No space left on device.
How can I have access to the disk to remove something
and fix the problem? Please, help.
I Passed the dcheck test and it says the disk is OK. I guess the problem may be in
the sysinit.1 where I put some processes that starts just after the boot (a lot of
compiled C programs) to run an instrument (antenna tracking). Something that
is starting a bin/sh tha stops and say input/output error. However, I put this HD
as slave and put another as master booted the system and typed
mount -p /dev/hd1. I got back: cannot mount /dev/hd1t77 no space left on device.
dcheck only checks for bad block it doesn’t check for corrupted file system. In your case you cannot run chkfsys because you don’t mount it.
As I said the “no space left on device” is usuallya partition table that doesn’t match the geometry as seen by the driver. That is for example the partition data indicate the partition is bigger then the HD.
If you run fdisk what are the cylinders information, do they make sense?
No sense at all.
Start End Num/Cyl/Bl Size Boot
QNX (77) 4175 ***** 9690 195 350 40 9538 No
QNY (78) ***** ***** ***** 50 18 70 60 24505 No
What to do? I may re-install the QNX but can I copy at least the program
area in that disk? or part of it? I’m afraid the last backup is not complete.
I saw in this forum something about Norton Ghost to copy a partition
do you think it wil work?.
I’ve run into this problem before, in as much as filling the disk. It always caused a corruption to adjacent space.
We’ve had similar problems when a streaming file (such as a tar file) gets bigger than the 2G boundary. It keeps writing, but the place it writes to is another file.
You might find chkfsys might be more helpful than dcheck, since it’s not a hardware problem.
Also in these cases, I’ve always lost some data, usually, the file that was overwritten, and the new file that was too big to keep track of. I imagine the same will hold true for partition related infomation.
At any rate a chkfsys should be able to give you a new bitmap for the drive to make it accessable, though you may have to rebuild some of the boot information that was lost.
It is quite possible that the data on the corrupted drive is recoverable, however it is a manual operation that you have to be very careful with. The best situation would be to first duplicate the drive. Then I believe you can use spatch on the copy of the corrupted drive, and you can look for the major directories, eg. /usr /home /etc /var. If you can relink these in, you can then copy off your important data. When you get this data back, you can reinstall QNX and restore your system.
Dear Jim_Millington and maschoen,
It seems to be my last resort to use chkfsys. However, as I installed another disk as master
I could logged in but the “chkfsys /dev/hd1” still can’t find device. This is because (I guess) the
mount -p /dev/hd1 could not create the block devices. How can I handle that? Maschoen,
when you say duplicate the drive is using what?
You will NOT be able to use chkfsys, because the partition table is corrupted. The file system doesn’t know where the partitions begin and end.
Duplicating the driver might help you do to various trial and error. For example you could change the partition table then see if that work, if that doesn’t then you take the backup, recreate the HD and try again.
If my manager would ask me how long it would take me to recover from something like this I’d say 5 days, minimum. You’d have to get down and dirty, look at each block of the disk, try to find where the partitions are and set the partition table accordingly. If there was only one partition that could be rather simple, otherwise ouch. If the partition table is corrupted it’s very likely that other part of the filesystem is corrupted.