Моя команда, которая не работает :
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
В a <command> | <command> | [...]
формат команды, каждая команда конвейера, который требует sudo
должен быть выполнен с помощью sudo
, не только первый.
В этом случае Вы, возможно, не должны были бы использовать sudo
на gzip -dc sda1.image.gz
, если у Вас нет разрешения чтения на файле:
gzip -dc sda1.image.gz | sudo dd of=/dev/sda1
В целом, если все команды, которые будут выполнены в конвейере, требуют sudo
, один путь вокруг необходимости записать sudo
в каждой команде должен выполнить целую команду в подоболочке, вызванной с помощью sudo
:
sudo bash -c '<command> | <command> | [...]'