見出し画像

SONY 版 nasne の HDD 交換・換装

出来ること

00110022.dlm  ファイルがなくても、内蔵 HDD が故障して起動しなくなった nasne を修理できます。

必要なもの

  • SONY 版 nasne

  • 新しい HDD

  • Linux 環境

  • バージョン 1.00 のファームウェア

バージョン 1.00 のファームウェアの詳細

ファイル名 00550066.dlm
ファイルサイズ 21,287,161 Bytes
MD5 1C921378F2A7846A6492982C98C82FCD
SHA-256 104AD970DC3FA61FA2394CE1FBD329C9522D64F04FEE8E05637ED820F24600E9

作業環境

作業環境:Kali Linux 2022.1
作業ディレクトリ: /home/nasne
nasne HDD: /dev/sdb
マウント先: /media/nasne/{sys1,sys2,user}

XFS を扱うために xfsprogs パッケージをインストールしておく。

# apt-get install xfsprogs

ディスク情報

今回は 250GB の HDD を使用。MBR で用意しておく。

# fdisk -l /dev/sdb
Disk /dev/sdb: 232.89 GiB, 250059350016 bytes, 488397168 sectors
Disk model: 00BEKT-75A25T0  
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x9b28462a

パーティションの作成

fdisk を使用して3つのパーティションを作成する。

fdisk の起動。

# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.37.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

1つ目のプライマリーパーティション(開始:2048 終了:526335) を作成。
n⏎ p⏎ 1⏎ 2048⏎ 526335⏎

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-488397167, default 2048): 2048
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-488397167, default 488397167): 526335

Created a new partition 1 of type 'Linux' and of size 256 MiB.

2つ目のプライマリーパーティション(開始:526336 終了:2623487)を作成。
n⏎ p⏎ 2⏎ 526336⏎ 2623487⏎

Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (526336-488397167, default 526336): 526336
Last sector, +/-sectors or +/-size{K,M,G,T,P} (526336-488397167, default 488397167): 2623487

Created a new partition 2 of type 'Linux' and of size 1 GiB.

3つ目のプライマリーパーティション(開始:2623488 終了:最後のセクタ)を作成。
n⏎ p⏎ 3⏎ 2623488⏎ ⏎

Command (m for help): n
Partition type
   p   primary (2 primary, 0 extended, 2 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (3,4, default 3): 3
First sector (2623488-488397167, default 2623488): 2623488
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2623488-488397167, default 488397167): 

Created a new partition 3 of type 'Linux' and of size 231.6 GiB.

一つ目のパーティションにブータブルフラグをセット。
a⏎ 1⏎

Command (m for help): a
Partition number (1-3, default 3): 1

The bootable flag on partition 1 is enabled now.

内容があっているか確認して、変更を保存。
p⏎ w⏎

Command (m for help): p
Disk /dev/sdb: 232.89 GiB, 250059350016 bytes, 488397168 sectors
Disk model: 00BEKT-75A25T0  
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x9b28462a

Device     Boot   Start       End   Sectors   Size Id Type
/dev/sdb1  *       2048    526335    524288   256M 83 Linux
/dev/sdb2        526336   2623487   2097152     1G 83 Linux
/dev/sdb3       2623488 488397167 485773680 231.6G 83 Linux

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

各パーティションのフォーマット

/dev/sdb1

# mkfs.ext3 -L sys1 /dev/sdb1
mke2fs 1.46.4 (18-Aug-2021)
Creating filesystem with 262144 1k blocks and 65536 inodes
Filesystem UUID: fb04056b-1045-432a-969b-471e45ce6664
Superblock backups stored on blocks: 
        8193, 24577, 40961, 57345, 73729, 204801, 221185

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done 

/dev/sdb2

# mkfs.ext3 -L sys2 /dev/sdb2
mke2fs 1.46.4 (18-Aug-2021)
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: b8e085e9-6cfe-4fa2-8892-0e15b2fd3ed2
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

/dev/sdb3
2TB の HDD を使用する場合は、agcount の値を調整したほうがいいかも。

# mkfs.xfs -m crc=0 -d agcount=4 -i size=256,attr=2,projid32bit=0 -L user -n ftype=0 -s size=512 /dev/sdb3
meta-data=/dev/sdb3              isize=256    agcount=4, agsize=15180428 blks
         =                       sectsz=512   attr=2, projid32bit=0
         =                       crc=0        finobt=0, sparse=0, rmapbt=0
         =                       reflink=0    bigtime=0 inobtcount=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

パラメータを細かく指定しているのは、オリジナルの状態にあわせているため。
1TB モデルのオリジナルは以下の通り。

