Sepertinya perangkat ini terpasang. Jalankan umount /dev/sdb1
dan coba lagi.
Dengan asumsi Anda mendapatkan ini sebagai hasil dari otomatisasi (misalnya, menggunakan expect
) fdisk
operasi (dan bahwa partisi tidak benar-benar dipasang), coba tambahkan penundaan beberapa detik setelah memodifikasi partisi dan sebelum menulis partisi yang dapat.
Saya mendapatkan kesalahan yang sama saat mencoba mengotomatiskan panggilan ke fdisk
pada Centos 7.6 ala:
# (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.
Kecurigaan saya adalah bahwa aliran perintah saya yang disalurkan memunculkan masalah waktu di fdisk
(itu tidak akan dipicu oleh input yang lebih lambat/manual) jadi saya mulai menaburkan sleep
perintah untuk menunda berbagai input hingga kesalahan hilang. Masalah dalam kasus saya adalah w
terjadi terlalu cepat setelah partisi baru ditentukan.
A sleep 5
sebelum w
menghasilkan kesuksesan yang konsisten:
# (echo "d"; echo "";
echo "n"; echo ""; echo 3; echo 2001954; echo "";
sleep 5; echo "w") | fdisk /dev/sdb