Full Disk

Dear All,

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.


Should not matter that it’s full.

What you probably have is a corrupted disk or one with a partition table that doesn’t match the geometry as seen by the driver.

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?.

Need help.

If you know what the partitions were set at, you could try to recreate them, but that’s a very very long shot.

Well even if Northon Ghost would work, it wouldn’t know where the partition is …

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 can use cp to duplicate the drive, for example

cp -V /dev/hd1 /dev/hd2

Of course this assumes a third /dev/hd0 that you are running on. You could boot from a floppy however.

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.

Good luck.