Why is lsblk not included in base install?

I don`t say what sysutils/lsblk is bad or unnecessary or unusable port. But it definitely shouldn't be in the base system.

Seriously, this is funny:

* Why lsblk is not in base system?
* Why bash is not in base system?
* Why Linux kernel is not in base system?

:DDD
 
Yeah. That's exactly what I think about at the moment myself, to write vermaden a man page - if I insist on it, and it's no big deal, as he says, why shouldn't I do it?
To be honest - that is what happened with beadm(8) tool - I focused on the tool and the beadm(8) man page was initially written by Bryan Drewery (bdrewery) - later I added some things to it.

I can do the 'zathura' way also ... I am just not sure it will bring any more value with only additional -d option description.

But I do not want to discourage You - feel free to write it.

And FreeBSD _IS_NOT_ Linux.

% geom disk list

What is your XY problem?

I am running FreeBSD since 20 years. I prefer FreeBSD over Linux anytime ... yet - when you have multiple disks - its great to have a tool that will show what is on them.

Have You run geom disk list on a system with 90+ disks? I have - https://vermaden.wordpress.com/2019/06/19/freebsd-enterprise-1-pb-storage/ - details here.

I often create filesystems on entire device - without any partition scheme like GPT or MBR - what then? No partitions - yet filesystem is there and its even mounted.

The problem with geom disk list is that the information is VERTICAL and not HORIZONTAL - like with lsblk(8) tool.

Feel free to write and FreeBSD originated tool that will list disks (or block/char devices) in better way then lsblk(8) ... but no one did that unfortunately.
 
Because no one eats soup with a fork or spaghetti with a spoon. And FreeBSD _IS_NOT_ Linux.

% geom disk list

What is your XY problem?
If Linux (distros) compatible fundamental tool exists, it would make porting Linux apps easier. And if the compatible tool is BSD compatibully licensed && has no GPL'ed dependencies, there could be chanses to be incorporated into base (except moving-fast things like Python or Rust).
 
But I do not want to discourage You - feel free to write it.
Here is a quick pass based on the help text you provided in this thread. I don't know if you want your email address included but you can fill that in. Also, I do no know your real name so that is also a placeholder.

sh:
[~]cd ./tmp
[tmp]cat lsblk.md
date: Jan 15 2026
title: lsblk 8
author: vermaden

# NAME
lsblk -- a program to list block devices and/or disks.

# SYNOPSIS
lsblk [-d | --disks] [disk]

# DESCRIPTION
This utility will display block devices in system or disks.

# OPTIONS
-d,--disks
    Lists entire disks.

- disk
    list only `disk` block device.
-

# EXAMPLES
_To list all block devices in system._
```sh
  # lsblk

  DEVICE         MAJ:MIN SIZE TYPE                      LABEL MOUNT
  ada0             0:92  932G GPT                           - -
    ada0p1         0:100 200M efi                    efiboot0 -
    ada0p2         0:101 512K freebsd-boot           gptboot0 -
    <FREE>         -:-   492K -                             - -
    ada0p3         0:102 931G freebsd-zfs                zfs0 <ZFS>
    ada0p3.eli     0:106 931G freebsd-zfs                   - <ZFS>
```

_To list only `da1` block device._
```sh
  # lsblk da1

  DEVICE         MAJ:MIN SIZE TYPE                      LABEL MOUNT
  da1              0:80  2.0G MBR                           - -
    da1s1          0:80  2.0G freebsd                       - -
      da1s1a       0:81  1.0G freebsd-ufs                root /
      da1s1b       0:82  1.0G freebsd-swap               swap SWAP
```

_To list entire disks._
```sh
  # lsblk -d

  DEVICE SIZE MODEL
  ada0   1.8T Samsung SSD 860 QVO 2TB
  ada1   119G SAMSUNG SSD PM830 mSATA 128GB
  -        2T TOTAL SYSTEM STORAGE
```

# HINTS
_To Display physical disks_
```
  # sysctl kern.disks

  kern.disks: ada0 da0 da1
```

_To disply memory backed disks_
```
  # mdconfig -l

  md0
