Thinux에서 변경 사항 적용하기

![이미지](/s/image/making-changes-in-thinux/making-changes-in-thinux.webp)

당사의 Neo 및 Micro 제품군에는 Thinux 임베디드 리눅스 운영 체제가 사전 설치되어 있습니다.

Thinux는 Ubuntu Linux를 기반으로 합니다. 이 글을 작성하는 시점에서 Micro 5에서는 Ubuntu 20.04.4 LTS를, Micro 6에서는 Ubuntu 22.04.1을 기반으로 합니다. 그러나 Thinux는 몇 가지 중요한 측면에서 Ubuntu와 다릅니다. 첫째, 업스트림 저장소에서 제공되지 않는 당사 하드웨어 전용 드라이버를 포함합니다. 또한 하드웨어를 손상으로부터 보호하는 시스템 서비스도 포함합니다. 이는 BIOS가 있는 PC에 익숙한 사람들에게는 특이하게 보일 수 있습니다. Intel 및 AMD 프로세서에는 내장 열 보호 기능이 있습니다: 과열에 가까워지면 클럭 속도를 줄이고 일부 코어를 끕니다. 최악의 경우, 프로세서와 BIOS가 손상을 방지하기 위해 컴퓨터의 전원을 갑자기 차단합니다. ARM 프로세서는 아직 이 수준의 보호 기능을 제공하지 않습니다. ARM 시스템에서 사용되는 U-Boot 부트로더는 Linux에 제어를 넘긴 후 메모리에 남아 있지 않으므로, 백그라운드에서 열 또는 기타 손상으로부터 하드웨어 구성 요소를 보호하지 않습니다.

이러한 이유로 고객이 ARM 기반 제품에서 Thinux를 비활성화하거나 교체해 달라고 요청하면, 하드웨어 보증이 무효화된다는 점을 알려드립니다. 이 정책은 부트로더 잠금 해제에 대한 Android 휴대폰 제조사의 정책과 유사합니다. 시스템 root 비밀번호를 얻으려면 전화하거나 저희에게 글을 작성하셔야 합니다. 기기가 ARM 기반인 경우, 비밀번호를 제공하기 전에 보증 무효로 표시해야 합니다.

Thinux와 Ubuntu의 주요 차이점은 Thinux가 루트 파일 시스템을 읽기 전용으로 마운트한다는 것입니다. 따라서 apt 및 기타 명령을 사용하여 OS를 변경할 수 없습니다. root 비밀번호가 있으면 /etc 및 /var를 변경할 수 있습니다. root 권한으로 실행되는 프로세스도 사용자가 root 비밀번호를 가지고 있지 않더라도 /etc 및 /var를 변경합니다. Thinux는 이러한 변경 사항을 / 파티션이 아닌 /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 업그레이드가 중단될 때 사용자의 컴퓨터를 사용할 수 없게 되는 것을 방지합니다. 당사의 업데이트 시스템은 갑작스러운 전원 차단을 안전하게 처리하기 때문입니다.