Я переместил исполняемый файл в /usr /bin. Это сработало, что позволило мне запустить программу, как и ожидалось.

Однако после следующей перезагрузки я заметил, что команда не отвечает, и когда я проверял /usr /bin, файл больше не находился в нем. Что-то удалило это.

Я проверял это несколько раз, а также пробовал символические ссылки. Тот же эффект произошел.

Я помню подобное поведение на коробке Fedora Core 5, когда у меня был файл по одному из этих путей, и каждый раз, когда я заменял его новой версией, через некоторое время появлялась более старая версия. Что-то сделало резервную копию файла и не позволило мне изменить его. Это позволило мне удалить его позже.

Подобное поведение на двух системах. Текущий компьютер - это Thecus RAID box под управлением Linux.

Два вопроса:

  1. Что здесь происходит?

  2. Как разместить или заменить эти файлы, чтобы они оставались там, где я их положил?

3 ответа3

1

Большинство встроенных устройств на основе Linux используют RAMDisk для монтирования "/" для лучшей производительности по сравнению со стандартным ПК / сервером linux. Linux "initrd" монтируется во время / во время загрузки. Initrd содержит / usr / bin, / bin, / sbin и другие каталоги. Поэтому, если вы добавите / замените какой-либо файл в «/», он будет пропущен при следующей загрузке, поскольку он смонтирован в ОЗУ, а старый initrd будет смонтирован при следующей загрузке.

Есть 2 решения.

(1) Проверьте выходные данные монтирования и посмотрите, установлено ли какое-либо дополнительное хранилище или нет. Вы можете сохранить свой исполняемый файл в общем каталоге и добавить его в переменную PATH. Тем не менее, вы должны убедиться, что какой-либо сценарий запуска (login или .bashrc) обновляет переменную PATH при каждой загрузке.

(2) Обновление initrd. Если вы знаете, какой initrd используется, вы можете открыть (gunzip?) это, смонтировать его, скопировать исполняемый файл, размонтировать его, закрыть (gzip) и сохранить его.

Изменить: вам может потребоваться разрешения администратора на устройстве, чтобы заменить initrd. Первое решение - то, что я предпочитаю, так как оно простое в обслуживании и не требует прав администратора.

0

Вы установили эти коробки? Особенно в случае с Thecus возможно, что система восстанавливает области ОС из ПЗУ при каждой загрузке в качестве меры безопасности. Если это так, вы можете выяснить, можете ли вы перепрограммировать ПЗУ с более новым / пользователем / bin.

0

Я бы согласился с диагнозом CarlF - скорее всего, система работает в RAMFS, загружаясь из ROM при каждой загрузке. Чтобы навсегда изменить его, вам нужно будет перепрошить ПЗУ.

Могут быть и другие варианты, но вам придется сообщить нам подробности - какую модель Thecus вы используете?

Я нашел страницу по запуску Debian на Thecus n4100. Это означает, что n4100 имеет слот MiniPCI, который можно использовать для добавления CF-карты, чтобы обеспечить доступное для записи хранилище или альтернативный загрузочный раздел. Ваша модель может иметь аналогичную функцию.

Кроме того, вы можете смонтировать сетевой ресурс (CIFS/SMB/NFS) и загрузить его с вашим программным обеспечением.

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