VanillaOS 3を試す

イメージ
以前仮想マシンで試したものの、あまり時間が取れず、しっかり使えていなかった。 余っている(テスト用においてある)Thinkpad x390に実際に入れて試してみた。 Vanilla OS ところが、サイトに行ってみると少し前(2026-08-24)にUpdateされており2→3へと2年ぶりの更新。 簡単に言うとイミュータブルなOSで、OS本体の書き換えは基本的にできず、A/Bパターンで起動する必要がある。 Aでインストールしたものは、Bに入れられ、起動時にBを選択するとインストール後の状態で使える仕組み。不具合があればまたAに戻せるというもの。 若干、コマンド類が変わってしまっているらしい。 イミュータブルなOSは、これまでにも試したものの日本語がうまく扱えないなど常用するには結構厳しいものがあった。 とはいえ、時間の経過で様々なアプリケーションがFlatpakやAppImageで出揃ってきたので、今回テストすることにした。 インストーラ自体は小さく、起動用のUSBに書き込んで起動すればOK。 インストール完了後、マシン名やユーザ名を入力することで、環境設定は完了。 基本的にはFlatpakでインストールするのが正しい使い方らしいので、必要そうなものを入れてみた。 vscode Brave Browser LMStudio DBeaver-ce Thunderird Obsidian opencode LibreOffice など・・・ どれも、サクサクと動作して気持ちいい。 日本語環境 さて、問題は日本語環境だが、調べてみるとflatpakにmozcもfcitx5も存在していた。 これんらばと思い、入れてみる。 https://note.kurodigi.com/vanillaos-fcitx5-mozc/ が、vanillaOS2の記事のようだけれども、同じ手順でOKだった。 すばらしい。 いつも使用しているmozcが動作するようになった。 ところが、LMStudioでハマった… flatpak特有の問題 LMStudioはすんなり入り、LMLinkでローカルのAIサーバも使用可能。 で、URLを指定したときにWEBサイトを取りに行かせて、処理させるMCPでハマった。 https://github.com/modelcontextprotocol/servers...

Linuxでthin client

LTSPで苦戦した

LTSP(the Linux Terminal Server Project)というのがあって、要はWindowsのターミナルサーバーと同等なものをLinuxだけで構成するというもの。

この設定は、通常LinuxサーバにNIC2枚刺しで、片側をWAN、もう一方をLANに接続。
LAN側はDHCPサーバとして機能して、さらにネットワークブートサービスを提供するように設定するのが一般的なやり方。

この構成であれば、結構すんなり行くらしい。

でも、普通のLAN構成だと、ルータがDHCPを提供している事が多い。このDHCPを止めてLinuxをDHCPサーバとして設定するというのも、無駄な気がするし、既存のネットワークに接続して、運用という場合にリスクが高くなるので、嫌だな…と思い、別の方法を模索していた。

最終的には上手く行ったのだけれど、約1週間ほど苦戦したのでまとめておこうと思う。

既存のLANに設置する方法

いろいろと調べてみると、proxyDHCPを設置すれば、何とか行けるらしい。

最初にやった方法
pxe-pdhcpというproxyDHCPがあって、これを実行してテストする。
ソースのみの配布なので、公式サイトを参考にビルドする。

ただし、コメントにあるように配布されているソースに一部不具合があるので、修正が必要。(トータル2行の修正)
これでもwarningが1つ出ていたけれど、一応ビルドは成功する。(このソース自体古く、新しいものは出ていないので、少々心配。枯れているなら良いのだけれど…)

ところが、何度設定を見なおして、起動を繰り返しても、うまくbootできない。

様々なオプションを試し、再起動をしても上手くいかず、諦めかけていた。

異なる方法を見つけた
次に、pxe-pdhcpとは別のproxyがあることが判明。実はよく知っているdnsmasqがその機能を実装しているらしい。

これなら、使ったことがあるし、設定も経験がある。

ubuntu forumに記事を見つけたので、その通りにテストする。
親切にも、設定の手順とスクリプトなどもまとめられている。

ところが、この方法だけでは上手くブートしない。

そこで、いろいろとerror logを確認すると、途中までbootプロセスは動いていて、最後のところでbusyboxに落ちていることがわかった。

i386: Client drops into BusyBox」の記事を見て、ヒントを得た。
手動でnbd-serverを再起動してやることで、上手く起動するようになった。

手順まとめ

後で、自分も参考にするために、一連の手順をまとめておこうと思う。
$ sudo apt-get install ltsp-server dnsmasq
※ 一般的には、ltsp-server-standaloneを入れろという記事が多いが、それはDHCPサーバも機能させる場合
$ sudo ltsp-build-client --arch i386
これで、配布用のカーネルイメージを作成する。(--arch i386はintel CPU サーバなら省略可能)
$ (cat <<EOF
ipappend 3
EOF
) | sudo tee -a /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default
要は、defaultの最後にipappend 3を追加するだけ。エディタで編集してもOK

/etc/dnsmasq.d/ltsp.confをエディタ等で作成する。
#
# Dnsmasq running as a proxy DHCP and TFTP server
#
# See: http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html
#
#
# TFTP
#
enable-tftp
tftp-root=/var/lib/tftpboot
#
# DHCP
#
# DHCP proxy on this network
dhcp-range=192.168.0.0,proxy
# Tell PXE clients not to use multicast discovery
# See section 3.2.3.1 in http://tools.ietf.org/html/draft-henry-remote-boot-protocol-00
dhcp-option=vendor:PXEClient,6,2b
# Better support for old or broken DHCP clients
dhcp-no-override
# Enable this for better debugging
#log-dhcp
#
# PXE
#
# Note the file paths are relative to our "tftp-root" and that ".0" will be appended
pxe-prompt="Press F8 for boot menu", 3
pxe-service=x86PC, "Boot from network", /ltsp/i386/pxelinux
pxe-service=x86PC, "Boot from local hard disk"
dhcp-rangeのみ、自分のネットワークに合わせて変更する必要がある。
dnsmasqの設定ファイルを適用するために、サービスを再起動する。
$ sudo service dnsmasq restart
なぜか、これだけでは、再起動が上手くいかなかった。(環境のせいかなぁ)
そこで、このコマンドの代わりに、以下を利用。
$ sudo service dnsmasq stop
$ sudo lsof -i:53
$ sudo kill -9 (上記のプロセス番号)
これで、確実にdnsmasqを殺してから、起動する。
$ sudo service dnsmasq start
さらに、この後次のコマンドが必須だった。(これを見つけるのに苦労した!!)
$ sudo service nbd-server restart 
これで完了。

あとは、クライアントをPXE-Bootさせれば、サーバからイメージを取り込んで起動してくれる。

思ったより、早く起動するし、動作は快適。
これで古いマシンであっても、サクサク動くし、インストール作業も不要になるので、期待大!!

もう少し、ノウハウを集めるためにテストしようと思う。

この方法だと、今まで使用しているUbuntuをLTSPサーバとして利用できるので、環境構築が楽だし、ネットワークの設定を変更しなくて良いのが素敵。

ふ〜、1週間苦戦したのも甲斐があるってもんだ〜。

今思うと、PXE-pdhcpを使っても、最後のnbd-serverを再起動すれば動いたかもしれない…。でも、まぁいいか。


コメント

このブログの人気の投稿

MEGAにも弱点があった?

Ubuntu24.04 でGUIが死んだ

VirtualBoxでUSBを使う方法が分かった!