素人の私が今更言う事では無いのですが。

↑ GPartedの画面を加工した画像。

nvme0n1 119.24 GiB 128GB M.2 SSD NVMe
sdb 119.24 GiB 128GB 2.5インチ SSD SATA
sdd 115.43 GiB 128GB USBメモリー 3.2(Gen1)

↑ 各ストレージは、どれもパッケージやシールに、128GBと表記されている。

SSDとUSBメモリーの容量(GiB)の違いは何? 表記された128GBは便宜上の数字であって、真の容量では無い事は知っている気がします。2進数だから1KB=1,024Bだとか?

SSDなら、メーカー問わず128GB表記=119.24GiBなんでしょうか?

OK:119.24GiB同士によるクローンは、双方向どちらでも成功。
NG:クローン先が115.43GiBで容量が少し足らず、クローン失敗。

↓ 私は、これから起こる悲劇(NG)を知らずに、ストレージのバックアップ用にと、わざわざパソコン工房まで行って買ってきた128GBのUSBメモリー(/dev/sdd)

ちょっとウキウキして、ddコマンドでクローンしたら……… NG

$ sudo dd if=/dev/sdb of=/dev/sdd bs=4M status=progress

↑ このコマンド入力そのものは、正しい。bsの値が適切かは分からないけど。
私がGiBの数値を見落とした結果がNG

だけど、言いたい。そのNG、クローン先は128GBのUSBメモリで書き込み速度が遅いけど、クローン出来るならと、4時間半位待ちました。
あろう事か、4時間半待った後に、残酷な事に、英語で「失敗」とかのメッセージ。

「先に言いなさい💢」

クローン失敗時のメッセージを文字や画像に残して無いのが残念。覚えているのは、クローン先のストレージが、未割り当て状態で、パーティションの区切りも無かったです。クローン元は無傷でした。

【改善を求む】プログラムのソースコードの先頭に、先頭に、"ストレージ容量を比べてクローン可否の判定をする"みたいなコードを書いて!

もしかして、ddコマンドのオプションに、そんな判定をするのがあって、否の場合、最初からクローンはしないのかな? 知らないけど。

 

クローン先が容量不足の場合、クローン元の容量をクローン先に合わせて、GPartedでパーティションを少なくするとクローン出来るらしいです。

でも、私は危なかしくて、クローン元のパーティションサイズをイジルなんて出来ない!

 

最近の私は、ストレージのクローンブーム。

先日、自宅サーバー用旧PCが不調になり、原因不明ですが起動しなくなってしまった事が、突然起きました。

仕方ないので、自宅サーバー用に中古のPCを購入。旧PCのHDDを載せて起動させたら、普通に自宅サーバーとして使えました。

本当に良かった。「ゼロから新規に諸々をインストールして設定して」って、と思うと気が遠くなる所でした。

この経験から、クローンを定期的に行う事にしたのです。

【最初に結論を書きます】
ESPRIMO Q556/RはM.2 SSD NVMeを認識しました。たぶん

↓ BIOSを見ると、NVMeのM.2 SSDを認識している気がします。

↑ 画面が黄色なのは、VGAケーブルの不良が原因。VGAケーブルを未使用品に変えたら直りました。

↓ M.2 SSD NVMe 128GBと思うストレージにWindowsを一時的にインストール。その中でCrystalDiskMarkを走らせると、ご覧の通り、NVMeらしく無いスピードです。

↑ M.2 SSD NVMeじゃ無くて、本当はSATAだったり?
ESPRIMO Q556/Rのハードウェアの都合で、スピードが制限されている?

 

【注意】
この記事の内容は誤りがある”可能性”があります。私はパソコンのハードウェアにも苦手で、その道の専門家では無く素人だからです。

先日から我が家の自宅サーバーPCになった富士通 ESPRIMO Q556/R FMVB0901J。

この新サーバー用のPC(中古だけど)のストレージは2.5インチSSD128GB。旧サーバー用PCのストレージはHDD約70GB。HDDからSSDになった事で、このブログの表示が速くなった気がします。

このQ556/Rには、M.2の2280サイズのスロットが一つ余っているので、私自身、初のM.2を体験をしたくM.2の勉強中です。

Q556/RのM.2に合うSSDはどれ?
ググってみると、「SATAだ」とか、「NVMeだ」と言う両方の情報があり迷います。

と言う事で、Q556/RのM.2スロットを直接良く見る事にしました。