```

# HISTORY
written by: vermaden <email>

# SEE ALSO
^sysctl(8)^
^mdconfig(8)^
[tmp]md2mdoc ./lsblk.md ./lsblk.8
[tmp]cat ./lsblk.8
.Dd Jan 15 2026
.Dt lsblk 8
.Os
.Au vermaden
.Pp
.Sh NAME
.Nm lsblk
.Nd a program to list block devices and/or disks.
.Pp
.Sh SYNOPSIS
lsblk [-d | --disks] [disk]
.Pp
.Sh DESCRIPTION
This utility will display block devices in system or disks.
.Pp
.Sh OPTIONS
.Bl -tag -width Ds
.It Fl d,--disks
Lists entire disks.
.Pp
.It disk
list only `disk` block device.
.El
.Pp
.Sh EXAMPLES
.Em To list all block devices in system.
.Bd -literal -offset indent
  # lsblk
.Pp
  DEVICE         MAJ:MIN SIZE TYPE                      LABEL MOUNT
  ada0             0:92  932G GPT                           - -
    ada0p1         0:100 200M efi                    efiboot0 -
    ada0p2         0:101 512K freebsd-boot           gptboot0 -
    <FREE>         -:-   492K -                             - -
    ada0p3         0:102 931G freebsd-zfs                zfs0 <ZFS>
    ada0p3.eli     0:106 931G freebsd-zfs                   - <ZFS>
.Ed
.Pp
.Em To list only `da1` block device.
.Bd -literal -offset indent
  # lsblk da1
.Pp
  DEVICE         MAJ:MIN SIZE TYPE                      LABEL MOUNT
  da1              0:80  2.0G MBR                           - -
    da1s1          0:80  2.0G freebsd                       - -
      da1s1a       0:81  1.0G freebsd-ufs                root /
      da1s1b       0:82  1.0G freebsd-swap               swap SWAP
.Ed
.Pp
.Em To list entire disks.
.Bd -literal -offset indent
  # lsblk -d
.Pp
  DEVICE SIZE MODEL
  ada0   1.8T Samsung SSD 860 QVO 2TB
  ada1   119G SAMSUNG SSD PM830 mSATA 128GB
  -        2T TOTAL SYSTEM STORAGE
.Ed
.Pp
.Sh HINTS
.Em To Display physical disks
.Bd -literal -offset indent
  # sysctl kern.disks
.Pp
  kern.disks: ada0 da0 da1
.Ed
.Pp
.Em To disply memory backed disks
.Bd -literal -offset indent
  # mdconfig -l
.Pp
  md0
.Ed
.Pp
.Sh HISTORY
written by: vermaden <email>
.Pp
.Sh SEE ALSO
.Sx sysctl(8)
.Sx mdconfig(8)
 
...the above explanation also makes me want to either delete my public repo and/or refactor the code to be more robust.
Currently, my code does not search through the entire string looking for tokens (was never intended to) so, I just mocked up some code to allow for more string searching without refactoring a bunch and just tested my concept. Seems to work so, if I can make this tool a bit more robust I'll think about not deleting the repo.
 
Let's be honest, even for a writer, documenting can sometimes be a pain in the buttocks, so, why don't you use your least hated LLM as your assistant for doing so?

Examples: "hey, ChatGPT, this is the help message of my super duper program, turn it into a manpage source and don't editorialize it," "hey, ChatGPT, this is the source code where my cool util processes the params; draft a help message from what you can gather," etc.

Then, you read and edit the LLM's output until it's satisfactory according to you, and you'll save a bunch of time and get a decent documentation.

[Please have mercy. I mean well.]
 
I recently had a conversation with google AI.
I ask do not provide URL's.
It answered with only URL's , finalysing by this connection is now broken. Edit new question in new state.
 
Yes, LLMs are risible many times. They aren't very good at following instructions many others. But sometimes they are useful. But do what you will. My only intention is to be helpful to you guys.
 
I'm not talking about using AI to gather info, but as an assistant to ease the process of creating documentation.

But, again, I don't care what you do ultimately. It's a tool. Use it, don't use it. I don't care.
 
I like to push A.I. to the limits.
- Why does Trump has a mental problem and should seek professional psychiatric help
- Does god exist
- Do we have free will according to knowledge about quantum-mechanics
- Name 10 best porn stars.
 
A.I. helped me with me rc.local where i start services in parallel,

Code:
# 2. Define the list of services
SERVICES="
moused
jail
nginx
apache24
minidlna
cupsd
blackbox_exporter
node_exporter
gstat_exporter
telegraf
prometheus
grafana
zabbix74_server
zabbix_agentd
zabbix_server
"

# 3. Loop through and start each service in the background
for srv in $SERVICES; do
    /usr/bin/nohup /usr/sbin/service "$srv" onestart &
done
 
What's needed to start discussing to use AI / LLM is "how copyrights are treated and protected".
First of all, AI providers SHALL disclose what data are used for learning the LLM and clarify what licenses are applied with training data.
If ALL of the data are licensed under BSD compatibully licensed without even single exception, the outputs using the LLM would be usable for BSD licensed matters like *BSD. But even single data under GPL without dual (or more) license with BSD compatible ones slips into, it surely pollute the whole bunch of the LLM, causing resulting matter to pollute for example FreeBSD with GPL if any of the outputs using the LLM is incorporated.

Unless this is 100% clarified by international law, it's too dangerous to use the LLM for other than non-production and purely for evaluations.
 
Here is a quick pass based on the help text you provided in this thread. I don't know if you want your email address included but you can fill that in. Also, I do no know your real name so that is also a placeholder.

Seems its not that simple :)

vermaden_2026-01-17_11-33-29.png
 
To me the man page is always first look. If there is none, to me the SW feels undocumented. To me a software on a unix[like] system ain't not complete without a man page.

I agree with Maturin -- there should always be a man(1) page for Unix-ish software -- at least on *BSD's.

Agree -- Linux is the "Wild West" and anything goes there ( "md" any one? Find the README file? ). On Linux I am always wasting my time looking for simple documentation which should have been in a "no brainer" man(1) page describing what the "software is and does".

Whenever I write new Unix/Linux/Mac/etc commands I always include a man(1) page with the source if I expect someone to install it on to their system. Imagine if Dennis Ritchie (dmr) or Brian Kernigan didn't document what the arguments were to /bin/cp or /bin/rm, catman(1) ? Are we all supposed to be mind readers? :-). Run the newly installed unknown Unix command and "HOPE" there is a -help, --help, -? argv argument that doesn't do a bad thing?

Seriously -- I am supposed to "READ YOUR SCRIPT TO FIGURE OUT WHAT IT DOES"? How about (instead) I give you 100 random lines of (link) Obfusticated C code and you will tell me what it does in 5 minutes?
 
Back
Top