2016年に発売されたRaspberry Pi 3B。登場から10年が経過した現在ではRaspberry Pi 4や5といった後継機種が登場し、性能面では大きな差がついている。CPU性能やメモリ容量やネットワーク機能など、最新モデルと比較すると見劣りする点は少なくない。
だからといってRaspberry Pi 3Bは役目を終えたわけではないと考えている。Linuxには軽量で省リソースなディストリビューションが少なからず存在し、それらを活用することで古いハードウェアでも十分に実用的なサーバや小規模システムとして運用することが出来るのではなかろうか...と言う事で、今回は発売開始から10年を迎えたRaspberry Pi 3Bに軽量Linuxディストリビューションのうちの1つと言われているAlpine Linuxを導入し、家庭内で利用するファイルサーバとして運用を始めた。
古いRaspberry Piの活用について
2016年に複数台のRaspberry Pi 3Bを購入し、クラスタ構成を組んでなんちゃってスパコンを構築し遊んだ。それ以降は年に数回触れる事があったものの箱の中にしまっている状態が殆どだった。
販売開始となった2016年当時はAmazonにて6,000円以内で購入する事が出来た。今となっては2世代も古い機種であるにも関わらず8,000円代半ばまで値上がりしている。2026年5月現在の最新版であるRaspberry Pi 5はRAMが1GBな廉価版は8000円台で入手可能だが、2GB以降はなかなか手を出しづらい価格帯となってしまった。
そこで押し入れの中で眠り続けていたRaspberry Pi 3Bを引っ張り出し、軽量なLinuxディストリビューションであるAlpine Linuxを導入。Raspberry Pi 3Bの有効活用を目論んだ。
Raspberry Pi 3Bの仕様
以下は今回の記事の対象であるRaspberry Pi 3Bの大まかな仕様である。
今となっては上位機種であるRaspberry Pi 4や5と比較すると物足りなさを感じるスペックであるが、Alpine Linuxはそんな事は物ともせず軽快に動作する。
・型番:Raspberry Pi3 Model B Element14版
・CPU:Broadcom BCM2837 1.2GHz 4コア ARMv8 Cortex-A53
・RAM:1GB LPDDR2 SDRAM
・LANポート:RJ-45 10BASE-T / 100BASE-TX
・無線LAN:IEEE 802.11b/g/n
・Bluetooth:Bluetooth 4.1(BLE対応)
・USBポート:USB2.0 Standard A x4
・ストレージ:MicroSDカードスロット x1(MicroSDカード 32GB使用)
Raspberry Piで動作するAlpine Linuxで何が出来る?
家庭内向けの各種サーバ(ファイルサーバ、Webサーバ、家庭内のネットワークの監視...)の構築および運用。
開発に関しては微妙。標準で導入されているライブラリやシェルがRHELやUbuntu等のような一般的なLinuxディストリビューリョンと異なるため。ただしmuslやBusyBoxで何かやりたいというのであれば話は別。
Alpine Linuxの導入の準備
1.Alpine Linuxのイメージファイルのダウンロード
VirtualBoxやLimbo PC Emulatorといった仮想環境ではあるが過去に触れた事があるという理由で、Raspberry Pi 3Bに導入するするOSとしてAlpine Linuxを選んだ。
以下のページにアクセスし、RASPBERRY PI欄内のaarch64版(2つあるうちの.tar.gzの方)をダウンロード。
今回は当記事の公開時の最新版である alpine-rpi-3.23.4-aarch64.tar.gz をダウンロードした。
https://www.alpinelinux.org/downloads/
2.MicroSDの準備
ドライブレコーダーや監視カメラで使用される、書き換え耐久性が高いHigh Endurance版のMicroSDを使用。1週間で12時間程度の運用につき常時電源ONという環境ではない為、年単位での長期保存に期待。
MicroSDの初期化は、Raspberry Pi ImagerのWindows版のものを使用。
Micro SDにAlpine Linuxを入れる前に、Windows端末にてMicroSDカードをFAT32でフォーマットする。
自分の環境(macOS 26.5/MacBook Pro 2020 Intel版)の場合、macOS環境ではRaspberry Pi ImagerでMicroSDのフォーマットに長時間を要する、macOS環境ではMicroSDを正常に認識出来ない等の事象が度々発生した事から、MicroSDのフォーマットはWindows欄末で実施している。
https://www.amazon.co.jp/dp/B0B21FFXQ9/ SanDisk MicroSDカード 32GB
https://www.raspberrypi.com/software/ Raspberry Pi Imager
3.Alpine LinuxをMicro SDカードに保存
続いてalpine-rpi-3.23.4-aarch64.tar.gz を展開し、展開して出てきたフォルダやファイル全て(apksフォルダからstart4.elfまで)を選択しコピー、MicroSDカードの中にペーストする。マウスカーソルで全選択しそのまま貼り付けで良い。
そのMicroSDカードをRaspberry Pi 3BのMicroSDスロットに挿入。
続いて、Raspberry Pi 3Bに外付けモニター、USBキーボード、LANケーブルを接続し、電源を投入。
モニターにAlpine Linuxの起動ログが出力される事を確認する。
Alpine Linuxのインストール
1.Alpine Linuxにログイン
Raspberry Pi 3Bに電源投入後、Alpine Linuxの起動ログが出力さる。
起動ログの出力開始から約20秒後、モニターにログインプロンプトが出力される。
OpenRC 0.63 is starting up Linux 6.12.81-0-rpi (aarch64) * /proc is already mounted * Mounting /run ... * /run/openrc: creating directory * /run/lock: creating directory * /run/lock: correcting owner : 省略 : * Starting busybox syslog ... * WARNING: clock skew detected! * Starring firstboot ... Welcome to Alpine Linux 3.23 Kernel 6.12.81-0-rpi on aarch64 (/dev/tty1) localhost login:
ログインプロンプトが出力されたら、ユーザ名 root を入力しAlpine Linuxにログインする。
この段階ではユーザ名rootを入力しEnterキーを叩くとパスワード無しでログイン出来る。
続いて setup-alpine コマンドを叩き、Alpine Linuxのセットアップに進む。
localhost login: root Welcome to Alpine! The Alpine Wiki contains a large amount of how-to guides and general information about administrating Alpine systems. See <https://wiki.alpinelinux.org/>. You can setup the system with the system with the command: setup-alpine You may change this message by editing /etc/motd. localhost:~# setup-alpine
2.キーマップの設定
最初に、Alpine Linuxのインストール時とそれ以降に使用するキーボードのレイアウトを設定する。
自分の環境では日本語109配列(ただしSSHログインの際はMacBookの日本語キーボード)を使用している為、jp を入力しEnterキーを叩く。
続けて出力される Select variant (or 'abort'): も jp を入力する。
ALPINE LINUX INSTALL ---------------------- Keymap -------- af al an ara at az ba bd be bg br brai by ca ch... ir is it jp ke kg kr kz la latam lk lt lv ma md... tn tr tw ua us uz vn Select keyboard layout: [none] jp jp-OADG109A jp-dvorak jp-kana jp-mac jp Select variant (or 'abort'): jp * Setting keymap ... [ ok ]
3.ホスト名の設定
Alpine Linuxのホスト名をここで設定する。
当環境のホスト名はrpsv99である為、rpsv99を入力しEnterキーを叩く。
Hostname ---------- Enter system hostname (fully qualified form, e.g. 'foo.example.org') [localhost] rpsv99
4.ネットワークの設定
続いてAlpine Linuxが使用するIPアドレスを設定する。当環境では有線LANを使用し無線LANは使用しない。
有線LANの設定では[eth0]でEnterキーを叩く。
当環境ではeth0にアサインするIPアドレスはAlpine Linuxのインストール後に設定する為、ここではdhcpのままでEnterキーを叩く。
続けて無線LANの設定に進むが、無線LANは使用しない為 done を入力しEnterキーを叩く。
その後に出力されるログの中で、IPアドレスが自動でアサインされる事を確認する。
Interface ----------- Available interfaces are: eth0 wlan0. Enter '?' for help on bridges, bonding and vlans. Which one do you want to initialize? (or '?' or 'done') [eth0] Ip address for eth0? (or 'dhcp', 'none', '?') [dhcp] Available interface are: wlan0. Enter '?' for help on bridges, bonding and vlans. Which one do you want to initialize? (or '?' or 'done') [wlan0] done Do you want to do any manual network configuration? (y/n) [n] udhcpc: started, v1.37.0 udhcpc: broadcasting discover udhcpc: broadcasting select for 192.168.3.18, server 192.168.3.1 udhcpc: lease of 192.168.3.18 obtained from 192.168.3.1, lease time 86400
5.rootアカウントのパスワード設定
ここでrootアカウントのパスワードを設定する。
Root Password --------------- Changing password for root New password: Retype password: passwd: password for root changed by root
6.タイムゾーンの設定
日本国内での運用の為、Japanを入力しEnterキーを叩く。
この後「WARNING: clock skew detected!」が出力されシステムクロックのずれが指摘されるが、Alpine Linuxのインストール中につきどうしようも出来ないため、今の段階ではこのWARNINGを放置しても問題無い。
Timezone ---------- Africa/ Austorallia/ Cuba Etc/ GMT+0 Iceland Kwajalein ... America/ Brazil/ EET Europe/ GMT-0 Indian/ Libya ... Antarctica/ CET EST Factory GMT0 Iran MET ... Arctic/ CST6CDT EST5EDT GB Greenwich Israel MST ... Asia/ Canada/ Egypt GB-Eire HST Jamaica MST7MDT ... Atlantic/ Chile/ Eire GMT HongKong Japan Mexico/ ... Which timezone are you in? (for '?' or 'none') [UTC] Japan * WARNING: clock skew detected! * Seeding random number generator ... * WARNING: clock skew detected! * Starting busybox acpid ... * Starting busybox crond ...
7.プロキシの設定
当環境ではプロキシを使用しない為、noneのままEnterキーを叩き、次の設定に進む。
Proxy ------- HTTP/FTP proxy URL? (e.g. 'http://proxy:8080', or 'none') [none]
8.NTPの設定
NTPクライアントで使用するツールをBusyBox、OpenTPD、Chrony、未使用の中から選択する。
自分の環境ではchronyを使用する為、[chrony]のままEnterキーを叩く。
するとNTPクライアントが起動する。
Network Time Protocol
-----------------------
Tue Nov 18 06:29:32 JST 2025
Which NTP client to run? ('busybox', 'opentpd', 'chrony' or 'none') [chrony]
ntpd: setting time to 2026-05-30 20:26:45.476425 (offset +16715158.455249s)
* service ntpd added to runlevel default
* Starting busybox ntpd ...
9.APKリポジトリの設定
APKパッケージのダウンロード元を選択する。
管理者によるURLの選択や、一番速い所のURLなどが選択可能だが、当環境では候補として出力されている[1]のままEnterキーを叩く。
ここでsキーを叩くと、各国にあるミラーサイトが出力される。
ちなみに[1]は各国にあるミラーサイトではなく、Alpine Linuxプロジェクトが管理しているサイトである。
APK Mirror ------------ (f) Find and use fastest mirror (s) Show mirrorlist (r) Use random mirror (e) Edit /etc/apk/repositories with text editor (skip) Skip setting up apk repositories Enter mirror number or URL: [1] Updating repository indexes... done.
各国のミラーサイトに関しては以下のリンク先を参照。日本国内には4箇所ある事が分かる。
https://mirrors.alpinelinux.org/
10.ユーザアカウントの設定
システムを利用するユーザのアカウントを作成する。
ユーザアカウントの作成のタイミングはお好み次第だが、自分の環境ではアカウント作成はAlpine Linuxのインストール後に実行する為、[no]のままEnterキーを叩き、当手順はスキップする。
続いてAlpine Linux内で動作するSSHサーバをOpenSSH、DropBear、未使用の中から選択する。
当環境ではOpenSSHを使用する為、[openssh]のままEnterキーを叩く。
rootアカウントのsshログインを許可するか聞かれるので、デフォルト設定の[prohibit-password]のままEnterキーを叩く。
続いてSSHキーの設定に進むが、当環境では使用しない為[none]のままEnterキーを叩く。
User
------
Setup a user? (enter a lower-case loginname, or 'no') [no]
Which ssh server? ('openssh' or 'dropbear' or 'none') [openssh]
Allow root ssh login? ('?' for help) [prohibit-password]
Enter ssh key or URL for root (or 'none') [none]
* service sshd added to runlevel default
* Caching service dependencies ...
ssh-keygen: generating new host keys: RSA ECDSA ED25519
* Starting sshd ...
11.Alpine Linuxのシステムの保存先のディスクの設定とインストール
当環境では、Raspberry Piで動作するAlpine Linuxでよく見かけるディスクレス環境ではなく、一般的なオンプレ環境としてAlpine Linuxを導入する。
No disks available. Try boot media /media/mmcblk0p1? では yキーを叩く。
isoファイルを使ってVirtualBoxやProxmox等のような仮想環境でのインストールに慣れていると、No disks availableなのに yキー叩くのかよと違和感を覚えるところだが、ここでは迷わずyキーである。
Available disks are:に続いて、ディスクの名称と容量が出力される。
続いて、どのディスクを使うか聞いてくるので、認識された mmcblk0 を入力し、Enterキーを叩く。
続いて、ディスクmmcblk0の容量が出力され、用途が聞かれる。出力される容量が実際の容量との間で大きな差分が無い事を確認し、一般的なサーバのように普通にOSをインストールする為、sysを入力する。
最後に、mmcblk0の中身を消去しAlpine Linuxのインストールを進めるか聞かれる。yキーを叩き、Alpine Linuxのインストールを進める。
Disk & Install
----------------
No disks available. Try boot media /media/mmcblk0p1? (y/n) [n] y
* WARNING: you are stopping a sysinit service
* Unmounting /.modloop ...
Available disks are:
mmcblk0 (31.9 GB )
Which disk(s) would you like to use? (or '?' for help or 'none') [none] mmcblk0
The following disk is selected:
mmcblk0 (31.9 GB )
How would you like to use it? ('sys', 'data', 'crypt', 'lvm' or '?' for help) [?] sys
WARNING: opening /media/mmcblko1p/apks/aarch64/APKINDEX.tar.gz: No such file or directory
* /usr/sbin/ntpdate-raspberrypi-bootloader: WARNING: no kernel found
WARNING: The following disk(s) will be erased:
mmcblk0 (31.9 GB )
WAENING: Erase the above disk(s) and continue? (y/n) [n] y
Partition #1 contains a vfat signature.
Partition #2 contains a ext4 signature.
Creating file systems...
mkfs.fat 4.2 (2021-01-31)
Installing system on /dev/mmcblk0p2:
:
省略
:
Installation is complete. Please reboot.
rpsv99:~#
少しの間待つと、Installation is complete. Please reboot.が出力されプロンプトが返ってきた。
ここでrebootコマンドを叩き、ここでAlpine Linuxを再起動させる。
ログインプロンプトが返ってきたら、上記で設定したパスワードを使用しrootアカウントでログインする。
rpsv99:~# rpsv99:~# reboot rpsv99:~# * Stopping sshd: : 省略 : Welcome to Alpine Linux 3.23 Kernel 6.12.81-0-rpi on aarch64 (/dev/tty1) rpsv99 login:
ヘッドレスインストールではなく通常どおりのインストールで完了している事を確認する。
df -hコマンドを叩き、Sizeの全体の合計がMicroSDの容量とほぼ同じである事、
Filesystemの列にて、/dev/mmcblk0p2と/dev/mmcblk0p1が存在している事、
/dev/mmcblk0p2が/を掴んでいる事と/dev/mmcblk0p1が/bootを掴んでいる事を確認する。
rpsv99:~# df -h Filesystem Size Used Available Use% Mounted on devtmpfs 10.0M 0 10.0M 0% /dev shm 453.4M 0 453.4M 0% /dev/shm /dev/mmcblk0p2 28.8G 84.7M 27.2G 0% / tmpfs 181.4M 120.0K 181.3M 0% /run /dev/mmcblk0p1 299.4M 39.9M 259.5M 13% /boot tmpfs 453.4M 0 453.4M 0% /tmp rpsv99:~#
もしMounted onの列にて /media/mmcblk0p1などのように/media/ディレクトリが見えたら通常どおりのインストールは失敗しているので、Raspberry Piの電源を落とし、MicroSDカードの内容を全て削除し、もう一度最初からAlpine Linuxのインストールを実施する。
この後にやること
Alpine Linuxのインストールが正常に完了できたところで、これより初期設定に進む。
1.ユーザアカウントの追加
adduserコマンドでユーザアカウントを作成する。RHELやDebian等のLinuxディストリビューションとは異なり、useraddコマンドは実行出来ない。
ユーザアカウントの作成後、/homeディレクトリ内に新規作成したアカウントのホームディレクトリが作成されている事を確認する。
rpsv99:~# adduser test Changing password for test New password: Retype password: passwd: password for test changed by root rpsv99:~# rpsv99:~# rpsv99:~# ls /home test rpsv99:~#
2.Alpine Linuxのパッケージリポジトリの追加とアップデート
導入したいパッケージを以下にて確認し、導入したいパッケージがcomminutyにて見つかった場合は、/etc/apk/repositoriesファイル内のcomminutyのリポジトリの行頭にあるコメントアウトを外す。
edgeのリポジトリで見つかった場合は、以下の出力例を参照しedgeのリポジトリを追記する。
編集後、apk updateとapk upgradeコマンドを叩き、OSと導入済みのパッケージを更新する。
https://pkgs.alpinelinux.org/packages Alpine Package Filter
rpsv99:~# cat /etc/apk/repositories #/media/mmcblk0p1/apks http://dl-cdn.alpinelinux.org/alpine/v3.23/main http://dl-cdn.alpinelinux.org/alpine/v3.23/community http://dl-cdn.alpinelinux.org/alpine/edge/testing rpsv99:~# rpsv99:~# apk update v3.23.4-318-g6bc1e744a1d [http://dl-cdn.alpinelinux.org/alpine/v3.23/main] v3.23.4-318-g6bc1e744a1d [http://dl-cdn.alpinelinux.org/alpine/v3.23/community] v20260127-10641-g7619f6d99bc [http://dl-cdn.alpinelinux.org/alpine/edge/testing] OK: 34425 distinct packages available rpsv99:~# rpsv99:~# rpsv99:~# apk upgrade : (省略) (初回実行時は、大量のパッケージのアップデートが実行される) : rpsv99:~#
3.パッケージのインストール
エディタやシェル、ファイアウォール、サーバ等、目的に応じてパッケージをインストールする。
自分の環境では、apkコマンドで以下のパッケージをインストールした。
これらのパッケージの設定に関してはGoogleで検索すると多数ヒットする為、当記事内ではパッケージのインストールコマンドおよび各パッケージの設定に関しては割愛する。
・エディタ:Neovim
・シェル:zsh
・パケットフィルタ・ファイアウォール:awall、iptables
・サーバ:samba
・上記を動作させる為に必要なツール:avahi、dbus
・その他:neofetch、rng-tools

