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