Date: Thu, 30 Oct 1997 15:48:07 -0700 (MST) From: chad@anasazi.com (Chad R. Larson) To: freebsd-stable@freebsd.org Subject: FreeBSD MAKEDEV Hazard (fwd) Message-ID: <9710302248.AA06145@chad.anasazi.com>
next in thread | raw e-mail | index | archive | help
E-mail from one of my users...
Forwarded message:
> From wbloom@wbloom.anasazi.com Thu Oct 30 12:35:06 1997
> Message-Id: <XFMail.971030123458.wbloom@anasazi.com>
> X-Mailer: XFMail 1.0 [p0] on FreeBSD
> Sender: wbloom@anasazi.com
> Content-Type: text/plain; charset=us-ascii
> Content-Transfer-Encoding: quoted-printable
> Mime-Version: 1.0
> Date: Thu, 30 Oct 1997 11:21:50 -0700 (MST)
> Organization: Anasazi Inc.
> From: William Bloom <wbloom@anasazi.com>
> To: ronr@anasazi.com, randy@anasazi.com, nate@anasazi.com, gentner@anasazi.com,
> ktaylor@anasazi.com
> Subject: FreeBSD MAKEDEV Hazard
> Cc: chad@anasazi.com, naomi@anasazi.com
>
> A caveat about the FreeBSD /dev/MAKEDEV script...
>
> If you ever have occasion to recreate special device files for storage
> devices, then here is something to be very careful about. Doing what
> appears to be, at first blush, obvious from a brief look at the
> MAKEDEV code in order to create new device files for, say, wd0...
>
> sh MAKEDEV wd0
>
> ...is exactly what MAKEDEV itself does if called as 'sh MAKEDEV all'.
>
> However, the code which executes in order to create files for wd0
> will first create wd0 itself, then...
>
> for slicepartname in s0h s1 s2 s3 s4
> do
> sh MAKEDEV $name$unit$slicepartname
> done
>
> The above code will create device files for wd0 slices (s[1-4]), will
> create device files for partitions wd0[a-h], and will -DELETE- any
> special device files for partitions wd0s[1-4][a-h]. If you use MAKEDEV
> in this fashion to recreate device files for disks that happen to
> have partitions on which your critical mountable filesystems are located
> (e.g. /dev/wd0s1e) and then reboot, the boot may fail.
>
> So, remember to use something like...
>
> sh MAKEDEV wd0 wd0s1a wd0s2a wd1 wd1s1a wd1s2a
>
> ...and so forth in order to get all the special device files. It is
> not necessary to spell out -all- the partitions (a - h) since if
> any one partition is mentioned ('a' in this example), then MAKEDEV
> will generate special device files for all the others anyway. You
> will have to specify at least one partition for -each- unit and slice,
> though.
>
> If you get into a jam because you can't boot due to this kind of
> problem, then go to the recovery shell prompt and do...
>
> /sbin/mount -f / To force the root filesystem to be
> writable (otherwise you can't do a
> mknod).
> cd /dev
> sh MAKEDEV <devices> As mentioned above; ignore 'chgrp' errors.
> /sbin/mount /usr Mount the /usr filesystem
> /usr/bin/find . -name <name pattern> -group 0 \
> -exec /usr/bin/chgrp operator {} \;
>
> The last command makes all the created special device files have
> 'operator' group ownership. Pick a name pattern that catches the
> raw devices, too (i.e. rwd0* as well as wd0*).
>
> I had to go through this exercise when I upgraded a PC from FreeBSD
> 2.1.6 to 2.2.5 using sources. Recreating the device files -may-
> not have been strictly necessary, but I am changing one whole
> minor revision of FreeBSD and I know that there is new device support,
> so I thought it would be a good idea. Too bad I got sabotaged by
> /dev/MAKEDEV.
>
>
> Bill
> --------------------------------------------------------------------------
> William Bloom <wbloom@anasazi.com>
> (602) 906-7525
> Anasazi, Inc. - 7500 North Dreamy Draw Drive, Suite 120, Phoenix, Az 85020
>
-crl
--
Chad R. Larson (CRL22) Brother, can you paradigm?
602-870-3330 chad@anasazi.com chad@anasaz.UUCP chad@dcfinc.com
Anasazi, Inc. - 7500 North Dreamy Draw Drive, Suite 120, Phoenix, Az 85020
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9710302248.AA06145>
