Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 05 Aug 2000 08:32:57 -0600
From:      Joe Warner <jswarner@uswest.net>
To:        freebsd-newbies@freebsd.org, freebsd-advocacy@freebsd.org
Subject:   Newbie Learning Experience
Message-ID:  <398C2599.FB356E7E@uswest.net>

next in thread | raw e-mail | index | archive | help
Hi all,

   I've had a real learning experience with my FreeBSD (3.4) system at
work over the past couple of days and at the risk of making myself look
like an idiot, I felt it important enough to share.  Since I'm a newbie
and hope to help other newbies when facing similar situations, this
email is directed mainly at freebsd-newbies.  However, I also felt it
important enough to share with freebsd-advocacy because of how amazed I
am with the OS.  Instead of a little cartoon devil, maybe the mascot
should be the Energizer Bunny?  FreeBSD keeps going and going and
going... 8^)  Anyway, please bear with me.  This is probably going to be
pretty lengthy, so for those of you don't like to read or are
uninterested, just close this email and delete it now.  For the rest of
you, read on...
    When I came into work last Thursday morning, I noticed that my PC
(Compaq Deskpro 2000), running FreeBSD 3.4 was at the login prompt and
my WIN NT machine was at the boot up password.  I realized then that the
inevitable had happened....Power Outage!  Thinking that power
outages/cold reboots meant death to most UNIX systems, I hurried to
prevent this from happening again and hooked up an APC Smart-UPS 1000
that we had sitting in one of our storage closets.  Hooking it up to my
FreeBSD machine was easy enough.  I just plugged the power cord into a
receptacle and then plugged the power from the CPU and monitor into the
back of the UPS.  I finished by attaching the serial cable on the UPS to
the serial port on the back of the CPU (COM1) - There is only one serial
port available for Compaq Deskpro's.  After hooking it up, I realized
that I would need to install some software that could communicate with
the UPS through the serial line and allow me to do a graceful shutdown
in the event of power loss.  I went to APC's web site and though they
had their Powerchute software available for many commercial versions of
UNIX, I didn't see anything that was designed specifically for any of
the BSD's.  They even had a Linux version and I learned later that at
least one person was running this successfully under Linux emulation on
his FreeBSD 3.4 system.  I didn't want to run this under Linux emulation
if I didn't have to.  Later, I came across an application in the ports
collection called UPSD - 2.0 that seemed to be designed specifically to
work with the APC Smart-UPS models.  I loaded the 4th CD from the CD ROM
set and from /usr/ports/sysutils/upsd/ I typed make install and
installed it.  I noticed that there wasn't any documentation included
with this port, not even a man page.  It loaded only 2 files, the upsd
executable in /usr/local/sbin and the configuration file (upsd.conf) in
/usr/local/etc  I su'd to root and attempted to spawn the daemon by
cd'ng to /usr/local/sbin and typing # ./upsd  At this point, my whole
system locked up tighter than a drum!  I couldn't kill X and couldn't
switch to another terminal.  Nothing!  I had to cold-reboot my system
again!  After I booted back up, I looked at my logs and noticed a
message indicating there was a permission problem with /dev/cuaa0  This
device is owned by uucp and belongs to the dialer group.  I su'd to root
again and adjusted the permissions so that other users would have access
and then tried to execute the program again.  Same thing happened,
complete lockup!  At this point, I was pretty frustrated and none the
information I had read in my books or the answers I received from
posting to FreeBSD-Questions seemed to help.  I cd'd to
/usr/ports/sysutils/upsd and typed make deinstall and went home.
    When I came in Friday morning, I noticed an email from someone who
said they were using a port called UPSMON - 2.1.3 with an APC Smart-UPS
on their FreeBSD system without any problems.  This port wasn't on the
CD ROM set, so when I installed it, it had to fetch it from an ftp
site.  No problem, right?  Wrong!  I installed this port and decided to
reboot.  Big mistake!  Now, during boot-up, my system would just hang
at:

local package initialization: Cannot open /dev/cuaa0: Permission denied
upsmond<---(this is where it would hang)

    After hearing the voice of Ralph from the Simpsons in my head, going
Ha! Ha!.., I thought, now what do I do!  After going through all my
books and documentation and trying to boot into single-user mode, fixit
mode from the 2nd cd in the cd rom set and even from kernel.GENERIC, I
realized I wasn't getting anywhere.  My machine would always hang when
trying to launch the upsmond daemon during boot up.  As a last resort, I
posted to FreeBSD-Questions and got the answer I was looking for.  I was
told to go into single-user mode.  At the beginning of the boot-up
process, there is a ten second count down that tells you to either hit
enter or wait for the count down to finish for system boot-up.  Before
the counter finishes, you hit the space bar and you're presented with a
prompt where you can specify different boot options.  I specified "boot
-s" for single user mode.  In The Complete FreeBSD, it tells you to boot
into single-user mode and run fsck on / by issuing: fsck -y / <cr>  I
ran this on / and /dev/wd0s1a, respectively.  Then it tells you to mount
/ by typing: mount -u /  I did this and it let me mount it.  Lastly, it
says to mount /usr by typing: mount /usr It would let me mount this but
only with read access.  I needed write access so that I could go into
/usr/local/etc/rc.d/ and either remove or change the upsmond.sh file in
there that was causing my system to hang.  I got a response from someone
telling me to mount /usr by typing the following: mount -rwf /usr  This
worked and I was able to edit upsmond.sh so that it was pointing to
/dev/cuaa1 and not cuaa0.  This got my system booting.  I found out
later that I could have successfully mounted /usr with r/w access if I
would have first fsck'd it by issuing: fsck -y /usr (I probably should
have done this for /var too)
    I got my system booting again (Whew!) but still haven't figured out
why /dev/cuaa0 causes problems.  I seems as if some kind of conflict is
going on, maybe something else is using this device?  I haven't found
the answer to this yet.  I got an email response back from APC, saying
they did have an application that would work with FreeBSD but I would
need to purchase their Simple UNIX Serial cable for $39.00 in order for
it to work.  So, now I don't know if it's a device conflict or the cable
but I doubt I'll shell out the money for a new cable.  Maybe my manager
will let me order it and reimburse me?
    I've always thought that cold reboot/shutdowns were death to UNIX
systems, especially if you did it more than 5 or 6 times.  I've
completely trashed my systems this way when I was using Red Hat 6.x and
Caldera 2.x in the past.  Cold booted more than 5 times and got the
dreaded "kernel panic" message and had to reinstall.  I ended up cold
booting my FreeBSD system more than 12 times the last couple of days and
it's still going!  8^)  So, the moral of this story?  FreeBSD is
forgiving, you just need to tell it how to forgive you!  And...forgive
me for such a long story... 8^}

Joe


--

    FreeBSD = The Power to Serve
     ..Simply put = FreeBSD Rocks!




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-advocacy" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?398C2599.FB356E7E>