Thinuxでの変更

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

当社のNeoおよびMicroシリーズ製品には、当社のThinux Embedded Linuxオペレーティングシステムがプリインストールされています。

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 - # プロンプトが表示されたらrootパスワードを入力
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クライアントまたはWebブラウザで行います。LibreOfficeなどのプリインストールされたソフトウェアは、彼らの作業に十分です。aptで個別のパッケージを更新する代わりに、ルートファイルシステム全体を単一のバイナリイメージとして一度にアップグレードします。AndroidやiOSなどの他の組み込みオペレーティングシステムも同様の方法で更新します(ただし、它们にはアプリがあり、Thinuxにはありません)。これにより、リリース前に各アップデートを自社のハードウェアで徹底的にテストし、アップデート内のすべての変更と更新されたアプリケーションが互いにうまく連携することを確認できます。また、aptまたはdpkgのアップグレードが中断された場合にユーザーのコンピュータが使用できなくなることを防ぎます。当社のアップデートシステムは突然の電源オフを安全に処理します。