Raspberry Pi 3で64bit ubuntuを使ってNextcloudのSMB共有アクセスが成功した

smb mount
前回はRaspberry Pi 3BでNextcloudを動かす記事を書きました。この時はSMB共有フォルダをNextcloudへマウントする事ができませんでした。
Dockerで動かしていたのですが何となくarmhfな環境が悪いと思いarm64のubuntuへ移植したところWindows Serverのファイル共有フォルダをマウントできるようになりました。


前回の記事でNextcloudを動かしました。
関連記事:Raspberry Pi 3でNextcloudを動かす時の注意点

この時はNextcloudの外部ストレージでWindowsのファイル共有フォルダを追加する事ができませんでした。Dockerコンテナ内でSMBマウントとsmbclient接続する事は出来ていました。どうもphp-smbclientがまともに動かない感じでした。

Dockerはx86アーキテクチャなCPU用にできています。最近他のCPUのサポートも充実してきましたがRaspberry Piのarmhfなアーキテクチャのイメージは少なくデバッグもあまり行われていない感じです。
気になるのはNextcloudのイメージで使われているOSの対応です。

Raspbian OSのDockerイメージを作りその上にNextcloudを自分で構築しようかとも思ったのですが少し面倒です。それにarmhfな環境でこれ以上手を加えるのは無駄に思えてきました。
Dockerを使うと簡単に実行環境を移動できるのです。いっそのことRaspbianをやめてしまおうと思いました。Raspberry Pi 3はarm64のプログラムが動くのです。Dockerイメージもarmhfよりarm64の方が豊富です。

そこで前回作ったDockerファイルのディレクトリごと外付けUSB HDDへコピーしました。そしてRaspberry Pi用のubuntu 64bitイメージを新たにSDメモリーカードへ焼きます。
RaspberryPi | ubuntu wiki
こちらのarm64のイメージを使いました。
Dockerは公式のインストールスクリプトで入れます。docker composeはレポジトリのを入れました。

USB HDDをつないで前回のDockerファイルを少し修正します。新たにファイルを置いた場所に合わせてvolumeのディレクトリ名を修正します。データベースにRaspberry用のイメージを使っていましたがarm64なら公式のmariaDBが動くのでそちらに修正します。
nextcloudのデータファイルやデータベースファイルはそのまま使います。以前に登録したユーザーも使えるでしょう。

docker composeを動かすとデータベースの警告が出ると思います。データベースに完全な互換性が無いので怒られますが動きます。

とりあえず動いたら外部ストレージでSMB共有フォルダを追加してみます。
あっさり緑のマークが付きました。

追加した外部ストレージの中身が見れないかもしれません。エラーのポップアップが出るかも。nextcloudのコンテナ内でファイルスキャンを実行します。
nextcloudコンテナ内のターミナルを動かします。
docker-compose  exec -u www-data nextcloud1 bash
ここでファイルスキャンを行います。
php occ files:scan --all
すると一通りアクセスできるようになりました

まとめ

前回、Raspberry PiのRaspbian OS上のDockerでNextcloudを動かしたのですが外部ストレージとしてWindowsの共有フォルダを登録する事ができませんでした。
Docker関連のarmhfアーキテクチャに由来する不具合を疑い、Raspberry Pi 3BのOSに64bitのubuntuを使ってみることにしました。
結果として問題なくSMB1は無効にしているWindowsの共有フォルダを追加する事が出来ました。

前回成功しなかった根本原因は不明です。Dockerを使っているのでnextcloudの実行環境の設定は基本的に同じです。違いはDockerの実行イメージがarmhf用かarm64用かになります。

Dockerを使っているので前回の設定ファイルを移動し少し修正するだけで動かせました。Dockerの利点ですね。
64bitOSにしたから速くなる…なんて事は感じません。


コメント

最近のコメント

Threaded Recent Comments will be here.