4
# sfdisk /dev/mmcblk0p1

Welcome to sfdisk (util-linux 2.29.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Checking that no-one is using this disk right now ... FAILED

This disk is currently in use - repartitioning is probably a bad idea.
Umount all file systems, and swapoff all swap partitions on this disk.
Use the --no-reread flag to suppress this check.

But I cannot find where it is used.

# grep mmc /proc/mounts
# grep mmc /proc/swaps
# lsof /dev/mmc*
# fuser /dev/mmc*

sfdisk is from util-linux 2.29.2-1+deb9u1.

# strace -f sfdisk /dev/mmcblk0p1
...
write(1, "\33[0mChanges will remain in memor"..., 115Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
) = 115
write(1, "\n", 1
)                       = 1
fstat64(3, {st_mode=S_IFBLK|0660, st_rdev=makedev(179, 1), ...}) = 0
ioctl(3, BLKRRPART)                     = -1 EINVAL (Invalid argument)
write(1, "Checking that no-one is using th"..., 62Checking that no-one is using this disk right now ... FAILED
sourcejedi
  • 50,249

1 Answers1

1
ioctl(3, BLKRRPART)                     = -1 EINVAL (Invalid argument)

Indeed, if the message was correct, the error code should show EBUSY not EINVAL.

You have an "Invalid argument" because you passed /dev/mmcblk0p1. This is a partition. sfdisk edits the table that lists all partitions. You need to pass the whole device, i.e.

# sfdisk /dev/mmcblk0
sourcejedi
  • 50,249