bokumin.org

Github

NetBSDを32bit版ノートPCで試す(ASUSE EeePC)

Installing NetBSD on an old laptop (Asus EeePC 1001px)

はじめに

2025年12月にリリースされたFreeBSD 15で32bit版(i386)のサポートが正式に終了し、レガシーなハードウェアが開発ターゲットから外れる中「32bitの古いPCをガチで軽量かつガチでシンプルに動かすならどこへ行くべきか?」と考えた結果、NetBSDに辿り着きました。
今回は、このNetBSDを古い32bit PCにインストールする方法や、おまけに日本語GUI環境を構築するまでの記録を残します。

構築環境

今回NetBSDをインストールして検証するのは、一世を風靡したネットブック「ASUS Eee PC」です。
現代のWebブラウジングや重量級OSには厳しいスペックですが、軽量かつシンプルなNetBSDであれば、十分に実用的な端末として蘇るのではないかと期待しています。

FreeBSDなど他OSでは32bit(i386)サポートが縮小傾向にありますが、NetBSDは公式にサポートを継続しており、このクラスのハードウェアでも快適に動作します。

  • PC: ASUS Eee PC (32bit版)
  • CPU: Intel Atom (i386アーキテクチャ)
  • Memory: 2GB
  • Storage: HDD/SSD
  • OS: NetBSD 10.1 (i386)

以下インストール手順をまとめました。


インストールメディアの作成

まず、NetBSDのi386向けポートページからUSB用のイメージをダウンロードします。

ダウンロードしたら、ddコマンドでUSBメモリ等のメディアに書き込みます。Windowsの場合はbalenaEtcherなどを使うと簡単です。

Linux/Macでの作成例:

# gzipのまま書き込む場合
zcat NetBSD-10.1-i386-install.img.gz | sudo dd of=/dev/sdX bs=1M status=progress

# 解凍してから書き込む場合
gzip -d NetBSD-10.1-i386-install.img.gz
sudo dd if=NetBSD-10.1-i386.img of=/dev/sdx bs=4M status=progress conv=fsync

conv=fsync は書き込み終了後、バッファに残ったデータをディスクに完全に同期させるオプションとなっています。

書き込みが終わったら念の為 sync してから抜きます。

sync

インストール手順

USBからブートし、インストーラー(sysinst)に従って進めていきます。

  1. 言語とキーボード:
    • English (言語)→Japanese (日本語キーボード)
  2. Install System: Install NetBSD to hardDisk を選択。
  3. Available Disks: wd0 (通常のHDD/SSD) を選択。「This is correct geometry」で進みます。
  4. パーティション: 今回はNetBSD単独利用なので Use the entire disk を選択します。

パーティション分割の目安

自動設定でも良いですが、手動で切る場合の目安は以下の通り。

  • /(Root): 4GB程度(インストーラー提示の4418等でOK)
  • swap: メモリの2倍程度(2039等)
  • mnt (tmpfs): メモリが少ないPCなら「No」にして、パーティションとして /tmp を1GB程度作成。メモリが十分ならtmpfsでOK。
    ※使い方にもよりますが、基本遊ぶぐらいならデフォルトでいいと思います。
  • /var: 4GB〜8GB
  • /usr: 30GB〜40GB(ここにアプリやソースが入ります)
  • /home: 残り全て

LVMを利用して柔軟に管理したい場合は、LVM PVを「残り全て」で確保し、後から論理ボリュームを切るのも手です。
(例: /usr 15GB, /var 2GB, /home 10GB とし、残りは未割り当てにしておく等)

システム設定

  • Installation type: Minimal installation を選択し、a (install image) を選びます。
  • Root password: 忘れないように設定。
  • 乱数生成: 「暗号化鍵生成のためのランダムデータが足りない」と言われたら、キーボードを適当に叩いてエントロピーを稼ぎます。
  • ネットワーク: ここではNameServerだけ 8.8.8.8 等に設定しておきます。
  • TimeZone: Asia/Tokyo
  • その他サービス:
    • ntpd: 時刻合わせ。今回はNo。
    • mdnsd: Multicast DNS。今回はNo。
    • xdm: グラフィカルログイン。ドライバ周りが不安なので最初はNo。
    • cgd, lvm, raidframe: 学習用やシンプル構成ならNoでOK。

最後に一般ユーザーを作成(Add a User)して、再起動します。


インストール後の初期設定

再起動後、rootでログインします。

ネットワークの手動設定

インストール時にDHCP等で設定していない場合、手動で設定します。
(例: インターフェース名が alc0 の場合)

# 一時的な設定
ifconfig alc0 192.168.1.20 netmask 255.255.255.0
route add default 192.168.1.1

恒久的に設定を残す場合は、設定ファイルに記述します。

echo "192.168.1.20 netmask 255.255.255.0" > /etc/ifconfig.alc0
echo 'defaultroute="192.168.1.1"' >> /etc/rc.conf 
echo "nameserver 8.8.8.8" > /etc/resolv.conf

パッケージ管理システムの準備 (pkgsrc/pkgin)

