GNU/Linux >> Linux Esercitazione >  >> Linux

Rilettura della tabella delle partizioni non riuscita con errore 16:dispositivo o risorsa occupata

Sembra che questo dispositivo sia montato. Esegui umount /dev/sdb1 e riprova.


Supponendo che tu stia ottenendo questo come risultato dell'automazione (ad esempio, usando expect ) il fdisk operazione (e che la partizione non sia effettivamente montata), prova ad aggiungere qualche secondo di ritardo dopo aver modificato la partizione e prima di scrivere la partizione abilitata.

Ho ricevuto lo stesso errore mentre cercavo di automatizzare una chiamata a fdisk su 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.


Il mio sospetto era che il mio flusso di comandi reindirizzato stesse affiorando un problema di temporizzazione in fdisk (che non sarebbe stato attivato da un input più lento/manuale) quindi ho iniziato a spruzzare sleep comandi per ritardare vari input fino alla scomparsa dell'errore. Il problema nel mio caso era che il file w accadeva troppo presto dopo la definizione della nuova partizione.

Un sleep 5 prima dell'w si traduce in un successo costante:

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

Linux
  1. Come crittografare una partizione con DM-Crypt LUKS su Linux

  2. Errore di installazione di ConfigParser – python setup.py egg_info non riuscito con codice di errore 1 [Risolto]

  3. Linux:determinare la dimensione di un dispositivo a blocchi?

  4. Linux:come trovare il driver (modulo) associato a un dispositivo su Linux?

  5. 'lxc_cgfs – Dispositivo o risorsa occupata – Impossibile impostare memory.use_hierarchy su 1; continuando' - errore durante l'avvio del contenitore LXC

Controllo di un alimentatore USB (on/off) con Linux

docker Il processo per docker.service non è riuscito perché il processo di controllo è terminato con un codice di errore

Rilettura della tabella delle partizioni non riuscita con errore 22:argomento non valido

Elenca le etichette delle partizioni dalla riga di comando

Come trovare il driver (modulo) associato a un dispositivo su Linux?

Come eseguire un comando in background con un ritardo?