Re: Removing fdisk and bsdlabel (legacy partition tools)
- In reply to: Rodney W. Grimes: "Re: Removing fdisk and bsdlabel (legacy partition tools)"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 26 Jan 2024 15:21:30 UTC
On Thu, Jan 25, 2024, 10:49 AM Rodney W. Grimes < freebsd-rwg@gndrsh.dnsmgr.net> wrote: > > On Thu, Jan 25, 2024, 9:11?AM Ed Maste <emaste@freebsd.org> wrote: > > > > > On Thu, 25 Jan 2024 at 11:00, Rodney W. Grimes > > > <freebsd-rwg@gndrsh.dnsmgr.net> wrote: > > > > > > > > > These will need to be addressed before actually removing any of > these > > > > > binaries, of course. > > > > > > > > You seem to have missed /rescue. Now think about that long > > > > and hard, these tools classified as so important that they > > > > are part of /rescue. Again I can not stress enough how often > > > > I turn to these tools in a repair mode situation. > > > > > > I haven't missed rescue, it is included in the work in progress I > > > mentioned. Note that rescue has included gpart since 2007. > > > > > > > What can fdisk and/or disklabel repair that gpart can't? > > As far as I know there is no way in gpart to get to the > MBR cyl/hd/sec values, you can only get to the LBA start > and end values: > In the last 20 years when have you needed this? LBA start/end is all that's relevant these days. The CHS values are completely ignored by FreeBSD. We use packet mode in the boot loader since about Pentium 150MHz or so. I did have to change these back in the day when we inferred what the CHS geometry was from the drive by looking at the MBR's partitions that you knew (assumed really) started on a cylinder value. This hasn't mattered in FreeBSD since sos rewrote ata the second time. DOS had to do these things because old-school MFM, RLL, etc disks couldn't return their CHS, so DOS had to enshrine them in the MBR to get a hint (or have the drive type BIOS to just know). Since we use LBA exclusively, none of this matter to FreeBSD. I've certainly never needed to tweak these in single user mode on an emergency basis. Why? Because you can't get to single user mode because the kernel won't even load if you have these wrong. So either you are booting some rescue disk to fix that (in which case you can craft it for your special environment)., or you are creating a special thing in multi-user, so you can install For all these use cases, fdisk as a port is fine. sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD) > start 63, size 8388513 (4095 Meg), flag 80 (active) > beg: cyl 0/ head 1/ sector 1; > end: cyl 1023/ head 15/ sector 63 > > gpart show ada0 > => 63 8388545 ada0 MBR (4.0G) > 63 8388513 1 freebsd [active] (4.0G) > 8388576 32 - free - (16K) > > Now I have learned that gpart backup/restore CAN get me > at least basic bsdlabel -e function, but again it has > no access to all the stuff stored that showsup with > bsdlabel -A. Which this is now the third time I have > asked "how do I do bsdlabel -A -e with gpart"? One > person at least answered that with: > gpart backup GEOM >backup > vi backup > gpart restore GEOM > OK Let's look at these extra fields: # /dev/md0: type: unknown disk: amnesiac label: flags: bytes/sector: 512 sectors/track: 63 tracks/cylinder: 255 sectors/cylinder: 16065 cylinders: 130 sectors/unit: 2097152 rpm: 3600 interleave: 1 trackskew: 0 cylinderskew: 0 headswitch: 0 # milliseconds track-to-track seek: 0 # milliseconds drivedata: 0 type isn't used at all in FreeBSD. disk is for /etc/disktab, something we've not really needed since FreeBSD 3 or so. label can be set with gpart add/modify -l. I've never used flags. Can't speak to that. bytes/sector: This is a physical property of the drive, not the label. You can find it with gpart list: % gpart list md0 .... Consumers: 1. Name: md0 Mediasize: 1073741824 (1.0G) Sectorsize: 512 The rest of this/that are reported or you can do math: fwheads: 255 <- tracks/cylinder fwsectors: 63 <-- sectors/track last: 2097151 <-- sectors/unit - 1 now, cylenders and sectors/cylinder you can compute. geom does this for reading/writing disk labels. rpm is hard coded to 3600 these days. FreeBSD doesn't care. The rest are for interleaving, which FreeBSD doesn't do, so we don't care. So you can influence the values, but they aren't used for anything by FreeBSD that matters. What if you need them for something else? Then just use the disklabel port. You'll never need to hack them tn single user mode, so you can use the port for all use cases. Warner > Warner > -- > Rod Grimes > rgrimes@freebsd.org >