Fazendo Alterações no Thinux

![Imagem](/s/image/making-changes-in-thinux/making-changes-in-thinux.webp)

Nossas linhas de produtos Neo e Micro vêm com nosso sistema operacional Thinux Embedded Linux pré-instalado.

O Thinux é baseado no Ubuntu Linux. No momento da escrita, ele é baseado no Ubuntu 20.04.4 LTS no Micro 5 e Ubuntu 22.04.1 no Micro 6. No entanto, o Thinux difere do Ubuntu de algumas maneiras significativas. Primeiro, incluímos drivers específicos para nosso hardware que não estão disponíveis nos repositórios upstream. Também incluímos serviços de sistema que protegem o hardware contra danos. Isso pode parecer incomum para pessoas acostumadas com PCs com BIOS. Processadores Intel e AMD têm proteção térmica integrada: eles reduzem sua frequência de clock e desligam alguns núcleos quando se aproximam do superaquecimento. No pior caso, o processador e a BIOS desligam abruptamente o computador para evitar danos. Processadores ARM ainda não fornecem esse nível de proteção. O bootloader U-Boot usado em sistemas ARM não permanece na memória após transferir o controle para o Linux, portanto não protege os componentes de hardware contra danos térmicos ou outros em segundo plano.

Por esse motivo, quando clientes nos pedem para desabilitar ou substituir o Thinux em nossos produtos baseados em ARM, informamos que isso anulará a garantia do hardware. Esta política é semelhante à política dos fabricantes de telefones Android para desbloqueio de bootloaders. Para obter a senha de root do sistema, você deve nos ligar ou escrever. Se seu dispositivo for baseado em ARM, devemos marcá-lo como tendo a garantia anulada antes de lhe darmos a senha.

A principal diferença entre o Thinux e o Ubuntu é que o Thinux monta seu sistema de arquivos raiz como somente leitura. Você, portanto, não pode usar apt e outros comandos para fazer alterações no SO. Se você tiver a senha de root, pode fazer alterações em /etc e /var. Processos que são executados com privilégios de root também fazem alterações em /etc e /var, mesmo quando o usuário não tem a senha de root. O Thinux armazena essas alterações na partição /overlay, não na partição /. Você pode ler mais sobre o sistema de arquivos overlay em kernel.org.

Para fazer alterações em /, você deve primeiro remontar o sistema de arquivos / no modo leitura-escrita. Execute os seguintes comandos em um terminal:

su - # digite a senha de root quando solicitado
umount -l /etc
umount -l /var
mount -o rw,remount /

Agora você pode fazer alterações em /. Quando terminar, reinicie o sistema para retornar o sistema de arquivos raiz ao modo somente leitura (ro).

Se você não quiser mais usar o recurso de raiz somente leitura do Thinux, pode desativá-lo permanentemente fazendo as seguintes alterações em /etc/fstab. Primeiro, desmonte preguiçosamente /etc como mostrado no bloco de código anterior. Um arquivo /etc/fstab típico se parece com isto:

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

Altere-o para ficar assim:

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

Usamos um sistema de arquivos raiz somente leitura pelos seguintes motivos. Mais de 99% dos nossos clientes não precisam instalar novos softwares em seus computadores. Eles usam seus computadores como thin clients ou computadores em nuvem, e fazem a maior parte do trabalho no cliente RDP ou no navegador web. O software pré-instalado, como o LibreOffice, é suficiente para o trabalho deles. Em vez de atualizar pacotes individuais com apt, atualizamos todo o sistema de arquivos raiz de uma vez, como uma única imagem binária. Outros sistemas operacionais embarcados, como Android e iOS, são atualizados de maneira semelhante (embora tenham aplicativos e o Thinux não tenha). Isso nos permite testar cada atualização minuciosamente em nosso próprio hardware antes de lançá-la, e garantir que todas as alterações e aplicativos atualizados na atualização funcionem bem juntos. Também impede que o computador de um usuário se torne inutilizável quando uma atualização apt ou dpkg é interrompida, pois nosso sistema de atualização lida com desligamentos abruptos de forma segura.