2

Я подключился к внешнему диску с помощью sudo chroot /mnt/disk , но почти все, что я делаю (вход в систему, завершение табуляции, less файла, ...), приводит к ошибке с упоминанием /dev/null: Permission denied , даже если команда, кажется, работает.

/dev/null имеет правильные права доступа (666), а file говорит, что это символьное устройство, поэтому ничто не перезаписывает его обычным файлом или не изменяет разрешения.

Что я могу сделать, чтобы это исправить?

Вот что приводит к завершению табуляции (из ls /u):

$ ls /ubash: /dev/null: Permission denied
bash: _upvars: `-a2': invalid number specifier
bash: /dev/null: Permission denied
bash: _upvars: `-a0': invalid number specifier

1 ответ1

1

Диск может быть смонтирован с опцией nodev , которая mount образом:

Не интерпретируйте символ и не блокируйте специальные устройства в файловой системе.

Вы можете убедиться в этом, проверив вывод mount вне chroot:

$ mount
...
/dev/sda1 on /mnt/disk type ext4 (rw,nosuid,nodev,relatime,data=ordered,uhelper=udisks2)

(Это особенно сложная проблема, так как конфигурация вне chroot влияет на поведение программ внутри нее!)

Исправить это так же просто, как перемонтировать без опции nodev . Следующая команда выполнит это (даже когда запущен процесс chrooted!), Хотя, вероятно, есть способ, который удаляет только параметр nodev не удаляя при этом и все остальные параметры:

sudo mount -o remount /dev/sda1 /mnt/disk

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .