さまざまな物や事に関する、役に立ったり立たなかったりするテキストが綴られるブログ。

nasneのHDDを換装してみる

2022年6月8日  2022年6月8日 
フタを開けた状態のnasne

最近、SONY製のネットワークレコーダー"nasne"を入手しました。なにげにファームウェアがVersion 1.00というレア物。けれども、初期モデルであるためHDDは500GBしかありません。

個人用途のNASとしてなら、使えないこともなさそうな容量ではあります。が、地上/衛星レコーダーとしては、ちょっと心もとない感じ。

加えて中古品であるため、内蔵HDDもそれなりに酷使されていることが予想されます。という訳で、HDDの換装を試みることに。そのためには以下の要件をクリアする必要があります。

  1. nasneのファームウェアがVersion 1.00であること(必須)
  2. Linuxが使えること(環境的および技術的に)
  3. 大容量の交換用HDD
  4. 失敗しても泣かない覚悟

1と3に関してはOKだけど、最近ご無沙汰なので2はちょっとアヤシイ感じ。4はその時になったら考えます。そんな感じなので、頑張ればなんとかなる...かもしれません。

幸いにして、インターネットでは先達の知見が公開されており、とても参考になります。nasneのHDDを換装したいと思ったら以下のコンテンツは必見。

nishy software (ja)nasneのハードディスク交換♯2 HDDの修復

The Weightnasne のHDDを時間かけずに換装する
nasne の HDDを1TBに換装

いずれの作業内容が丁寧かつ親切に記述されております。なので、読んだとおりに進めれば問題なく作業が完了することでしょう。

...などと書いてしまうと、本稿の存在意義が消失してしまいます。ここでは、両者の作業工程を「いいとこ取り」な感じで進めてみたいと思います。

なお、HDDの換装により、nasneオリジナルHDDに入っていた録画番組は再生できなくなります。なくなると困る映像はPC TV Plusを使うなどして、他のデバイス(メディア)に退避させる必要があります。

実際の作業内容を見てみる

まずは練習ということで、250GBの2.5インチ9.5mm厚HDDを用意。これをnasneオリジナルHDDと同等の仕様にすることから始めます。いきなり本番は怖いので。

なお、コンソールでの作業前には、"sudo su"コマンドにより管理者権限に昇格しています。また、以下に登場する黒背景のテキストはコンソール出力を模したモノですが、""記号はenterキーを示します。すなわち、ユーザが入力した(または入力する)部分、ということです。

nasneオリジナルHDD(の一部)をイメージファイル化する

まずは、nasneから取り出したHDDをLinux PCに接続して状況を確認します。"fdisk -l"コマンドにて、HDDの型番と容量から対象となるディスクを見つけます。以下のサンプルでは、/dev/sdbになっておりますが、この結果は状況により異なりますのでご注意くだされ。

# fdisk -l↵

~他のディスク情報も表示されるけど省略~

ディスク /dev/sdb: 465.78 GiB, 500107862016 バイト, 976773168 セクタ
Disk model: HTS545050A7E380 
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x6271b8e4

デバイス   起動 開始位置  最後から    セクタ サイズ Id タイプ
/dev/sdb1  *        2048    526335    524288   256M 83 Linux
/dev/sdb2         526336   2623487   2097152     1G 83 Linux
/dev/sdb3        2623488 976773167 974149680 464.5G 83 Linux
#

nasneオリジナルHDDの開始セクタから、パーティション2の最終セクタまでを"dd"コマンドにてイメージファイル化します。

バーティション2(/dev/sdb2)の最終セクタは2623487なので、"dd"コマンドのオプションで指定するcountの値は2623488となります。(セクタは0から始まるのでcountに+1する)

# dd if=/dev/sdb of=nasne.img bs=512 count=2623488↵
2623488+0 レコード入力
2623488+0 レコード出力
1343225856 bytes (1.3 GB, 1.3 GiB) copied, 50.4256 s, 26.6 MB/s
#

