シンクライアントを買いましたのでその話

どうも、ご無沙汰しております、ばりっぴです。メインマシンが壊れいろいろ難儀しておりました。

定額給付金が振り込まれたのでニューマシンを!と思ったのですが、その前によりみちしてhttp://www.fmworld.net/biz/thinclient/1704/s720n/spec.htmlこのような物をヤフオクで買ってみました。

富士通が出していたシンクライアントです。シンクライアントのくせに希望小売価格が6万もする。それが3年経ってヤフオクに流れてくると送料込み3150円に。やってみて「あかんな」となったのでしょう。

昔、LTSP(Linux Terminal Server Project)でノートパソコンをシンクライアントにできないかと思っていろいろやってみたのですがその時は上手く行かず…。ということがありました。

今回は微妙ながらも上手く行ったので記録として残しておこうと思います。

サーバー環境としてはUbuntu20.04です。

まずppaを登録。

1
2
# add-apt-repository ppa:ltsp
# apt update

必要なソフトウェアを入れていきます。gpasswdはadministratorを管理者にしたいユーザ名を入れてください。

1
2
3
# 
apt install --install-recommends ltsp ltsp-binaries dnsmasq nfs-kernel-server openssh-server squashfs-tools ethtool net-tools epoptes
# gpasswd -a administrator epoptes

私の環境ではisc-dhcp-serverが動いているので

1
2
# ltsp dnsmasq --proxy-dhcp=0 --real-dhcp=0
# vim /etc/dhcp/dhcpd.conf

として、設定内容としましては、適宜そちらのネットワーク事情に合わせていただければ、と思いますが、

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
option domain-name-servers 192.168.1.1;
default-lease-time 600;
max-lease-time 7200;
ddns-update-style none;
authoritative;
log-facility local7;
option space ipxe;
option ipxe-encap-opts code 175 = encapsulate ipxe;
option ipxe.menu code 39 = unsigned integer 8;
option ipxe.no-pxedhcp code 176 = unsigned integer 8;
option arch code 93 = unsigned integer 16;
# This is the LTSP subnet declaration
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.20 192.168.1.200;
option subnet-mask 255.255.255.0;
option ipxe.no-pxedhcp 1;
option routers 192.168.1.1;
option domain-name-servers 192.168.1.1;
# On single-NIC setups, usually routers != next-server (=TFTP server)
next-server 192.168.1.250;
if exists ipxe.menu {
filename "ltsp/ltsp.ipxe";
} elsif option arch = 00:00 {
filename "ltsp/undionly.kpxe";
} elsif option arch = 00:07 {
filename "ltsp/snponly.efi";
} elsif option arch = 00:09 {
filename "ltsp/snponly.efi";
} else {
filename "ltsp/unmatched-client";
}
}

としました。そして本来であれば

1
# ltsp image /

として、シンクライアント用のイメージを作るのですが、このイメージだとうまく起動しませんでした。ので、

1
2
3
4
5
# cd /srv/ltsp/images
# wget
http://cdimage.ubuntulinux.jp/releases/20.04/ubuntu-ja-20.04-desktop-amd64.iso
# mv ubuntu-ja-20.04-desktop-amd64.iso ubuntu2004.img
# ltsp kernel ubuntu2004

とし、imageファイルから起動に必要なファイルを取り出します。そして

1
2
3
4
# ltsp ipxe
# ltsp nfs
# ltsp initrd
# ufw disable

とします。ufwをdisableにしたのはnfsのポートとtftpのポートを開けただけではうまくいかなかったのでいっそのこと!ということで。

クライアント側はiPXE側の問題もあり、うまく立ち上がらなかったのでその辺に転がっているUSBメモリに最新のiPXEローダーをインストールします。BIOS設定もUSBブートを有効にします。

これで一通り準備は完了で、あとはシンクライアントにUSBスティックをさし、起動するだけです。

が、起動しても英語版のままだったり、時間がUTCで表示されたりします。設定すればいいのですが、再起動すると元に戻ります。シンクライアントならではですね。というかシンクライアントの正常な動作と言えるでしょう。

ちなみにこのシンクライアントには16GBのmSATAの記録装置がささっていて、Ubuntuくらいなら入るし、遅いながらもつかえたりはします。

このシンクライアントに入っているイメージをなんとかすればいいのかな…。

と書いたのでやってみました。シンクライアント上で、

1
# ddrescue /dev/sda /path/to/usbmemory/thin.img

とし、サーバー側で

1
2
3
4
5
# sudo cp /path/to/usbmemory/thin.img /srv/ltsp/images/.
# ltsp kernel thin
# ltsp ipxe
# ltsp nfs
# ltsp initrd

で、シンクラ起動。メニューでthinを選べば起動します。

といったところで現場からは以上です。