Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 28 Sep 1995 03:17:20 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        bde@zeta.org.au, nate@rocky.sri.MT.net
Cc:        hackers@FreeBSD.org
Subject:   Re: Diskslice naming convention?
Message-ID:  <199509271717.DAA32286@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>> >And the numbering scheme for the slices > 4 is determined by how they
>> >fall in the first 4 slices, correct?
>> 
>> Recursively.

>How do you mean?  If I have 4 slices inside of the fdisk partition 1,
>the first slice in fdisk partition 2 would be (5, 6, 7, 8 are in 1)
>slice 9.  Is that what you mean by recursively?

No, I just mean that the tree of slices is walked recursively to linearize
it.  It happens to be walked depth-first.  This could give strange orders
such as:

        1  2  3  ext
                  |
                 ext  9    10    11
                  |
                  5  ext  null  null
                      |
                      6  ext  null  null
                          |
                          7  ext  null  null
                              |
                              8  null  null null

but most fdisks generate a degenerate nearly linear tree such as:

        1  2  3  ext
                  |
                  5  ext  null  null
                      |
                      6  ext  null  null
                          |
                          7  ext  null  null
                              |
                              8  null  null null


>> >disklabel automatically translated /dev/sd0 -> /dev/rsd0c
>> 
>> Disklabel automatically translates sd0 -> /dev/rsd0c.  /dev/sd0 is a
>> completely different device.

>I'm still lost.  I *understand* that /dev/rsd0c and /dev/sd0 are
>different (one's a block device, the other is a character device), but
>how *are* they different in what parts of the disk they represent?

/dev/rsd0c is the character device for the c partition on the first slice
on sd0 with type 0xa5 (aka the compatibility slice).  /dev/sd0 is the
block device for the whole disk.

>> ># dd if=/dev/sd0  of=/dev/null
>> 
>> >But if I specifically hard-code in the device 
>> 
>> ># dd if=/dev/sd0c of=/dev/null
>> 
>> >I should get the same results.
>> 
>> No, they are completely different devices.  Look at them with ls -l.

>I know, but do the above commands produce the same results (modulo the
>block and character device differences).

The areas of the disk described by the two devices can be the same in
degenerate cases.

>> >Is there anyway to determine [ A DOS slice ] outside of sysinstall?
>> 
>> Many.  Try
>> 
>> 	od -c /rsd0sY | head -1 | cut -c 24-44
>> 	dd if=/dev/rsd0sY | file -	# sort of; could be improved

>*grin*.  I could do this myself, but this is not recommended for a
>newbie.  Is there an 'fdisk' type of way?  Would it be possible to
>modify/re-write fdisk to recognize these things?  If possible, how much
>work would be required to do it?

There's the fdisk inside sysinstall and in libdisk/tst01.  It recognizes
extended partitions but can't create them.

Bruce



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