Hello Christian, On 23.01.25 22:55, Christian Melki wrote: > On 1/23/25 9:54 PM, Ahmad Fatoum wrote: >> We currently only have an option for BusyBox blkdiscard, but that one >> lacks some options like -z for zeroing the block device. >> >> This can be important as regular discard on an eMMC isn't guaranteed >> to clear data. >> >> Add a util-linux blkdiscard option to address this. >> > > Zeroing is certainly not guaranteed to do anything useful either to the > physical media. A normal FTL getting a full block zero will only move > the read index for that LBA to some zeroed return block index and do > nothing else (fast zeroed read, with no read perturbation from real media). > Depending on how one views the discarded blocks, it might also put the > zeroed block on the discard list anyway. > If you still can read real data from a zeroed (reindexed) or discarded > block you have other security issues with the device. > Having lower level access to the device with intentional holes isn't > going to protect you from leaking by anything, including key changes to > some transparent AES-XTS blocks. > If you mistrust the device, your best bet is going to be forcing fast > prng data on all accessible blocks, including whatever sideband blocks > you can get at. With no reusage between blocks, the drive won't have any > other choice than to write over data. It's slow though. > Smart drives will see various reoccuring fill patterns and create fast > read indexes for those too.
My particular need for blkdiscard -z is not for mangling key material. I just want to clear the block device, so software that checks for partition magic doesn't see stale data. I am aware that this is no substitute for a blkdiscard -s (which busybox also supports) or randomized overwrite, but this is beyond what I need. Thanks, Ahmad > > regards, > Christian > >> Signed-off-by: Ahmad Fatoum <[email protected]> >> --- >> rules/util-linux.in | 10 ++++++++++ >> rules/util-linux.make | 3 ++- >> 2 files changed, 12 insertions(+), 1 deletion(-) >> >> diff --git a/rules/util-linux.in b/rules/util-linux.in >> index 8bf035f3901e..83e075852689 100644 >> --- a/rules/util-linux.in >> +++ b/rules/util-linux.in >> @@ -62,6 +62,16 @@ config UTIL_LINUX_ADDPART >> help >> The addpart utility. >> >> +config UTIL_LINUX_BLKDISCARD >> + bool >> + depends on !BUSYBOX_BLKDISCARD || ALLYES >> + prompt "blkdiscard" >> + help >> + blkdiscard is used to discard device sectors. >> + >> +comment "BusyBox' blkdiscard is selected!" >> + depends on BUSYBOX_BLKDISCARD >> + >> config UTIL_LINUX_CFDISK >> bool >> select UTIL_LINUX_FDISKS >> diff --git a/rules/util-linux.make b/rules/util-linux.make >> index 579c165e6edb..02d83715c6f1 100644 >> --- a/rules/util-linux.make >> +++ b/rules/util-linux.make >> @@ -54,7 +54,7 @@ UTIL_LINUX_CONF_OPT := \ >> -Dbuild-agetty=$(call ptx/endis, PTXCONF_UTIL_LINUX_AGETTY)d \ >> -Dbuild-bash-completion=disabled \ >> -Dbuild-bfs=disabled \ >> - -Dbuild-blkdiscard=disabled \ >> + -Dbuild-blkdiscard=$(call ptx/endis, PTXCONF_UTIL_LINUX_BLKDISCARD)d \ >> -Dbuild-blkpr=disabled \ >> -Dbuild-blkzone=disabled \ >> -Dbuild-blockdev=disabled \ >> @@ -197,6 +197,7 @@ UTIL_LINUX_LIB-$(PTXCONF_UTIL_LINUX_LIBFDISK) >> += fdisk >> >> # disk-utils >> UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_ADDPART) += sbin/addpart >> +UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_BLKDISCARD) += >> sbin/blkdiscard >> UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_CFDISK) += sbin/cfdisk >> UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_DELPART) += sbin/delpart >> UTIL_LINUX_BIN-$(PTXCONF_UTIL_LINUX_RESIZEPART) += >> sbin/resizepart > > -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
