Внесение изменений в Thinux
Наши линейки продуктов Neo и Micro поставляются с предустановленной нашей встраиваемой операционной системой Thinux.
Thinux основана на Ubuntu Linux. На момент написания статьи она основана на Ubuntu 20.04.4 LTS на Micro 5 и Ubuntu 22.04.1 на Micro 6. Однако Thinux отличается от Ubuntu в некоторых существенных аспектах. Во-первых, мы включаем драйверы, специфичные для нашего оборудования, которые недоступны в вышестоящих репозиториях. Мы также включаем системные службы, которые защищают оборудование от повреждений. Это может показаться необычным людям, привыкшим к ПК с BIOS. Процессоры Intel и AMD имеют встроенную тепловую защиту: они снижают тактовую частоту и отключают некоторые ядра при приближении к перегреву. В худшем случае процессор и BIOS резко выключают компьютер для предотвращения повреждений. Процессоры ARM пока не обеспечивают такой уровень защиты. Загрузчик U-Boot, используемый в системах ARM, не остаётся в памяти после передачи управления Linux, поэтому он не защищает аппаратные компоненты от тепловых или других повреждений в фоновом режиме.
По этой причине, когда клиенты просят нас отключить или заменить Thinux на наших продуктах на базе ARM, мы сообщаем им, что это аннулирует гарантию на оборудование. Эта политика аналогична политике производителей телефонов Android в отношении разблокировки загрузчиков. Чтобы получить пароль root системы, вы должны позвонить или написать нам. Если ваше устройство основано на ARM, мы должны отметить его как лишённое гарантии, прежде чем выдать вам пароль.
Основное отличие Thinux от Ubuntu заключается в том, что Thinux монтирует свою корневую файловую систему в режиме только для чтения. Поэтому вы не можете использовать apt и другие команды для внесения изменений в ОС. Если у вас есть пароль root, вы можете вносить изменения в /etc и /var. Процессы, работающие с привилегиями root, также вносят изменения в /etc и /var, даже если у пользователя нет пароля root. Thinux хранит эти изменения в разделе /overlay, а не в разделе /. Подробнее о файловой системе overlay можно прочитать на kernel.org.
Чтобы внести изменения в /, вы должны сначала перемонтировать файловую систему / в режиме чтения-записи. Выполните следующие команды в терминале:
su - # enter the root password when prompted
umount -l /etc
umount -l /var
mount -o rw,remount /
Теперь вы можете вносить изменения в /. Когда вы закончите, перезагрузите систему, чтобы вернуть корневую файловую систему в режим только для чтения (ro).
Если вы больше не хотите использовать функцию корневой файловой системы только для чтения в Thinux, вы можете отключить её навсегда, внеся следующие изменения в /etc/fstab. Сначала лениво размонтируйте /etc, как показано в предыдущем блоке кода. Типичный файл /etc/fstab выглядит так:
proc /proc proc defaults 0 0
LABEL=thinux / ext4 defaults,ro,noatime 0 1
LABEL=data /overlay data defaults,noatime 0 2
mount_over /etc over defaults,x-systemd.requires-mounts-for=/overlay 0 0
mount_over /var over defaults,x-systemd.requires-mounts-for=/overlay 0 0
mount_over /home over defaults,x-systemd.requires-mounts-for=/overlay 0 0
mount_over /tmp over defaults,x-systemd.requires-mounts-for=/overlay 0 0
/overlay/swapfile swap swap pri=-1,x-systemd.requires-mounts-for=/overlay 0 0
Измените его так, чтобы он выглядел следующим образом:
proc /proc proc defaults 0 0
LABEL=thinux / ext4 defaults,rw,noatime 0 1
LABEL=data /overlay data defaults,noatime 0 2
#mount_over /etc over defaults,x-systemd.requires-mounts-for=/overlay 0 0
#mount_over /var over defaults,x-systemd.requires-mounts-for=/overlay 0 0
mount_over /home over defaults,x-systemd.requires-mounts-for=/overlay 0 0
mount_over /tmp over defaults,x-systemd.requires-mounts-for=/overlay 0 0
/overlay/swapfile swap swap pri=-1,x-systemd.requires-mounts-for=/overlay 0 0
Мы используем корневую файловую систему только для чтения по следующим причинам. Более 99% наших клиентов не нуждаются в установке нового программного обеспечения на свои компьютеры. Они используют свои компьютеры как тонкие клиенты или облачные компьютеры и выполняют большую часть своей работы в клиенте RDP или веб-браузере. Предустановленного программного обеспечения, такого как LibreOffice, достаточно для их работы. Вместо обновления отдельных пакетов с помощью apt мы обновляем всю корневую файловую систему сразу, как единый бинарный образ. Другие встраиваемые операционные системы, такие как Android и iOS, обновляются аналогичным образом (хотя у них есть приложения, а у Thinux — нет). Это позволяет нам тщательно тестировать каждое обновление на нашем собственном оборудовании перед выпуском и гарантировать, что все изменения и обновлённые приложения в обновлении хорошо работают вместе. Это также предотвращает превращение компьютера пользователя в неработоспособный при прерывании обновления apt или dpkg, поскольку наша система обновления безопасно обрабатывает внезапные отключения питания.