Ken*_*rad 17 gzip sudo development dd 14.04
我的命令不起作用:
sudo gzip -dc sda1.image.gz | dd of=/dev/sda1
Run Code Online (Sandbox Code Playgroud)
甚至在我有机会输入密码之前返回以下错误:
dd: failed to open ‘/dev/sda1’: Permission denied
[sudo] password for ken:
Run Code Online (Sandbox Code Playgroud)
我也试过没有“-dc”选项并得到同样的错误。
但是,使用未压缩文件的不带 gzip的 dd 命令确实有效:
sudo dd if=sda1.image of=/dev/sda1
Run Code Online (Sandbox Code Playgroud)
似乎 sudo 仅适用于第一个命令,而不是整个命令序列。如果我保持在同一个终端会话中并重复该命令,我不会收到密码提示(我的身份验证似乎仍然存在),但我仍然收到相同的错误(好像我的身份验证不适用于 /dev 写操作)。从 /bin/sh 脚本执行时会发生同样的错误。
我应该如何构建我的命令来将我的图像解压缩到设备?
我在终端窗口中使用 Ubuntu 14.04 LTS。
kos*_*kos 21
你sudo在管道的另一边失踪了:
sudo gzip -dc sda1.image.gz | sudo dd of=/dev/sda1
Run Code Online (Sandbox Code Playgroud)
在<command> | <command> | [...]命令格式中,需要的管道的每个命令都sudo应该使用 运行sudo,而不仅仅是第一个。
在这种情况下,您可能不需要使用sudoon gzip -dc sda1.image.gz,除非您对该文件没有读取权限:
gzip -dc sda1.image.gz | sudo dd of=/dev/sda1
Run Code Online (Sandbox Code Playgroud)
通常,如果要在管道中运行的所有命令都需要sudo,则必须sudo在每个命令中写入的一种方法是在使用sudo以下命令调用的子shell中运行整个命令:
sudo bash -c '<command> | <command> | [...]'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31659 次 |
| 最近记录: |