NAS をアップデートしたら HyperBackup が壊れた話
synology の DS220+ を買って快適に使っていたのですが DSM 7.2-64570 Update 1 にアップデートした週末、HyperBackup が失敗したとメールでアラート。
詳細を確認すると USB メモリへのアクセスに失敗しているようです。
DSM から見た範囲で権限に問題は無いし Synology のサポートに連絡。デバッグログを提出して数回のやり取りの後リモートアクセスを要求してきたけどちょっと嫌だったので別の USB メモリを用意して差し替えてみた所、正常にバックアップが実行できました。同様の症状でお悩みの方は過去のバックアップが lost して良いなら新しい USB を使うかフォーマットすれば解決するかもしれません。(もしくは root 権限でファイルのパーミッションを書き換えるか)
詳細
環境
- DS220+
- DSM 7.2-64570 Update 1 (アップデート前は7.1系)
- admin アカウントは無効化しているので他の管理アカウントを作っています。(以下そのアカウント名は*****で伏せます)
エラーログ
- Exception occurred while backing up data. (No permission to access the backup destination [usbshare1]. Please check you have the right permission to the backup destination.) [User: *****, Path: /volumeUSB1/usbshare/DS220_2.hbk/Config/target_info.db, Reason: ***** has no permission on accessing /volumeUSB1/usbshare/DS220_2.hbk/Config/target_info.db
- Failed to access the backup destination. (No permission to access the backup destination [usbshare1]. Please check you have the right permission to the backup destination.)
HyperBackupの画面では
「今すぐバックアップ」や「バージョンリスト」がグレイアウトして押下できません。
試したこと
サポートからの最初の指示は「FileStationの管理画面でバックアップを行っているアカウントの読み取り/書き込みにチェックを入れろ」
- 該当画面では何もチェックを入れてないのでコントロールパネル - 共有フォルダ - プロパティ - 権限 に表示されている (読み取り/書き込み) が継承されている筈 (サポートへ確認済み)。
- 念のため FileStation で guest 以外の全アカウントの読み取り/書き込みにチェックを付けてみたけど変化なし。
- Hyper Backup の+マークからバックアップウィザードを起動して新規バックアップタスクを作成してみると最後の完了ボタンを押した後「このバックアップ先の共有フォルダにアクセスするには権限がありません。システム管理者にお尋ねください」のエラーになる。
パーミッション
この時 ssh でログインして見た /volumeUSB1/usbshare/ は
/volumeUSB1/usbshare/ # ls -al total 32 drwx------ 7 root root 4096 Mar 25 2022 . drwxr-xr-x 3 root root 4096 Jun 27 12:08 .. drwx------ 5 root root 4096 Mar 20 2022 DS220_1 drwx------ 7 ***** users 4096 Jun 18 02:12 DS220_2.hbk drwxrwxrwx+ 3 root root 4096 Jun 27 12:08 @eaDir drwx------ 3 root root 4096 Mar 20 2022 @keystore drwx------ 2 root root 4096 Mar 19 2022 @tmp
USB自体の所有者が root で group/other へのアクセス許可が出てないのが気になります。(DSM7.1で正常だった時どういう状態だったのかは不明)
この後、調査の為リモートアクセスを要求されたのですが知らない人に admin 権限渡すとお嫁に行けない体にされてしまいそうだったので、まだやっていなかった USB メモリの交換を試してみることに。
→ 結果は正常。
パーミッションは以下のようになっていました。
/volumeUSB1/usbshare/ # ls -al total 28 drwxrwxrwx 6 root root 4096 Jun 28 17:14 . drwxr-xr-x 3 root root 4096 Jun 28 17:03 .. drwxr-xr-x 7 ***** users 4096 Jun 28 18:11 DS220_1.hbk drwxrwxrwx+ 3 root root 4096 Jun 28 17:14 @eaDir drwx------ 3 root root 4096 Jun 28 17:07 @keystore drwxrwxrwt 2 root root 4096 Jun 28 17:03 @tmp
DSM7.1→7.2へのアップデートプロセスのどこかで USB メモリの group/other パーミッションが落ちてしまったのでしょうか?
現在は元の USB メモリをフォーマット後、新規にバックアップタスクを設定して正常に動いています。
(フォーマットする際、キーストアを USB に作っている人はエクスポートして保存しておくのを忘れないように)
私はバックアップの履歴が欲しくなるほど使い込んでないのでフォーマットしてもダメージはないのですが過去のバックアップにアクセスできなくなるというのはかなり重大なインシデントのような…
追記:
その後、DSM 7.2.1-69057 Update 1 へのアップデートで再発しました。
USBメモリの挿抜が有効かもしれません。 → 続:NAS をアップデートしたら HyperBackup が壊れた話