GNU/Linux >> Tutoriels Linux >  >> Linux

La relecture de la table de partition a échoué avec l'erreur 16 :Périphérique ou ressource occupé

On dirait que cet appareil est monté. Exécutez umount /dev/sdb1 et réessayez.


En supposant que vous obtenez cela à la suite de l'automatisation (par exemple, en utilisant expect ) le fdisk opération (et que la partition n'est pas réellement montée), essayez d'ajouter quelques secondes de délai après avoir modifié la partition et avant d'écrire la partition capable.

J'ai eu la même erreur lorsque j'essayais d'automatiser un appel à fdisk sur Centos 7.6 à 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.


Je soupçonnais que mon flux de commande canalisé faisait surface à un problème de synchronisation dans fdisk (qui ne serait pas déclenché par une entrée plus lente/manuelle) alors j'ai commencé à saupoudrer sleep commandes pour retarder diverses entrées jusqu'à ce que l'erreur disparaisse. Le problème dans mon cas était que le w se produisait trop tôt après la définition de la nouvelle partition.

Un sleep 5 avant le w aboutit à un succès constant :

# (echo "d"; echo "";
        echo "n"; echo ""; echo 3; echo 2001954; echo "";
        sleep 5; echo "w") | fdisk /dev/sdb

Linux
  1. Erreur d'installation de ConfigParser - python setup.py egg_info a échoué avec le code d'erreur 1 [Résolu]

  2. Impossible de signer Csr avec la clé racine Ca ?

  3. Linux - Déterminer la taille d'un périphérique bloc ?

  4. Linux – Comment trouver le pilote (module) associé à un périphérique sous Linux ?

  5. Contrôler une alimentation USB (on/off) avec Linux

Ubuntu - Erreur :Échec de la création de la carte SD

rmdir a échoué en raison d'un périphérique ou d'une ressource occupés

La relecture de la table de partition a échoué avec l'erreur 22 :argument invalide

Répertorier les étiquettes de partition à partir de la ligne de commande

Déterminer la taille d'un périphérique bloc

Comment trouver la taille d'une partition non montée sous Linux ?