Raspberry Pi Zero 2 WにAlpine Linuxでsambaサーバー構築
以下の記事の「Raspberry Pi Zero 2 W」版です。
ほぼ同じでいけるだろうと思ったら、ところどころ悩んだので備忘メモ
OSインストール
OSイメージの準備
イメージファイル準備
「Raspberry Pi Zero W」の時は「armhf」を選択すればよかったですが、「Raspberry Pi Zero 2 W」はCPUのARMのバージョンがARMV7になっているため、そちらを選択してダウンロードする必要があります。
作業フォルダ準備
任意の作業フォルダを作成し、そこにダウンロードしたファイルを移動してください。
例:C:/work
SDカードに展開するためのフォルダ準備
作業フォルダに「zw」フォルダを作成してください。
cd C:/work
mkdir zw
イメージファイルの展開
そこにダウンロードした「tar.gz」を展開してください。
Linuxを使用している方や、WSL2を使用している方は以下のコマンドで展開可能です。(以降に記載するコマンドも同様です)
cd /mnt/c/work/
tar xzf alpine-rpi-3.13.0-armhf.tar.gz -C zw
Windowsの方は「7-zip」などで展開して、配置してください。「zw」フォルダ直下は以下のようなフォルダ構造になります。
├─apks
│ └─armv7
├─boot
└─overlays
SDカード準備
「Raspberry Pi」で使用するSDカードをFAT32でフォーマットしてください。以下のツールを使うと良いらしいです。
SD Card Formatter
SDカードのフォーマットが完了したら、「zw」フォルダの中身をSDカードにコピーしてください。(「zw」フォルダごとコピーするのではありません)
電源接続
SDカードを「Raspberry Pi Zero 2 W」に接続し、電源に接続してください。緑色のLEDが点滅していると思いますが、しばらく経つと点灯したままとなります。
前の記事ではヘッドレスインストールとしていましたが、インストール作業もそこまで大変ではなく、ヘッドレスの設定などのほうが面倒なことが多かったので、今回はHDMIやキーボードを接続してセットアップを行いました。
インストール作業
「Raspberry Pi Zero 2 W」が起動すると、まずログインを促されます。
root
と入力してログインしてください。
その後、
setup-alpine
と入力するとセットアップが始まります。
細かな手順は省略しますが、以下のような流れでインストール作業が進みます。
- キーボードレイアウトの設定
- ネットワークの設定(旧版はwifiのドライバのインストールが必要でしたが、デフォルトでもwifiに接続できるようになっています。)
- ssh接続許可(デフォルトのままだとrootで接続できないので、root接続できるように「yes」を選択してください。
- どのディスクにインストールするか選択
- noneを選択してください。ディスクレスモードになります。
- ディスクレスモードだと、RAM上で処理を行うようになりSDカードへの書き込みが少なくなります。また、個人的にはデータが壊れることが減ると思っています。
で、ここでインストールが開始するわけですが、自分の場合は失敗しました。
ルーターの設定なのか、wgetで必要なソフトがダウンロードできないようなエラーになります。
ipv6が使われているのが原因のようだったので、setupを「Ctrl+C」で停止させて以下のコマンドを実行してipv6を無効化しました。
localhost:~# sysctl -w net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.all.disable_ipv6 = 1
localhost:~# sysctl -w net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6 = 1
localhost:~# sysctl -w net.ipv6.conf.lo.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6 = 1
localhost:~# sysctl -w net.ipv6.conf.wlan0.disabled_ipv6=1
net.ipv6.conf.eth0.disabled_ipv6 = 1
コマンド実行後、再度「setup-alpine」を実行してセットアップを行い、インストール完了です。
SSDのマウント
SSDを「Raspberry Pi Zero 2 W」に接続してください。自分はバスパワーのみで接続可能でしたが、場合によっては電源供給ありのハブを使用するなどしてください。
接続後、「mount」コマンドなどでマウントすることは可能ですが、再起動した場合など、そのたびにマウントする必要があります。これを解決します。
FSTABの設定
「/etc/fstab
」に以下のような設定を追記します。
最初から「vi」が使えるので、それでもいいですし、「echo」で追記してもいいかと思います。
UUID=XXXX-XXXX /media/filesv exfat defaults 0 2
「UUID=」の次は環境によって異なります。
前の記事と同様に「blkid」コマンドで確認しました。
apk add blkid
blkid
SAMBAインストール&設定
ファイル共有をするので、sambaをインストールします。sambaの設定値を永続化するためには以下の2行目、3行目の実行が必要になります。
4行目では、ファイル共有で使用するrootユーザを追加しています。
apk add samba
lbu include /var/lib/samba/private/
lbu exclude /var/lib/samba/private/msg.sock/
pdbedit -a -u root
マウントしたフォルダをrootユーザで共有します。「/etc/samba/smb.conf」の最後に以下を追記してください。
[root]
comment = root
path = /media/filesv/
browseable = yes
writeable = yes
create mask = 0777
directory mask = 0777
guest ok = no
guest only = no
valid users = pi,root
force user = root
以下のコマンドを実行しSAMBAサーバーを自動起動するようにします。
rc-update add samba
rc-service samba start
以下のコマンドを実行して、設定を永続化してください。
lbu commit -d
rebootコマンドで再起動したら、SMB経由でアクセスできるようになります。
Discussion