"dd"コマンドが完了すると、現在のディレクトリに"nasne.img"が生成されます。イメージファイルなので容量は大きめ。zipで圧縮すると128MBほどになるので、保管の際には圧縮がオススメです。

nasneオリジナルHDDの役目はここまで。装着したままでも作業はできますが、事故があっては困るので、物理的にLinux PCから取り外した方がよろしいかと。

換装用HDDにイメージを書き込む

続いて、換装用HDDをLinux PCに接続。先ほどと同様"fdisk -l"コマンドにて、練習のために用意した250GBのHDD(型番:HTS545025B9A300)を見つけます。

# fdisk -l↵

~他のディスク情報も表示されるけど省略~

ディスク /dev/sdc: 232.91 GiB, 250059350016 バイト, 488397168 セクタ
Disk model: HTS545025B9A300 
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x6271b8e4

デバイス   起動 開始位置  最後から    セクタ サイズ Id タイプ
/dev/sdc1           2048 488394751 488392704 232.9G  7 HPFS/NTFS/exFAT
# 

ここでは/dev/sdcとなっておりますが、この結果は状況により異なりますのでご注意くだされ。

対象が判明したので、"dd"コマンドにてイメージファイルを書き込みます。

# dd if=nasne.img of=/dev/sdc↵
2623488+0 レコード入力
2623488+0 レコード出力
1343225856 bytes (1.3 GB, 1.3 GiB) copied, 294.065 s, 4.6 MB/s
#

パーティション3を修正する

"dd"コマンドではパーティション2の最後までしかコピーしてませんが、HDD全体のパーティション情報はそのまま継承されております。このため、/dev/sdc3が正しい状態にありません。

"fdisk -l"コマンドで確認すると、ディスク容量は232.91 GiBと表示されているのに、/dev/sdc3のサイズは464.5G。パーティション3だけで、HDDの実容量を超えてしまっています。
# fdisk -l↵

~他のディスク情報も表示されるけど省略~

ディスク /dev/sdc: 232.91 GiB, 250059350016 バイト, 488397168 セクタ
Disk model: HTS545025B9A300 
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x6271b8e4

デバイス   起動 開始位置  最後から    セクタ サイズ Id タイプ
/dev/sdc1  *        2048    526335    524288   256M 83 Linux
/dev/sdc2         526336   2623487   2097152     1G 83 Linux
/dev/sdc3        2623488 976773167 974149680 464.5G 83 Linux
#

逆に、大容量HDDに換装した場合でも、この時点でのパーティション3は変わらず464.5Gを示します。要するに、今回のHDD換装方法では、例外なくパーティション3の修正が必要となります。

具体的には、"fdisk"コマンドによりdev/sdc3を削除し、新たに領域を確保します。ここだけ、対話形式での進行となりますのでご注意を。

ちなみに、"p"はディスクの状態を確認するコマンドで、"d"はパーティションを削除するコマンド、"n"はパーティションを新規作成するコマンド(パラメータは対話形式で設定します)、そして"w"が変更したパーティション情報を実際に書き込むコマンド、となっております。

CHECK POINT!

"n"コマンドのパラメータですが、パーティション2の後ろに続けて、最大の基本パーティションを作成するのが目的であるため、すべて既定値の選択(enterを押す)でOKのハズ。念のため確認をお忘れなく。

また、ログを取り忘れたので割愛しましたが、"w"コマンドで実際に書き込む前に、"p"コマンドで最終的な状態をチェックをした方がよろしいかと思われます。

# fdisk /dev/sdc↵

fdisk (util-linux 2.34) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。


コマンド (m でヘルプ): p↵
ディスク /dev/sdc: 232.91 GiB, 250059350016 バイト, 488397168 セクタ
Disk model: HTS545025B9A300 
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x6271b8e4

デバイス   起動 開始位置  最後から    セクタ サイズ Id タイプ
/dev/sdc1  *        2048    526335    524288   256M 83 Linux
/dev/sdc2         526336   2623487   2097152     1G 83 Linux
/dev/sdc3        2623488 488397167 485773680 231.7G 83 Linux