NetBSDでは pkg_addpkgin を使います。まずはパスを通します。

export PKG_PATH="http://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/$(uname -p)/$(uname -r | cut -d_ -f1)/All"

SSL証明書のインストール

これがないと gitcurl がHTTPSエラーで動きません。NetBSDはデフォルトでルート証明書を持っていません。

pkg_add mozilla-rootcerts
mozilla-rootcerts install

便利なパッケージ管理ツール pkgin を入れます(Linuxのaptやyumのような感覚で使えます)。

pkg_add pkgin
# データベース更新
pkgin update

基本ツールのインストール

# エディタ、シェルなど
pkgin install vim bash bash-completion

# 開発・運用ツール
pkgin install git curl wget tmux htop tree

私はLinuxやFreeBSDではsudoを使っているのですが、今回は少しでも軽量したいがためにdoasをインストールしました。

pkgin install doas

doas の設定を編集します。/usr/pkg/etc/doas.conf)を作成して、以下を記述してください。

permit persist :wheel

おまけ GUI環境 (X Window System) の構築

インストール時に「Minimal」を選んだ場合、Xが入っていません。後から追加する場合は、公式のバイナリセットを取得して展開します。

# 必要なセットをダウンロード
ftp https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/i386/binary/sets/xbase.tgz
ftp https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/i386/binary/sets/xfont.tgz
ftp https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/i386/binary/sets/xserver.tgz
ftp https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/i386/binary/sets/xetc.tgz

# ルートディレクトリに展開
tar -zxpf xetc.tgz -C /
tar -zxpf xbase.tgz -C /
tar -zxpf xfont.tgz -C /
tar -zxpf xserver.tgz -C /

# デフォルトの設定ファイルをコピー
cp /etc/X11/xxinit/xinitrc ~.xinitrc

軽量ブラウザの netsurf も入れておきましょう。

doas pkgin install netsurf

日本語入力環境の整備

軽量かつ安定している uim + anthy の組み合わせを採用します。

doas pkgin install uim uim-anthy vlgothic-ttf
  • uim: 入力メソッドフレームワーク
  • uim-anthy: かな漢字変換エンジン
  • vlgothic-ttf: 日本語フォント

.xinitrc の設定

startx した時にこれらが読み込まれるよう、ホームディレクトリの .xinitrc に記述します。
※exec ctwmの前に記述するようにしてください

#!/bin/sh

# 環境変数の設定
export LANG=ja_JP.UTF-8
export LC_ALL=ja_JP.UTF-8

# 入力メソッドの指定
export XMODIFIERS=@im=uim
export GTK_IM_MODULE=uim
export QT_IM_MODULE=uim

# uimのバックグラウンド起動
uim-xim & 

# ツールバーの表示
uim-toolbar-gtk &

これで startx すれば、古き良き32bitマシンでもサクサク動く日本語NetBSD環境の完成です。
自分のサイトをNetSurfで表示させてみましたが、CSSが限定されているため、ちょっとデザインが崩れてしまいましたね。

まとめ

個人的にNetBSDは、FreeBSDの親戚ぐらいにしか思っていなかったのですが、実際に触ってみると、バックグラウンドで知らない謎のプロセスが動いていないクリーンさが非常に心地よいOSでした。32bit版のメモリ2GBとは思えない軽量具合です。
FreeBSDでも同じようなことを言っていたと思いますが・・気になった方は以下の記事を参照してみてください。

「Of course it runs NetBSD」というミームや、「トースターからスーパーコンピュータまで」というスローガンの通り、移植性の高さはOSで一番で、家にある古いiPodなどにNetBSDを動かすこともできるみたいなので、また今度遊んでみようかなと思います。

以下、個人的に一番いいなと思った長所です(今までに散々言われていることかもですが)。

NetBSDのここが良い

個人的に気に入っているのがファイルシステム階層の美しさです。

  • OS本体: /bin, /sbin, /usr/bin など(NetBSDプロジェクトが責任を持ってメンテナンスしている領域)
  • 追加アプリ: /usr/pkg (pkgsrcでユーザーが後から入れたもの)

Linuxなどではこれらが混ざってごちゃごちゃになりがちですが、NetBSDは完全に分かれているため、システム管理が非常に楽です。

気になった方がいれば古いハードウェアを捨ててしまう前に、NetBSDで遊んでみるのもいいかもしれないです。
誰かの参考になれば幸いです。

おわり

以下、参考にしたリンクです。大変助かりました。

参考公式リンク

NetBSD Project(https://www.netbsd.org/)
NetBSD Manual Pages(https://man.netbsd.org)
NetBSD/i386 Frequently Asked Questions(https://www.netbsd.org/ports/i386/faq.html)
The pkgsrc guide(https://www.netbsd.org/docs/pkgsrc/)

参考にした記事

NetBSDでの日本語環境の構築(https://blog.htkyama.org/netbsd-japanese)
NetBSD実験所(http://kapper1224.sakura.ne.jp/UNIX33.html)
NetBSDで遊ぼうのこーな(https://legacyos.ichmy.0t0.jp/netbsd/)