

OK, to be clear, you can boot to raspbian or your distro of choice and use hdparm if you have a proper SATA controller and connection. This does not work on NVME drives.
#shred
If you have a spinning disk and either are forced to use a USB to SATA adapter or if the drive itself does not support secure erase, then you can use the shred command.
shred -fv /dev/sdb
will write random data to the sata device sdb. f is for force and v is for verbose. You can add z to add an extra zero pass and z to change the number of passes. That means that
shred -z -n 5 /dev/sdb
should do 5 passes and then zero on drive sdb
It will ALSO work for older parallel drives that identify as hd or that still appear as sd with a USB adapter. You had better check your devices with a lsblk before you run it. It will probably overwrite the OS of a running system.
Last word on shred is that it is ungodly slow. One pass of 1 tb takes 1.5 to 3 hours.
#hdparm
For SATA drives that support it, you can use hdparm. A deep explanation of what I’m doing is available here: https://grok.lsu.edu/article.aspx?articleid=16716. I could write out how to do it, but it goes into greater detail.
For forcing the system to sleep, you may need to
echo disk | sudo tee /sys/power/state
Also, be sure to set a password when prompted. If you omit the password, you may brick the drive. I have rarely been able to unbrick a drive.
This process may take several hours. The output of hdparm -I (that is an uppercase i) should tell you how long.
#NVME
Check processes here: https://wiki.archlinux.org/title/Solid_state_drive/Memory_cell_clearing#NVMe_drive
I have followed them once upon a time, but i haven’t done it in years and cannot offer solid advice.
Turns out my commands were not brief, but once you get the hang of it you can write down the commands you are using and repeat them.
I scripted the whole thing for work, so it is getting more and more rusty.