raspberry pi4の外付けSSDの設定(危険作業)

外出自粛を受けたGWですが自粛している間に何かできるだろ、ということでrasberry pi4に少し手を加えてみました。
カシマです。

やったことはこんな感じです。

  1. 一部ディレクトリを外付けSSDに変更し、microSDへの負荷軽減
  2. raspberry pi4のリソースモニタリング(influxdb+telegraf+grafana)

SSD化はともかくリソースモニタリングはただの自己満足です。
2.のリソースモニタリングは意外と長くなりそうなので別の記事に書くようにします。

microSDから一部ディレクトリのSSD化

この対応はしくじるとOSが起動しなくなるのでちょっと緊張しました。
LinuxがmicroSDのディレクトリへよく書き込むディレクトリは /var です。
最初は /var/lib/boinc-client にしようかと思ったのですが、事前にログファイルの書き込みなどでmicroSDの寿命を縮めやすいと聞いていたので、それならば…ということで /var にしました。

購入したもの

  1. キングストンテクノロジー SSD 120GB 2.5インチ SATA3 TLC NAND採用 A400 SA400S37/120G
  2. 玄人志向 SDD/HDDケース 2.5型 USB3.0接続 ACアダプター不要/ネジ止め不要のスライド式 GW2.5CR-U3

両方で5000円もかからない程度でした。
SSDはキングストンなので個人的に安心と信頼がありますが、玄人志向は過去に何度も故障してるのでちょっと怖かった
あと差し込んで認識するけど不安定という話もありましたのでその辺も怖さの一つですね。
問題なく稼働しています。

SSD化への手順

キーボード、マウス、ディスプレイは基本全部外し、作業は全てSSHでログインし実施しています。
以下が手順になりますが、事前にスクリプト化し、一気にガッとやる方がミスが少ないと思います。

前提として導入した boinc-client しか動いていないという前提で記述します。

boinc-clientの止め方は以下のようになります。
ただし /var ディレクトリをコピーする直前で実施しますので今はまだboinc-clientを止めません。

$ sudo systemctl stop boinc-client

mountはいいとしてxfsとしてSSDを認識させるので以下のように作業を進めます。

  1. SSDをUSB 3.0に接続
  2. 認識しているかチェック
  3. SSDをxfsで初期化
  4. /var を SSDへ移動させる
  5. 再起動して問題なく動くか確認する

大きくな流れは以上で、実際の作業に取り掛かります。

まずはSSDが認識しているか確認しデバイスブロックを調べます。
コマンドを試した際は /dev/sda で認識していましたのでその前提で記述を進めます。

$ sudo fdisk -l

忘れないうちに /etc/fstab を編集します。

/dev/sda /var xfs defaults 0 2

ここから実作業に入ります。

$ sudo apt install xfsprogs
$ sudo mkfs.xfs /dev/sda
$ sudo mkdir /new_var
$ sudo df -h
$ sudo mount -t xfs /dev/sda /new_var
$ sudo df -h

これでマウントが正常にできていることの確認が取れたら以下のスクリプトを作成し一気に実行します。

vim change_var.sh

#!/bin/sh
cp -rpf /var/* /new_var
sync;sync
unmount /new_var
mv /var /var_old
mkdir /var
mount -t /t xfs /dev/sda /var
ls -Al /var
ls -Al /var_old
df -h

ここまでできたら以下の通り実行します。

sudo systemctl stop boinc-client
sudo sh ./change_var.sh

問題なさそうでしたら以下のコマンドを実行しboinc-clientを起動します。

sudo systemctl start boinc-client

boinctuiやsystemctl status boinc-clientで特にエラーがなければ再起動します。

sudo reboot now

ここまで実施して、正常に起動し df -lでも認識していれば /var のSSD化は完了です。
次の記事はリソースモニタリングに関する記事です。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

%d人のブロガーが「いいね」をつけました。