RaspberryPi3にNextCloudをインストールして、オンラインストレージを作成してみました。
データの保存先はRaspberryPiのmicroSDでは容量も書き換え回数も不安でしたので、USB HDDを接続してそちらに保存するようにしてみました。
実施環境
- ハーウェア
- RaspberryPi 3B+
- USB HDD(SSD) 1TB
- ソフトウェア
- Ubuntu Server 20.04.1 LTS (aarch64版)
- Nextcloud (19.0.4snap2)
USB HDDの準備
データ保存先をUSB HDDにするためにフォーマットしたりマウントしたりで準備をします。
今回は、ext4でフォーマットして使おうと思います。
HDDのデバイス名を確認
-
sudo lsblk
コマンドでデバイス名表示
$ sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 48.5M 1 loop /snap/core18/1883
loop1 7:1 0 48.8M 1 loop /snap/core18/1936
loop2 7:2 0 63.6M 1 loop /snap/lxd/16103
loop3 7:3 0 59.9M 1 loop /snap/lxd/18152
loop4 7:4 0 26.9M 1 loop /snap/snapd/9730
loop5 7:5 0 26M 1 loop /snap/snapd/8543
loop6 7:6 0 268.3M 1 loop /snap/nextcloud/24060
sda 8:0 0 931.5G 0 disk
└─sda1 8:1 0 931.5G 0 part
mmcblk0 179:0 0 29.2G 0 disk
├─mmcblk0p1 179:1 0 256M 0 part /boot/firmware
└─mmcblk0p2 179:2 0 28.9G 0 part /
上記ログではsdaが挿入したUSB HDDでした。
※分からなければ、抜き差しして増えているものを確認などで特定
HDDをフォーマット
-
parted
コマンドを使ってパーテーションを作成 -
mkfs.ext4
コマンドでフォーマット
$ sudo parted -s -a optimal /dev/sda mklabel gpt -- mkpart primary ext4 1 -1
$ sudo mkfs.ext4 /dev/sda1 -L 'nextcloud_a'
HDDフォーマットが成功したか確認します。
-
blkid
コマンドでブロックデバイス一覧を表示
$ sudo blkid
/dev/mmcblk0p1: LABEL_FATBOOT="system-boot" LABEL="system-boot" UUID="B726-57E2" TYPE="vfat" PARTUUID="ab86aefd-01"
/dev/mmcblk0p2: LABEL="writable" UUID="483efb12-d682-4daf-9b34-6e2f774b56f7" TYPE="ext4" PARTUUID="ab86aefd-02"
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/loop3: TYPE="squashfs"
/dev/loop4: TYPE="squashfs"
/dev/loop5: TYPE="squashfs"
/dev/sda1: LABEL="nextcloud_a" UUID="409fa06a-20b3-4b60-b20f-2afb56ddf395" TYPE="ext4" PARTLABEL="primary" PARTUUID="d18a25ba-b177-4d1d-9807-709bbbb4f95c"
/dev/loop6: TYPE="squashfs"
⇒ sda1が、ラベル名:「nextcloud_a」、ext4でフォーマットされたことを確認。
HDDのマウントポイントを作成
今回は、/mnt/nextcloud_a
にHDDをマウントします。
-
mkdir
コマンドで/mnt/nextcloud_a
ディレクトリ作成
$ sudo mkdir /mnt/nextcloud_a
ファイルシステムテーブルに追加
再起動時に自動マウントされるように、ファイルシステムテーブル /etc/fstab
にマウントするデバイスの情報を追加します。
viなどで/etc/fstab
を開き、以下行を追記する
LABEL=nextcloud_a /mnt/nextcloud_a ext4 defaults 0 0
ちゃんとマウントできるか確認します。
-
mount -a
コマンドを実行して/etc/fstab
の記述内容にしたがってマウント -
mount
コマンドにてディスク状態確認
$ sudo mount -a
$ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
~~~~
/dev/sda1 on /mnt/nextcloud_a type ext4 (rw,relatime)
Nextcloudのデータ保存先をUSB HDDになるように準備
今回は、NextCloudをsnapでインストールするので、snapのnextcloudのデータ保存先ディレクトリ/var/snap/nextcloud
が、USB HDDになるようにbind mountします。
bind用のマウントポイントを作成
-
mkdir
コマンドで、/var/snap/nextcloud
ディレクトリ作成
$ sudo mkdir /var/snap/nextcloud
bind用のデバイス先(データ保存先)ディレクトリを作成
-
mkdir
コマンドで、/mnt/nextcloud_a/nextcloud
ディレクトリ作成
$ sudo mkdir /mnt/nextcloud_a/nextcloud
ファイルシステムテーブルに追加
こちらも、再起動時に自動マウントされるように、ファイルシステムテーブル /etc/fstab
にマウントするデバイスの情報を追加します。
viなどで/etc/fstab
を開き、以下行を追記する
/mnt/nextcloud_a/nextcloud /var/snap/nextcloud none bind 0 0
ちゃんとマウントできるか確認します。
-
mount -a
コマンドを実行して/etc/fstab
の記述内容にしたがってマウント -
mount
コマンドにてディスク状態確認
$ sudo mount -a
$ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
~~~~
/dev/sda1 on /mnt/nextcloud_a type ext4 (rw,relatime)
/dev/sda1 on /var/snap/nextcloud type ext4 (rw,relatime)
これで、データ保存先の準備完了。
Nextcloudのインストール&設定
Snapを使って簡単にセットアップを済ませます。
Snap packagesを使ってNextcloudのインストール
nextcloud公式の 「Installation on Linux」 ページの 「Installing via Snap packages」の章を参考にしました。
-
sudo snap install nextcloud
とコマンドを実行- 今回は、最新の
20.0.1snap1
がバグがありそうだったので、1つ前の(19/stable) 19.0.4snap2
を指定してインストール
- 今回は、最新の
$ sudo snap install nextcloud --channel=19/stable
nextcloud (19/stable) 19.0.4snap2 from Nextcloud✓ installed
Installation wizardを使ってセットアップ
nextcloud公式の 「Installation wizard」 ページには、
Webブラウザでhttp://localhost/nextcloud
にアクセスと記載されていたが、
セットアップした際には http://localhost
(http://<IPアドレス>
) でした。
※Ubuntu Serverにセットアップしているので、別PCのブラウザよりアクセス。
- ユーザ名/パスワードを入力
- 「推奨アプリをインストール」は不要なら外しておく(後から入れることもできるし)
- 「セットアップを完了します」を押下
セットアップにしばらく時間がかかりますが待っていれば終わります。
以上。