コマンド (m でヘルプ): d↵
パーティション番号 (1-3, 既定値 3): 3↵

パーティション 3 を削除しました。

コマンド (m でヘルプ): p↵
ディスク /dev/sdc: 232.91 GiB, 250059350016 バイト, 488397168 セクタ
Disk model: HTS545025B9A300 
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x6271b8e4

デバイス   起動 開始位置 最後から  セクタ サイズ Id タイプ
/dev/sdc1  *        2048   526335  524288   256M 83 Linux
/dev/sdc2         526336  2623487 2097152     1G 83 Linux

コマンド (m でヘルプ): n↵
パーティションタイプ
   p   基本パーティション (2 プライマリ, 0 拡張, 2 空き)
   e   拡張領域 (論理パーティションが入ります)
選択 (既定値 p): p↵
パーティション番号 (3,4, 既定値 3): 3↵
最初のセクタ (2623488-488397167, 既定値 2623488): 2623488↵
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2623488-488397167, 既定値 488397167): 488397167↵

新しいパーティション 3 をタイプ Linux、サイズ 231.7 GiB で作成しました。

コマンド (m でヘルプ): w↵
パーティション情報が変更されました。
ディスクを同期しています。
#

最後にパーティション3をフォーマットして完成

最後に、領域を確保した/dev/sdc3をxfsでフォーマットします。"mkfs.xfs"コマンドでは、必要なオプションがとんでもない量になっておりますのでご注意くだされ。

# mkfs.xfs -f -m crc=0 -d agcount=9 -i size=256,attr=2,projid32bit=0 -L user -n ftype=0 -s size=512 /dev/sdc3↵
meta-data=/dev/sdc3              isize=256    agcount=9, agsize=6746857 blks
         =                       sectsz=512   attr=2, projid32bit=0
         =                       crc=0        finobt=0, sparse=0, rmapbt=0
         =                       reflink=0
data     =                       bsize=4096   blocks=60721710, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=0
log      =internal log           bsize=4096   blocks=29649, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
#

あとは基板状態のnasneにHDDを取り付けて動作確認。ACアダプタを接続すると、自動的に電源が入るのでしばらく待ちます。

電源の緑LEDとIPアクセスの橙LEDが常時点灯になれば、起動は正常に完了しています。

もちろん大容量化も

衝撃のダウングレード

こちらのスクリーンショットは、HDDを換装した状態の"nasne HOME"の一部。製品版ではありえない250GB版(表示上は231.5GB)のnasneになっております。

以上の練習により、nasneのHDDが換装できることを確認しました。ので、ここからが本番。nasneの内蔵HDDを、2.5インチ/9.5mm厚HDDとしては現行最大の2TBモデルに換装してみます。

用意したのは、東芝のMQ04ABD200という製品。Amazon.co.jp楽天市場などで普通に買える一般的な製品です。換装方法は、250GBでの練習とまったく同じ。すでに経験済みなので、作業はスムーズに完了しました。

最終的にはこんな感じ

で、こちらのスクリーンショットが作業後のモノ。内蔵HDDが1.8TBとして認識されています。換装後の状況ですが、電波の受信や番組の録画はOK。"nasne HOME"からのファームウェアアップデートもできました。HDD交換に起因するトラブルも聞こえてこないし、とりあえずは問題ナシということで。

Linuxはずいぶんとご無沙汰だったので、環境の構築と最適化、操作の勘を取り戻す行程、手に汗握るクリティカルなパーティションいじり、となかなかに楽しい時間が過ごせました。

作業にあたって作成したイメージファイルはきっちり保管しているので、ジャンクのnasneをもう1台買ってきて再生しようか、などと考えてしまう今日このごろでありました。


ー記事をシェアするー
B!
タグ

コメント

ブログ検索
お知らせ

100円のPayPay送金でWasters haven.を支援!

PayPayで送金

リターンはありませんが、管理人のやる気が向上します。

※モバイル機器でご覧の方は、コード画像のタップでPayPayアプリが開きます。


人気の投稿
ラベル
新着投稿