この装置が取り付けられているようです。 umount /dev/sdb1
を実行 もう一度やり直してください。
自動化の結果としてこれを取得していると仮定すると(たとえば、 expect
を使用) ) fdisk
操作 (およびパーティションが実際にマウントされていない) の場合は、パーティションを変更した後、パーティションに書き込み可能にする前に、数秒の遅延を追加してみてください。
fdisk
への呼び出しを自動化しようとしたときに同じエラーが発生しました Centos 7.6 a la:
# (echo "d"; echo "";
echo "n"; echo ""; echo 3; echo 2001954; echo "";
echo "w") | fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): Partition number (1-3, default 3): Partition 3 is deleted
Command (m for help): Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): Using default response p
Partition number (3,4, default 3): First sector (2001954-31116287, default 2002944): Last sector, +sectors or +size{K,M,G} (2001954-31116287, default 31116287): Using default value 31116287
Partition 3 of type Linux and of size 13.9 GiB is set
Command (m for help): The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
私の疑いは、私のパイプされたコマンド ストリームが fdisk
でタイミングの問題を表面化させていたということでした。 (それは遅い/手動入力によって引き起こされることはありません)それで私は sleep
を振りかけ始めました エラーがなくなるまでさまざまな入力を遅らせるコマンド。私の場合の問題は、 w
新しいパーティションが定義された直後に発生していました.
sleep 5
w
の前に 一貫した成功をもたらします:
# (echo "d"; echo "";
echo "n"; echo ""; echo 3; echo 2001954; echo "";
sleep 5; echo "w") | fdisk /dev/sdb