NetBSD-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Fun with SSD and GPT wedges
Somewhat related, but the man page on GPT in the example on how to set up a BIOS boot indicates that one should newfs dk?, not rdk?. A number of people have pointed out to me that I should be running newfs on rdk?, NOT dk?. This was probably the source of a lot of my problems, but in my defense I was just following the documentation. :-)
-bob
On Feb 12, 2019, at 6:57 PM, Greg Troxel <gdt%lexort.com@localhost> wrote:
> Robert Elz <kre%munnari.OZ.AU@localhost> writes:
>
>> | but wiping the GPT header doesn’t seem to always immediately
>> | free the corresponding wedges.
>>
>> It doesn't. You need to be aware of the logical separation here.
>> GPT is a disc partitioning scheme (as are MBR and disklabel) which
>> divides drives into multiple pieces. Wedges are an OS software
>> reference device which map a range of blocks on a particular device
>> to a /dev name (ie: give a handle by which a piece of disc can be
>> referenced).
>>
>> Normally, when a drive (which already contains a label) is scanned,
>> any GPT partitions (of suitable types) are connected to wedges so
>> they can be referenced - but you can always just create a wedge for
>> any random piece of a drive without any GPT back end if you like.
>>
>> With a new drive, as it was originally coded, you would add a new
>> GPT partition, and the gpt command would tell you what you needed
>> to type (or cut&paste) as a dkctl command to create a wedge for the
>> new partition (if you wanted one).
>>
>> But since just about everyone wants one, that's why they created
>> the partition usually, and since having one command spit out instructions
>> for running another command is kind of weird, when it could just
>> run the command itself, the gpt command was changed to create a
>> wedge when it creates a new partition (that is the in kernel data
>> struct, whether or not it has a /dev/dkN entry available).
>>
>> Apart from that one concession, the gpt command and wedges are two
>> separate things (and so are MBR and wedges and disklabel and wedges
>> if you use them that way - most people don't as it isn't traditional.)
>
> I can see how we got here, but the situation seems wrong from a logical
> consistency point of view. If gpt(8) is going to create wedges on
> adding a new partition, it should delete the wedge corresponding to a
> partition that it removes. And when destroying a GPT label, it should
> first remove each partition, and thus remove each wedge.
>
> With disklabels, when the label is scanned then the various abcdefgh
> partitions can be used. Ideally, when writing the block with the
> disklabel it would be rescanned.
>
>> That means, that when you no longer want to keep a wedge, you need
>> to dkclt delwedge it to cause the kernel to lose the mapping. What
>> you do (if anything) with the GPT map on the drive is unrelated.
>> But certainly keeping wedges when you're about to remap the drive
>> space in some different way would cause you all kinds of weirdness.
>
> Agreed that currently you must, because gpt remove does not drop the
> wedge, one has to do it manually.
Home |
Main Index |
Thread Index |
Old Index