当記事の手順を再現させて、もう1台のRaspberry Pi 3BにAlpine Linuxをインストールした。
共有ディレクトリ内にファイルをコピーしたり、デスクトップ上にファイルを戻す等、動作確認を行なった。
当記事はここまで。
その後の流れは前回の記事「東京都内で一番高い場所でサーバを運用してみた」に至る。
https://debslink.hatenadiary.jp/entry/20260521/1779293777 東京都内で一番高い場所でサーバを運用してみた
この後の話。Alpine LinuxのinitシステムはOpenRCが採用されている。OpenRCの動作に興味がある為、OpenRCの開発元であるGentooプロジェクトのサイトにてOpenRCの仕組みや動作について勉強する。
Alpine Linux関連の情報、参照サイトなど
https://www.alpinelinux.org/ Alpine Linux
https://www.alpinelinux.org/releases/ RELEASE BRANCHIES
https://pkgs.alpinelinux.org/packages Packege Index
https://security.alpinelinux.org/ Security Issue Tracker
https://www.alpinelinux.org/downloads/ Alpine Linuxのダウンロードサイト
https://www.alpinelinux.org/releases/ Alpine Linuxのリリースノート
https://wiki.gentoo.org/wiki/OpenRC/ja OpenRC - Gentoo Wiki
https://www.amazon.co.jp/dp/B01CD5VC92/ Raspberry Pi 3B
https://www.amazon.co.jp/dp/B0CCD2W5VG/ ElectroCookie Raspberry Pi 3 アルミミニタワーケース
https://www.amazon.co.jp/dp/B08Z37BRFK/ kksmart モバイルモニター 15.6インチ
https://www.amazon.co.jp/dp/B01K3EGFXI/ サンワサプライ USBキーボード 日本語109A配列
https://www.amazon.co.jp/dp/B09T3C758Q/ Raspberry Pi 3B電源 5V 3A スイッチ付き
https://www.amazon.co.jp/dp/B0B21FFXQ9/ SanDisk MicroSDカード
Raspberry Pi関連の記事
https://debslink.hatenadiary.jp/entry/20160724/1469358050 Raspberry Pi3でスパコン遊び
https://debslink.hatenadiary.jp/entry/20160801/1469980976 Raspberry Pi3でスパコン遊び その2
https://debslink.hatenadiary.jp/entry/20160827/1472285472 Raspberry Pi3でスパコン遊び その3
https://debslink.hatenadiary.jp/entry/20160902/1472819758 Raspberry Pi3でスパコン遊び その4
https://debslink.hatenadiary.jp/entry/20160922/1474549241 Raspberry Pi3でスパコン遊び その後...
https://debslink.hatenadiary.jp/entry/20231104/1699073616 Raspberry Pi3 Model BにOpenBSDをインストール
https://debslink.hatenadiary.jp/entry/20260102/1767319604 Raspberry Pi 3BにOracle Linux 9をインストールした
https://debslink.hatenadiary.jp/entry/20260117/1768615582 Raspberry Pi 4BにNixOSを導入しファイルサーバを構築した
https://debslink.hatenadiary.jp/entry/20260521/1779293777 東京都内で一番高い場所でサーバを運用してみた
Alpine Linux関連の記事
https://debslink.hatenadiary.jp/entry/20200418/1587204948 AndroidスマホでAlpine Linuxを動かす
https://debslink.hatenadiary.jp/entry/20211024/1635075047 Alpine Linuxの保守用コマンド
https://debslink.hatenadiary.jp/entry/20211228/1640668431 Alpine LinuxでAwallを使ってiptables設定
https://debslink.hatenadiary.jp/entry/20220101/1640973274 Alpine LinuxのFTPで暗号化通信 FTPS編
https://debslink.hatenadiary.jp/entry/20220111/1641903376 Alpine LinuxのFTPで暗号化通信 SFTP編
https://debslink.hatenadiary.jp/entry/20260521/1779293777 東京都内で一番高い場所でサーバを運用してみた
https://debslink.hatenadiary.jp/entry/20260531/1780218046 旧モデルのRaspberry Piの活用 - Alpine Linuxの導入