How I took my machine down and fixed it.

Benjamin Polidore ben at h50.net
Thu Aug 5 21:28:06 PDT 2004


I had a bit of a unique experience with my FreeBSD 5.2.1 server, and I 
thought I'd share it because I found a lot of my questions difficult to 
answer.

I have a Via C3 800 processor on this particular server, and I thought 
I'd recompile with the cpu flag set in make.conf.  dmesg reports this:

CPU: VIA C3 Ezra (800.03-MHz 686-class CPU)

So I set the flag to i686 (I would later learn that this processor only 
supports the i586/mmx flag) and did a make buildworld.  No problem 
here, but when I did make installworld, things went very wrong.

Errors and core dumps (illegal instruction) started raining down, and 
then I lost power and when I powered up, the server was a goner.

So I tried to log in from the serial console, but NOTHING worked.  In 
single user mode, I couldn't even run ls.

This is a big problem.

To begin fixing the system, I downloaded 5.2.1's disc2 iso and tried to 
log into the live filesystem shell, but sysinstall couldn't mount the 
CD.

I searched around and realized that I was using a CD drive that 
supports DMA, so I had to turn that on before booting up:

OK set hw.ata.ata_dma="1"
OK set  hw.ata.atapi_dma="1"
OK boot

Now I could get into the live filesystem, and I felt pretty good about 
my plan.  I wanted to overwrite /bin, /sbin, /usr/bin and /usr/sbin (as 
well as libexet, etc) from the live disc.

So first I had to mount the drives.

I tried to mount my root slice first and was greeted with some problems:

mount -w /dev/ad0s1a /mnt/root
Resulted in:
Operation Not Permitted

But I could mount my usr slice.  Again, with a bit of research, I 
realized that since these slices were dirty, they needed to be fsck'd 
before I could mount them.  I tried fsck, but that complained about a 
lack of fstab.  So I had to do a:

fsck_ffs -y /dev/ad0s1a

On each slice before I could mount.

Mounting worked fine once I had done this, so I tried to start copying 
files, and was greeted with more errors.  This time, again:

Operation Not Permitted

For each copy.  This seemed really confusing to me, and after a lot of 
internet research, I found that I needed to unset the system immutable 
flag.

chflags -R noschg /mnt/root
..etc

Now I could copy files from the fixit disc, and I was able to reboot 
and do a proper make build/installworld with i586/mmx.

So my system is back after many hours of frustration.  Hope this can 
help someone else out there.

Yours,
Ben Polidore



More information about the freebsd-questions mailing list