動作しない:
Sudo gzip -dc sda1.image.gz | dd of=/dev/sda1
パスワードを入力する前に、次のエラーを返します。
dd: failed to open ‘/dev/sda1’: Permission denied
[Sudo] password for ken:
「-dc」オプションを使用せずに試したところ、同じエラーが発生しました。
ただし、ddコマンドgzipなしで、非圧縮ファイルを使用すると動作します:
Sudo dd if=sda1.image of=/dev/sda1
Sudoはコマンドのシーケンス全体ではなく、最初のコマンドにのみ適用されるようです。同じターミナルセッションにとどまり、コマンドを繰り返した場合、パスワードプロンプトは表示されず(認証は持続するようです)、それでも同じエラーが表示されます(認証が/ dev書き込み操作に適用されていないかのように) )。/bin/shスクリプトから実行すると、同じエラーが発生します。
イメージをデバイスに圧縮解除するためのコマンドを作成するにはどうすればよいですか?
ターミナルウィンドウでUbuntu 14.04 LTSを使用しています。
パイプラインの反対側にSudo
がありません:
Sudo gzip -dc sda1.image.gz | Sudo dd of=/dev/sda1
<command> | <command> | [...]
コマンド形式では、Sudo
を必要とするパイプラインの各コマンドは、最初のコマンドだけでなく、Sudo
を使用して実行する必要があります。
この場合、ファイルの読み取り権限がない限り、gzip -dc sda1.image.gz
でSudo
を使用する必要はないかもしれません。
gzip -dc sda1.image.gz | Sudo dd of=/dev/sda1
一般に、パイプラインで実行されるすべてのコマンドがSudo
を必要とする場合、各コマンドでSudo
を記述する必要がある1つの方法は、Sudo
を使用して呼び出されるサブシェルでコマンド全体を実行することです:
Sudo bash -c '<command> | <command> | [...]'