REGZA Z1の録画用HDD交換をやってみました
はじめに
自宅の液晶テレビ(東芝 REGZA 42Z1)に番組録画用に接続して8年ほど使用しているUSBハードディスク(HDD)から異音(高周波音)がするようになったのを受けて交換したので作業内容を以下の通り記します。
方針
- 交換元HDD内の番組データは交換先HDDでも視聴できるようにすべて移動(コピー)させる(抽選に当って子供が出演したNHK Eテレの番組録画データなど、大事な番組データが色々あるので消したくない)。
- 予約設定しているテレビ番組の連ドラ録画予約に影響が出ないようにする(家族からクレームが来るので)。
- テレビの仕様上録画できる番組数は500個までという事もあり交換元HDDの容量(2TB)を超過しそうな事態はこれまで起きていないが、せっかくだからより大きいサイズ(3TB)のHDDに交換する。
- HDDのファイルシステム(xfs)を操作できるOSとしてUbuntuをVirtualBoxの仮想マシンで構築、Ubuntu上でデータのコピーを行う(Ubuntuインストールできる物理マシンが用意できなかったため)。
- コピーはrsyncにて実施し、中断して再開しても差分のみコピーされるようにして作業時間の効率化を図る。
作業環境
作業用パソコン
機種名:Intel NUC NUC6i5SYH OS:Windows10 ver1809 VirtualBoxのバージョン:5.2.26 Ubuntuのバージョン:18.10
交換元HDD
機種名:IODATA HDCR-U2.0EK 容量:2TB
交換先HDD
機種名:ELECOM SGD-NZ030UBK 容量:3TB
テレビ
機種名:東芝 REGZA 42Z1
1. 実施手順
事前準備
1-1. 交換元HDDをテレビから取り外す
テレビのリモコンから以下の通り実施し、取り外してもOK的な表示が出たらテレビから取り外す。
設定メニュー -> レグザリンク設定 -> USBハードディスク設定 -> 機器の取りはずし
1-2. 交換先HDDをテレビに接続して初期化
USB端子に接続すると「新しいUSBハードディスクを検出しました~」というメッセージが出るので「はい」を選択し、初期化を開始する。終了したら手順1-1.と同様手順で取り外す。
1-3. VirtualBoxにUbuntuの仮想マシンをインストール
Ubuntu japanese teamのサイトからISOファイルをダウンロードしてインストール実施。詳細は割愛します。
起動したらインターネットアクセスと、WindowsからのSSHアクセスができるよう、良い感じに設定しておく。
1-4. VirtualBoxマネージャー起動
アイコンをダブルクリックするなどして起動させる。
1-5. HDD(交換元、交換先)をPCに接続する
Windows上で「HDDを使用できるようにフォーマットしますか」的なポップアップが出力されるが、ここでは何もしない。
1-6. VirtualBoxマネージャーでのUSBデバイス登録
VirtualBoxマネージャー画面にてUbuntuの仮想マシンを選択し、
設定 -> USB
と画面を遷移させる。設定画面にて以下の通り選択。
「USBコントローラを有効化」をチェック USB3.0コントローラーを選択 USBデバイスフィルター右側の、追加ボタンをクリック
表示される、「I-O DATA Device~」とか「Seagete~」などのUSB HDDを示すデバイスを選択してOKボタンを押下。以下のような画面になる。
ちなみに表示されるUSBデバイスのうち「Intel Corp.」というのを選択して仮想マシンを起動するとUSBマウスもキーボードも一切操作が出来なくなったので、選択しない事。
こちらで実施した際にはこのタイミングでWindows側にてUSB HDDの接続がキャンセルされた(デバイス取り外しの警告音が鳴り、タスクバーのアイコン表示が消える)。
Ubuntuの仮想マシンを起動し、USB HDDが認識、マウントされていることを確認する。
以下は実行例。sdc1が交換元HDDで、sdb1が交換先HDD。
$ df -h Filesystem Size Used Avail Use% Mounted on udev 975M 0 975M 0% /dev tmpfs 200M 1.4M 198M 1% /run /dev/sda1 49G 7.4G 40G 16% / tmpfs 997M 0 997M 0% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 997M 0 997M 0% /sys/fs/cgroup /dev/loop0 3.8M 3.8M 0 100% /snap/gnome-system-monitor/57 /dev/loop1 2.3M 2.3M 0 100% /snap/gnome-calculator/238 /dev/loop3 15M 15M 0 100% /snap/gnome-logs/45 /dev/loop2 141M 141M 0 100% /snap/gnome-3-26-1604/74 /dev/loop5 88M 88M 0 100% /snap/core/5662 /dev/loop4 43M 43M 0 100% /snap/gtk-common-themes/701 /dev/loop6 35M 35M 0 100% /snap/gtk-common-themes/1122 /dev/loop7 2.3M 2.3M 0 100% /snap/gnome-calculator/260 /dev/loop8 91M 91M 0 100% /snap/core/6405 /dev/loop9 13M 13M 0 100% /snap/gnome-characters/139 /dev/loop10 141M 141M 0 100% /snap/gnome-3-26-1604/78 tmpfs 200M 32K 200M 1% /run/user/1000 /dev/sdb1 2.8T 599G 2.2T 22% /media/bata64/1e5c0ba9-7a1a-4cfc-8eda-e4623e9e34d9 /dev/sdc1 1.9T 1.7T 196G 90% /media/bata64/3fd2e960-80de-4715-b7d0-c87580404cd5
その後、Windows側に表示される「HDDを使用できるようにフォーマットしますか」的なポップアップをキャンセルで閉じる。「はい」を選ぶとNTFSでのフォーマットが始まってしまうかも?
2. データコピー
2-1. rsyncでコピー実行
sdc1からsdb1へのデータコピーを、アーカイブモードで実行。
$ sudo rsync -av /media/bata64/3fd2e960-80de-4715-b7d0-c87580404cd5/ /media/bata64/1e5c0ba9-7a1a-4cfc-8eda-e4623e9e34d9/
パスワードを入力したらコピーが開始される。
[sudo] bata64 のパスワード: sending incremental file list ./ .toshiba_dir_info_e89d87b805d3 .toshiba_serieslist_e89d87b805d3 .toshiba_size_info_e89d87b805d3 M000020160730192951e89d87b805d3.dtv M000020160730192951e89d87b805d3.dtv.chap : :
別ウィンドウにてUbuntuにアクセスし、iostatでデータ転送状況を確認する。毎秒だとわかりづらいので1分(60秒)間隔で確認すると、sdcのreadとsdbのwriteがだいたい26MB/secで推移している事がわかる。
$ iostat -xk 60 sdb sdc avg-cpu: %user %nice %system %iowait %steal %idle 5.14 0.00 3.51 41.26 0.00 50.09 Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util sdb 0.07 26.10 0.15 26313.78 0.00 0.08 0.00 0.32 16.00 327.07 8.60 2.25 1008.19 6.71 17.55 sdc 409.72 0.07 26219.07 0.43 0.00 0.02 0.00 20.00 6.35 77.00 3.51 63.99 6.38 2.43 99.65 avg-cpu: %user %nice %system %iowait %steal %idle 4.83 0.00 3.71 41.62 0.00 49.84 Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %rrqm %wrqm r_await w_await aqu-sz rareq-sz wareq-sz svctm %util sdb 0.00 26.53 0.00 27012.49 0.00 0.02 0.00 0.06 0.00 294.18 7.87 0.00 1018.06 6.65 17.65 sdc 402.55 0.03 25750.73 0.03 0.00 0.00 0.00 0.00 6.48 182.00 3.47 63.97 0.75 2.47 99.37
あとは完了まで放っておく。
なお、交換元HDDのディスク使用量が約1.7TB、転送スループットが毎秒27MBとして、perlを電卓代わりにして所要時間を計算してみる。転送完了には19時間くらいかかる見通し。
$ perl -le 'print ((1.7*1024*1024)/26/60/60)' 19.0446495726496
2-2. rsyncのコピー中断と再開
rsyncを実行しているウィンドウにてCtrl+C(Controlキー押しながらC押下)すれば中断できる。録画予約している番組の開始時間が迫っていたり、HDD内の番組が見たいと家族に言われるなどしてテレビに再接続する必要がある場合は中断する(実際、3回くらい中断した)。
Ubuntuをシャットダウンし、Windows側に表示される「HDDを使用できるようにフォーマットしますか」的なポップアップをすべてキャンセル選択したあと交換元HDDをパソコンから抜去、テレビに接続すればこれまで通りに使用できる。
再開する場合はテレビからのHDD取り外しして「1-4. VirtualBoxマネージャー起動」を再度実施、rsyncを実施すると転送完了していないファイルのコピーから再開されるので、コピーを初めからやり直さなくても済む*1。
rsyncが終わったら、ファイルサイズ、タイムスタンプ、パーミッション、ファイル数がコピー元と先で一致しているかを確認する。
2-3. コピー結果の確認
終わった後、結果を確認
確認用一時ファイル作成
$ cd /tmp $ ls -la /media/bata64/1e5c0ba9-7a1a-4cfc-8eda-e4623e9e34d9 > ./in.txt $ ls -la /media/bata64/3fd2e960-80de-4715-b7d0-c87580404cd5 > ./out.txt
ファイル数を比較。移行元も先も、1944個なのでOK。
$ wc -l *.txt 1944 in.txt 1944 out.txt 3888 合計
ls -la実行結果の差分を比較。総ファイルサイズと親ディレクトリのサイズが異なるが、サイズが異なるHDDの物理的な差(プラッタとか)だと思ってみなかったことにする。
ディレクトリ以下のファイルについては差分が無いので、OK!
$ diff -u in.txt out.txt --- in.txt 2019-02-18 07:38:14.286398769 +0900 +++ out.txt 2019-02-18 07:38:30.682665698 +0900 @@ -1,5 +1,5 @@ -合計 1748541044 -drwxr-xr-x 4 root root 106496 2月 17 10:00 . +合計 1748580632 +drwxr-xr-x 4 root root 114688 2月 17 10:00 . drwxr-x---+ 4 root root 4096 2月 17 22:07 .. drwx------ 2 root root 20 2月 23 2016 .M000020130908080004e89d87b805d3 -rw-r--r-- 1 root root 272976 2月 17 20:23 .toshiba_dir_info_e89d87b805d3
3. UUIDの変更
3-1. xfs関連ユーティリティをインストール
Ubuntuのコンソールにて以下を実行。なおxfsprogsのインストールは先に実施しても構わない。
$ sudo apt install xfsprogs
3-2. UUID確認
$ sudo blkid /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/loop6: TYPE="squashfs" /dev/loop7: TYPE="squashfs" /dev/sda1: UUID="5a156a42-a6a9-4349-a871-562ba486c38f" TYPE="ext4" PARTUUID="5f616464-01" /dev/sdb1: UUID="1e5c0ba9-7a1a-4cfc-XXXX-e4623e9e34d9" TYPE="xfs" PARTLABEL="primary" PARTUUID="160f362a-431c-4501-9327-8716833491ef" /dev/sdc1: UUID="3fd2e960-80de-4715-YYYY-c87580404cd5" TYPE="xfs" PARTLABEL="primary" PARTUUID="d9709f86-e580-4805-88cc-2c8d521637d8" /dev/loop8: TYPE="squashfs" /dev/loop9: TYPE="squashfs" /dev/loop10: TYPE="squashfs"
sdb1のUUIDは「1e5c0ba9-7a1a-4cfc-XXXX-e4623e9e34d9」
sdc1のUUIDは「3fd2e960-80de-4715-YYYY-c87580404cd5」
であることがわかる。
中断と再開を繰り返していると交換元と交換先のHDDのどちらを先に差したかわからなくなるので念のため確認。
$ df -h Filesystem Size Used Avail Use% Mounted on udev 975M 0 975M 0% /dev tmpfs 200M 1.4M 198M 1% /run /dev/sda1 49G 7.4G 40G 16% / tmpfs 997M 0 997M 0% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 997M 0 997M 0% /sys/fs/cgroup /dev/loop0 35M 35M 0 100% /snap/gtk-common-themes/1122 /dev/loop1 13M 13M 0 100% /snap/gnome-characters/139 /dev/loop2 141M 141M 0 100% /snap/gnome-3-26-1604/74 /dev/loop3 3.8M 3.8M 0 100% /snap/gnome-system-monitor/57 /dev/loop4 88M 88M 0 100% /snap/core/5662 /dev/loop5 141M 141M 0 100% /snap/gnome-3-26-1604/78 /dev/loop6 2.3M 2.3M 0 100% /snap/gnome-calculator/260 /dev/loop7 43M 43M 0 100% /snap/gtk-common-themes/701 /dev/loop8 91M 91M 0 100% /snap/core/6405 /dev/loop9 15M 15M 0 100% /snap/gnome-logs/45 /dev/loop10 2.3M 2.3M 0 100% /snap/gnome-calculator/238 tmpfs 200M 32K 200M 1% /run/user/1000 /dev/sdc1 1.9T 1.7T 196G 90% /media/bata64/3fd2e960-80de-4715-b7d0-c87580404cd5 /dev/sdb1 2.8T 1.7T 1.2T 60% /media/bata64/1e5c0ba9-7a1a-4cfc-8eda-e4623e9e34d9
よって、3TBの交換先HDD「sdb」のUUIDを、2TBの交換元HDD「sdc」のUUID「3fd2e960-80de-4715-YYYY-c87580404cd5」に変更する。
3-3. アンマウント
アンマウントしないとUUID変更できなかったので、アンマウントする。
$ sudo umount /media/bata/1e5c0ba9-7a1a-4cfc-8eda-e4623e9e34d9
3-4. UUID変更
以下を実行
$ sudo xfs_admin -U 3fd2e960-80de-4715-YYYY-c87580404cd5 /dev/sdb1
※アンマウントしないと以下の通りエラー
xfs_admin: /dev/sdb1 contains a mounted filesystem fatal error -- couldn't initialize XFS library
※アンマウントしてから再試行すると、以下の通り成功
$ sudo xfs_admin -U 3fd2e960-80de-4715-YYYY-c87580404cd5 /dev/sdb1 Clearing log and setting UUID writing all SBs new UUID = 3fd2e960-80de-4715-YYYY-c87580404cd5
確認すると以下の通りUUIDが変更されている事がわかる。
$ sudo xfs_admin -u /dev/sdb1 UUID = 3fd2e960-80de-4715-YYYY-c87580404cd5
4. HDDの交換
4-1. 交換先HDDをテレビに接続
パソコンからHDDを取り外して交換先HDDをテレビに接続する。
交換元HDDとして認識されたら成功です。