# xfs_info /dev/sdb3
meta-data=/dev/sdb3              isize=256    agcount=4, agsize=60965678 blks
         =                       sectsz=512   attr=2, projid32bit=0
         =                       crc=0        finobt=0, sparse=0, rmapbt=0
         =                       reflink=0    bigtime=0 inobtcount=0
data     =                       bsize=4096   blocks=243862710, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=0
log      =internal log           bsize=4096   blocks=119073, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

最終的なディスク情報

# fdisk -l /dev/sdb
Disk /dev/sdb: 232.89 GiB, 250059350016 bytes, 488397168 sectors
Disk model: 00BEKT-75A25T0  
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x9b28462a

Device     Boot   Start       End   Sectors   Size Id Type
/dev/sdb1  *       2048    526335    524288   256M 83 Linux
/dev/sdb2        526336   2623487   2097152     1G 83 Linux
/dev/sdb3       2623488 488397167 485773680 231.6G 83 Linux

必要ファイルの配置

以下のように構成する。

# tree /media/nasne/
/media/nasne/
├── sys1
│   ├── 00110022.dlm
│   ├── 00550066.dlm
│   └── 55006600
│       └── 00550066.dlm
├── sys2
└── user

2つの 00550066.dlm ファイルは Ver1.00 のもの。
00110022.dlm  ファイルは148 バイト分 0x0 で埋めたファイルを使用する。

dd if=/dev/zero of=/media/nasne/sys1/00110022.dlm bs=1 count=148

パーミッションなどは以下の通り。

# ls -lR /media/nasne/sys1
/media/nasne/sys1:
合計 20874
-rw-r--r-- 1 root root      148  38 11:14 00110022.dlm
-rwxr--r-- 1 root root 21287161  38 11:15 00550066.dlm
drwxr-xr-x 2 root root     1024  38 11:15 55006600

/media/nasne/sys1/55006600:
合計 20872
-rwxr--r-- 1 root root 21287161  38 11:15 00550066.dlm

nasne の起動

用意した HDD を nasne に挿して起動する。
電源(緑色)と REC、IP ステータスの3つ LED が点滅するまで待ち、電源を抜いて再起動する。
ファームウェアのバージョンが 1.00 になっているので、アップデートする。
同じ要領でインターネットを介さず 1.00 から 2.60 へアップデート可能になるので、SONY がファームウェアの配布を停止した場合に備えて、バックアップ推奨。

同じ手順でやっても、電源(赤色)と REC、IP ステータスの3つ LED が点灯(点滅ではない)して起動しない場合がありました。

その場合、/sys1/00110022/00110022.dlm を /sys1/00110022.dlm にコピーして、再度起動するか確認。

任意のバージョンに更新する方法

2022/03/29 現在、バージョン 1.51 ~ 2.60 のファームウェアは SONY のサイトで公開されているので、これらの任意のバージョンにアップデートすることが可能。
ダウンロードできるファイルは 00220033.dlm と 00440055.dlm、00550066.dlm をバイナリ結合したファイルになっているので、アドレス 0x44420C から末尾までを切り出して、00550066.dlm ファイルとして保存して使用する。
基本的にはバージョンアップすることを推奨。特に 2.50 以降はバージョンダウンできない。

http://ps-peripheral.dl.playstation.net/ps-peripheral/nasne/0151/KRST3101_0151_SECURE.dlm
http://ps-peripheral.dl.playstation.net/ps-peripheral/nasne/0152/KRST3101_0152_SECURE.dlm
http://ps-peripheral.dl.playstation.net/ps-peripheral/nasne/0171/KRST3101_0171_SECURE.dlm
http://ps-peripheral.dl.playstation.net/ps-peripheral/nasne/0200/KRST3101_0200_SECURE.dlm
http://ps-peripheral.dl.playstation.net/ps-peripheral/nasne/0210/KRST3101_0210_SECURE.dlm
http://ps-peripheral.dl.playstation.net/ps-peripheral/nasne/0211/KRST3101_0211_SECURE.dlm
http://ps-peripheral.dl.playstation.net/ps-peripheral/nasne/0250/KRST3101_0250_SECURE.dlm
http://ps-peripheral.dl.playstation.net/ps-peripheral/nasne/0251/KRST3101_0251_SECURE.dlm
http://ps-peripheral.dl.playstation.net/ps-peripheral/nasne/0257/KRST3101_0257_SECURE.dlm
http://ps-peripheral.dl.playstation.net/ps-peripheral/nasne/0260/KRST3101_0260_SECURE.dlm

その他

/sys1/11002200/00440055.dlm  には miniroot が含まれています。
また、基板にある EEPROM(S25FL128A) にも miniroot が2つ、内容違いで保存されています。

この記事が気に入ったらサポートをしてみませんか?