Erreur, même avec sudo: "dd: impossible d'ouvrir '/ dev / sda1': autorisation refusée" (entrée dd acheminée depuis gzip)

14

Ma commande qui ne fonctionne pas :

sudo gzip -dc sda1.image.gz | dd of=/dev/sda1

renvoie l'erreur suivante avant même que j'aie pu saisir mon mot de passe:

dd: failed to open ‘/dev/sda1’: Permission denied
[sudo] password for ken:

J'ai également essayé sans les options "-dc" et j'obtiens la même erreur.

Cependant, la commande dd sans gzip, utilisant un fichier non compressé, fonctionne :

sudo dd if=sda1.image of=/dev/sda1

Il semble que le sudo ne s'applique qu'à la première commande et non à la séquence entière de commandes. Si je reste dans la même session de terminal et répète la commande, je n'obtiens pas l'invite de mot de passe (mon authentification semble persister) et pourtant j'obtiens toujours la même erreur (comme si mon authentification ne s'applique pas à l'opération d'écriture / dev ). La même erreur se produit lors de l'exécution à partir d'un script / bin / sh.

Comment dois-je créer ma ou mes commandes pour décompresser mon image sur l'appareil?

J'utilise Ubuntu 14.04 LTS dans une fenêtre de terminal.

Ken Conrad
la source

Réponses:

17

Vous manquez sudode l'autre côté du pipeline:

sudo gzip -dc sda1.image.gz | sudo dd of=/dev/sda1

Dans un <command> | <command> | [...]format de commande, chaque commande du pipeline qui nécessite sudodoit être exécutée en utilisant sudo, pas seulement la première.

Dans ce cas , vous pourriez ne pas avoir besoin d'utiliser sudosur gzip -dc sda1.image.gz, à moins que vous ne disposez pas d' autorisation de lecture sur le fichier:

gzip -dc sda1.image.gz | sudo dd of=/dev/sda1

En général, si toutes les commandes à exécuter dans un pipeline le requièrent sudo, une manière de devoir écrire sudodans chaque commande consiste à exécuter la commande entière dans un sous-shell invoqué à l'aide de sudo:

sudo bash -c '<command> | <command> | [...]'
kos
la source
3
@KenConrad Si cette réponse a résolu votre problème, veuillez la marquer comme réponse acceptée en cliquant sur la marque sous le nombre de votes positifs, afin que les autres utilisateurs sachent que cette réponse a fonctionné pour vous et peuvent éventuellement en profiter également.
kos