↑ ノギスがある画像は合成ですが、マザーボードとノギスのスケールを測定箇所に限り誤差1mm以下(たぶん)で合わせています。

↓ 今回、購入した画像のM.2 SSD NVMe 128GBは、ラズパイ5用M.2 HATアドオンボード(128GB SSD付き)の

Freenove M.2 NVMe Adapter V2 for Raspberry Pi with 128GB SSD(Amazon

に含まれていた物です。因みにAmazonからの購入日は2025年12月9日で、送料無料、税込み¥3,780でした。
同梱のネジはサイズが合わないので、M3 x 4mmを別途パソコン工房で購入。

↑ CPUファンとM.2 SSDの間が狭くてヒートシンクが入りません。
↓ でも大丈夫。M.2 SSDにヒートシンクが無くても、CPUファンの下側が画像の様なので、M.2 SSDにも冷却効果があるはず!?

 

↓ smartctl コマンドでM.2 SSDの詳細情報を表示されて温度を確認する。

$ sudo smartctl -a /dev/nvme0

Temperature:                        39 Celsius

↑ この時は摂氏39℃のようです。このM.2 SSDは、主に、このサイトのブログデータのバックアップ用途に使用。
取り敢えず、このM.2 SSDにUbuntu Desktopがインストールされています。

ですが。普段は、2.5インチSSDにインストールされたUbuntu Serverが起動してします。

そして、ブログデータのバックアップ時のみM.2 SSDはマウントされて、普段はアンマウント状態。だから温度が低いのかな?

 

↓ 現在(2025年12月12日)、このESPRIMO Q556/R FMVB0901Jのストレージは、画像の通り。

 

【追記】2025年12月14日
GParted Liveを利用して、2.5インチSSD SATA 128GBからM.2 SSD NVMe 128GBに、ddコマンドでクローンしました。

2.5インチSSDはバックアップ用に取り外して保管。
今は、内臓ストレージがM.2 SSDだけになり、自宅サーバーとして頑張っています。

サーバー用PCを変えたので、ホスト名をequiumからesprimoに変更。

何故変更?
旧サーバー用PCのストレージ(HDD)を、新サーバー用PCに流用したので、変更する事にしました。

abc@equium:~$ sudo hostnamectl set-hostname esprimo

【注意する所】ただ、上記だけではsudoコマンドを使用すると以下のように、unableなんとかと言ってくる。

abc@esprimo:~$ sudo apt update && sudo apt upgrade
sudo: unable to resolve host esprimo: Name or service not known

この場合、hostsファイルのホスト名が一致していないので書き直す。
equiumをesprimoに書き換える。

abc@esprimo:~$ sudo vi /etc/hosts
127.0.0.1 localhost
127.0.1.1 equium

【注意】この記事には、ラズパイやラズパイで動くC言語で書かれたソフトの内容を含みます。しかし、私はこれらの専門家では無く素人です。記事内容に誤りがあるかも知れません。

以前、ラズパイ5にGNSSモジュールを繋げて、Straturm 1相当のNTPサーバーを作りました。RPi5とGNSS(GY-NEO-6MV2)

あの時の環境で使用したラズパイ5を、ラズパイ2に変更して Straturm 1相当のNTPサーバーにしようとしたら、相当苦労しました。
この記事は、その苦労話です。

↓ この画像は、相当な苦労と時間を費やした成果で得た、思い通りに動く様になった時のものです。

 

何に苦労と時間を費やしたかと言うと、上記の画像にある緑、黄、赤のLEDが点灯しないのです。思い通りに点灯するまでに相当な苦労をしました。

 

↓ 自作ソフトAとBの関係を示すフローチャート。自作ソフトAは同期先判定を担当、自作ソフトBはLED点灯を担当。

↑ フローチャートで分かる通り、自作ソフトBは、自作ソフトAに依存してします。それは、自作ソフトAの判定結果で変化する共有メモリ内の情報を自作ソフトBで読み取り、LEDを点灯させているからです。

 

LEDが点灯しなかった原因は?

誤り → After = chrony.service

正解 → After = chronyd.service

↑ 私、ドヤ顔で書いていません。恥ずかしいし、「こんなんで記事書くな」と思った。けど、この記事は残します。

 

気を取り直して、上手くLEDを点灯させる為の自作ソフトAとB、それぞれのユニットファイルを見てみます。

先に起動させたい自作ソフトAのユニットファイルは
After = chronyd.service

自作ソフトAの次に起動させたい、自作ソフトBのユニットファイルは
After = 自作ソフトA.service