Bug 19849

Summary: MAKEDEV still defaults to da0X instead of da0s1X
Product: Base System Reporter: ue <ue>
Component: confAssignee: Dag-Erling Smørgrav <des>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: 5.0-CURRENT   
Hardware: Any   
OS: Any   

Description ue 2000-07-11 11:00:02 UTC
"Dangerously dedicated" disks have been deprecated for a long time. As a
result, most installations of FreeBSD 4.X (or -current, for that matter)
will use slices. Sysinstall automatically creates the necessary devices
(e.g. /dev/da0s1[a-h]) for the user.

On the other hand, MAKEDEV {da0,std,all,fixit) will only create da0[a-h]
and da0s[1-4]. This can cause problems if the user is forced to swap (or
remove) disks. The missing devices on the fixit floppy are especially
annoying.

The problem also exists for ad and other disk devices.

MAKEDEV should create the neccessary devices for filesystem on the first
slice of the disk in addition to the devices for the filesystems on a
"dangerously dedicated" disk.

Fix: 

Suggested patch for src/etc/MAKEDEV 1.260 (creates da0s1[a-h] and da0[a-h]):

--- MAKEDEV     2000/06/26 15:42:48     1.260
+++ MAKEDEV     2000/07/07 20:44:56
@@ -575,7 +575,7 @@
        esac
        case $unit in
        [0-9]|[0-9][0-9]|[0-4][0-9][0-9]|50[0-9]|51[0-1])
-               for slicepartname in s0h s1 s2 s3 s4
+               for slicepartname in s0h s1h s2 s3 s4
                do
                        sh MAKEDEV $name$unit$slicepartname
                done
How-To-Repeat: 
as root:
cd /dev
sh MAKEDEV da100
ls da100*
Comment 1 Bruce Evans 2000-07-11 17:55:10 UTC
On Tue, 11 Jul 2000, Udo Erdelhoff wrote:

> >Description:
> 
> "Dangerously dedicated" disks have been deprecated for a long time. As a
> result, most installations of FreeBSD 4.X (or -current, for that matter)
> will use slices. Sysinstall automatically creates the necessary devices
> (e.g. /dev/da0s1[a-h]) for the user.

/dev/da0X is not for "dangerously dedicated" disks.  It is for the first
BSD slice.  This gives a canonical way to find all BSD partitions on most
systems (ones with at most one BSD slice per disk).  Unfortunately, someone
attempted to deprecate using the traditional BSD partition names because of
transient bugs in the boot loader interface.

> MAKEDEV should create the neccessary devices for filesystem on the first
> slice of the disk in addition to the devices for the filesystems on a
> "dangerously dedicated" disk.

No, there is nothing special about the first slice.  The first slice is
unlikely to be the BSD slice except on "undangerously dedicated" disks.

Perhaps partitions for all slices should be created.  This costs 64
directory entries and inodes per drives (16 for each slice).  Some of the
wastage could be recovered by not creating entries for so many drives by
default.

Bruce
Comment 2 ue 2000-07-13 16:12:39 UTC
Hi Bruce,
> /dev/da0X is not for "dangerously dedicated" disks.  It is for the first
> BSD slice.

this fact should be documented somewhere. I've been using FreeBSD since
2.something and I didn't know that. A user on one of the german FreeBSD
mailing lits was bitten by the missing inodes and none of the regulars
(including at least one core member) had that piece of information.

> Perhaps partitions for all slices should be created.  This costs 64
> directory entries and inodes per drives (16 for each slice).  Some of the
> wastage could be recovered by not creating entries for so many drives by
> default.

Make that 64 directory entries and 32 inodes. The current version of
MAKEDEV creates /dev/r<part> as a hard link to /dev/<part>. I don't mind
the wastage on my rootfs (I've used the default values for newfs when I
installed the current incarnation of my machine and have lots of spare
inodes) and the fixit floppy is limited to da0.

The basic problem remains: sysinstall's warning about using "dangerously
dedicated partitions" steers the users toward slice-based setups.
sysinstall creates (or causes the creation of) the neccessary device nodes
for the current setup. This works as long as the drive numbering remains
unchanged. If you're forced to remove a disk or if you have to swap disks
around, the system won't boot.

This is a major PITA for both new users and oldtimers and should be
changed. The increased inode consumption on a normal rootfs is a small
price for that. If it isn't possible to create all those devices on
the fixit floppy, the information about /dev/da0x being a shortcut to
the FreeBSD paritions on the first FreeBSD slice of the disk should
be displayed alongside the current "link /etc/passwd..." message.

/s/Udo
-- 
"The only reasonable alternative we can come up with is to close off the
Internet to America Online users until they have passed an entrance test.
But that would break federal laws that prohibit discrimination against
the intellectually challenged." - hhahn@boardwatch.com
Comment 3 Dag-Erling Smørgrav freebsd_committer freebsd_triage 2001-12-04 00:36:30 UTC
Responsible Changed
From-To: freebsd-bugs->des

I'll take this.
Comment 4 Dag-Erling Smørgrav freebsd_committer freebsd_triage 2001-12-04 00:48:44 UTC
State Changed
From-To: open->feedback

Fixed in -CURRENT, awaiting MFC.
Comment 5 Dag-Erling Smørgrav freebsd_committer freebsd_triage 2001-12-06 09:09:38 UTC
State Changed
From-To: feedback->closed

MFCed, thanks!