Ошибка, даже с sudo: «dd: не удалось открыть‘ / dev / sda1 ’: разрешение отклонено» (ввод dd передан из gzip)

Моя команда, которая не работает :

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 в окне терминала.

12
задан 8 May 2015 в 07:38

1 ответ

Вы отсутствуете 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> | [...]'
12
ответ дан 8 May 2015 в 07:38

Другие вопросы по тегам:

Похожие вопросы: