SHARP AQUOSテレビの録画用USB HDDのデータを移行する

この記事では、USB-HDD録画に対応したSHARP AQUOSテレビにおいて、録画データを削除せずに別HDDに移行する方法をまとめています。
SeeQVault（SQV）など異なる機器に録画データを移行できるテレビであれば良いのですが、一部のテレビはSQV非対応でそのテレビ内でのみ再生可能です。また、HDDを途中で入れ替えることは想定しておらず、壊れる前にHDDを追加で登録して録画先を変更する前提となっているようです。そこで、同じテレビ内で、以前の録画データを保持しつつHDDを交換することに挑戦します。

## 注意事項

:::note alert
**警告**
この記事に記載されている手順を実行することにより、録画データの破損や機器の故障等が発生した場合でも一切の責任を負いかねます。
:::

:::note warn
**注意**
一部の機器は、本手順によりデータ移行ができない場合があります。可能であれば、USB-HDDを別途登録して、消えてもよい録画データを使用して試してみることをお勧めします。
:::

:::note warn
**注意**
本手順は、コピーガードを解除する手順ではありません。データ移行では、コピーガードがかけられている状態のデータに対して、（コピーガードがかけられたまま）複製を行います。
:::

## 本記事によりできること

* 長時間使った録画用USB-HDDが壊れる前に、新しいHDDに移行する
* 現在使用している録画用USB-HDDの容量を、より容量の大きいHDDに移行することで拡張する


:::note info

USBハブに対応しているテレビであれば、（本記事の趣旨である）中身移動ではなく、2台同時に接続して、新しいHDDを録画用に、古い録画を見るときはHDDを切り替えるのが最も安全だと思います。

:::

## 必要なもの

* 録画データが保存されているUSB-HDD
    * Linuxで読み取れる状態であれば大丈夫です
    * 「機器の登録解除」をしていない状態です（登録解除されている状態で上手くいくか分かりません）
* 新しいUSB-HDD
    * 「USBメモリ」という判定になるものは、録画用HDDとして初期化できないため、使用できません。判定条件は分からないですが、USB接続の32GB SSDでもUSB-HDD判定となったため、`S.M.A.R.T.`情報をもつなど据え置きのストレージである振る舞いをするものであれば良いのかもしれません。
* Linux
    * WSLではだめです
    * VMwareなど、ホストOS型の仮想化であれば大丈夫です
    * 今回はVMWare+Ubuntu 20.04を使用します
* Linuxに関する基本的な知識
    * コマンドの実行方法、マウントの仕方、ファイルシステムの説明は省略しています。
* Sharp AQUOSテレビ
    * USB-HDDに対応しており、複数台のUSB-HDDを登録する機能やUSB-HDDを取り外す機能を有すること


## 手順

1. [テレビ側] 現在接続しているHDDを「取り外し」する（設定画面で行います）
1. [テレビ側] 現在接続しているHDDをテレビから物理的に外して、新しいUSB-HDDを接続する
1. [テレビ側] 新しいUSB-HDDを「初期化」する

    :::note info
    
    「初期化」が「登録解除」や「取り外し」と同じ場所にあるため、以前登録していたHDDが初期化されるように見えますが、「初期化」は新規に接続しているHDDに対する処理になります。（念のためマニュアルを事前確認してください）
    
   :::
    
    :::note info
    
    USBメモリなど、非対応の機器を選んだ場合は初期化処理できません
    
    

1. [テレビ側] 新しいUSB-HDDを「取り外し」して、電源を切る
1. [Linux側] 新しいUSB-HDDと古いUSB-HDDを二つ同時に接続し、マウントする
1. [Linux側] 下記のコマンドを実行することによりコピーする
    
    ```
    # cp -p /mnt/old* /mnt/new
    ```

    :::note info
    
    /mnt/oldや/mnt/new は実際のマウント位置に合わせてください。-pオプションを付加することで、タイムスタンプなどの属性情報もそのままコピーします。

1. [Linux側] 両方のHDDのマウントを解除し、取り外す
1. [テレビ側] 新しいUSB-HDDを取り付けて、電源を入れる

ここで新しいUSB-HDDが正しく認識されなくなった場合は、下記の手順を実行してください。ただし、ファイルシステムがXFSとなっているHDD限定です。

1. [テレビ側] HDDを取り外し、電源を切る
1. [Linux側] HDDを接続する（マウントは行わない）
1. [Linux側] 下記のコマンドを確認し、ファイルシステムがXFSであることを確認する
    ```
    $ df -HT
    ```
    接続したHDDが書きのような表示なら、XFSのファイルシステムです。
    ```
    /dev/sde1      xfs       (任意の値)  (任意の値)  (任意の値)  (任意の値)% (任意の値)
    ```
    sde1ではなくsdb1やsdc1などの可能性もあります。

1. [Linux側] 下記のコマンドを実行する
    ```
    sudo xfs_repair -L /dev/sde1
    ```

    :::note alert
    **警告**

    このコマンドによりファイルシステムごと破壊される可能性もあるため、必ずセクタバイセクタでHDD丸ごとバックアップを取ってから行ってください。

    :::


    :::note warn
    **注意**
    `/dev/sde1` の箇所は一つ前で表示された名前にしてください。 間違ったデバイスを選ばないよう、試しにマウントしてファイルの中身を確認するなどしてください（＊実行前にマウントを解除してください）。
    
    :::


    このコマンドは、XFSの修復を行うコマンドです。-Lを指定することで、ジャーナルログを強制的に消去します。今回、ファイルシステムの破損ではないため本来はこのコマンドを使用しませんが、今回ジャーナルログを消すことでHDDが認識しました。
    

## ほかに試したこと／分かったこと

* Linuxでマウントしただけや、HDDからファイルを別の場所にコピーしただけでもUSB-HDDが認識されなくなる場合がある
    * xfs_repair -L を実行したら直りました
    * 最初は最終アクセス日時で判定しているのかと思ったのですが、そうでもないようです
* 同一機器の判定はHDDのシリアル番号で判定している
    * テレビによっては違うかもしれません
    * パーティションのUUIDで同一機器の判定を行っている場合があります。
* AAM/APMや、AVコマンドの対応、UASP対応に関わらずUSB-HDDとして認識可能
    * ○○の対応が必須と記載されているテレビはもちろん必須です
    * HDDであれば、バスパワー対応が必要です（SSDは1台は少なくともセルフパワーで大丈夫です）
    * 前述の通り、USBメモリはだめでしたがUSBメモリ並みのUSB接続SSDも認識されたので、`S.M.A.R.T.`に対応しているかで判定をしている気がします（あくまで推測です）。「初期化」の際に`USBメディア`と表示された場合は、USB-HDDとして使用できません。
    * 少し古いテレビではUSBメモリの写真等を表示できる機能があります。その場合、USB-HDDとして初期化可能でも「USBメディアのような」振る舞いをしますが、その時点では対応できているか分からないので、「初期化」の画面で表示される判定結果を見てください。

## SHARP以外のHDDデータ移行

基本的に、HDD本体のシリアルナンバーを変更するような作業がなければ移行は可能だと思います。ただし、機器の同一判定条件や、復号を行うための条件をある程度把握する必要があります。

## 参考にしたWebサイト

http://quuta.atgj.net/etc/2019022601

SHARP AQUOS TVで実際にHDD以降をされた方で、その手順が丁寧に記載されています。筆者も最初にこの記事を参考にHDDを以降しようとしましたがうまくいかず追加で色々と試した、という経緯があります。

https://sub-rock.hatenablog.jp/entry/SHARP_TV_64GB_USB

USBメモリ判定になる理由を考えるときに参考にしました。