Kobo: データベースを修復する
kobo端末のデータベースが壊れたときの対処。
mobilereadを"kobo database disk image is malformed"などで検索すると山ほどヒットするので、データベースの障害に出くわす人もけっこういるはず。
修復するには基本、
1. ファクトリー・リセット
もしくは
2. ログアウトして、ログインし直す
(「設定」 > 「アカウント」 > 「楽天Kobo ログアウト」 ログインも同じ手順)
http://www.mobileread.com/forums/showpost.php?p=2494404&postcount=4
ということになるだろうが、ファクトリー・リセットは時間もかかるし、本も消えるし、普通はログアウト。
ログアウトのほうは本は消えないが、それでもメールアドレスやパスワードの入力からやり直しだし、同期に時間がかかったりする。
それに、Kobo eReader.confで設定したフルスクリーンやら本棚同期無効などの設定も消えるし、.kobo内のランチャーやらCFWのファイルやら自分で追加したファイルも消える(あるいは最後に同期を取った時の状態に戻るのかも?)
なので、自分でできる修復方法。
たぶんだらだら同期が終わるのを待つよりはやい。
◎修復方法の前に、データベース(.kobo/KoboReader.sqlite)のチェック方法
◯sqlite3を使う
Windowsの場合はsqlite3をインストールして、たぶんコマンドプロンプトから(http://www.sqlite.org/download.htmlのdllではなく、command line shellが入っているほう)。Macははじめから入っている?
KoboReader.sqliteを端末から持ってきて(もしくはフルパスでKoboReader.sqliteを指定)、
"ok"が出れば、問題なし。
"database disk image is malformed"というメッセージが出たら修復が必要。
◯Calibreを使う
Calirbreを起動して、KoboをUSBでPCに接続すると、勝手に上のチェックが行われる(あるいは、Kobo Utilities pluginをインストールしているからかも?)。
何もエラーが出なければとりあえず問題なし。
こちらもデータベースが壊れていたら、"database disk image is malformed"というメッセージが出て通信エラーになるので、要修復。
◎修復
ちょっと調べると、ダンプしてデータベースを作り直せば、修復できるという話がたくさん出てくる。たとえば、Calibreの作者さんも。
http://www.mobileread.com/forums/showpost.php?p=503757&postcount=2
ダンプして、sql文のテキストファイルを作り、それを元にデータベースを再構築する、という手順。
◯一挙にやるには、Kobo端末からKoboReader.sqliteをPCの適当な場所にコピーして(もしくは端末のKoboReader.sqliteをそのままフルパス指定で)
ただし、エラーで空のデータベースができてしまうことがあるので注意が必要。このやり方で作り直したときは、できあがったデータベースのサイズをかならず確認すべきだろう。
◯なので、dumpした一時ファイルを確認してから、データベースを作り直す
1. dumpする
dump.txtをチェック。dump.txtの末尾が
COMMIT;
となっていればOK。
2. データベースを作り直す
(windowsの場合は、"cat dump.txt | ..." ではなく、"type dump.txt | ..."?)
もし、dump.txtの末尾が
ROLLBACK; -- due to errors
となっているいると、作り直したnew_KoboReader.sqliteの中身は空っぽになる。
この場合は、エディタで"ROLLBACK; -- due to errors"を"COMMIT;"に書き直してから作り直すと、データベースはできあがる。が、エラーでロールバックしたのを無視してデータベースを作ることになるわけで、問題が発生する可能性は残るかも。(参考「Kobo touchのKoboReader.sqliteを修復する」)
ROLLBACKされたら、最初に挙げたログアウト方式でデータベースを更新したほうが安全かもしれない。
こんな感じだが、コマンドを打つのはちょっと、という人は、「Kobo: ひもづけなしで端末を使いたい」でも紹介したsqlitebrowserでダンプ・再構築作業はできるので、そちらで。(コマンド操作なら、上で書いたように1行か2行で終わるんだけど・・・)
1. dump(Export)
sqlitebrowserでKoboReader.sqliteを読み込んだら("Open Database")、
メニューの「File」 > 「Export」 > 「Database to SQL file...」 と進む。ダイアローグが現れるのでtalbleをすべて選択して「OK」、そして、適当な名前をつけて(dump.txtなど)保存。
2. 上述のように、ROLLBACKされてないか、dump.txtの末尾をチェックする
3. データベース作り直し(Import)
sqlitebrowserを起動したら、
・メニューの「File」 > 「Import」 > 「Database from SQL file...」 と進み、
・「Choose a file to import」のダイアローグが現れるので、さっき作ったdump.txtを指定して、「Open」。
・次に「Choose a filename to save under」のダイアローグが現れるので、保存するデータベースのファイル名を入力(new_KoboReader.sqliteなど)、そして「Save」。
あとは、できあがったnew_KoboReader.sqliteを端末のKoboReader.sqliteと入れ換える。
| 固定リンク
« ドイツ語多読本: Tine Mortier / Kaatje Vermeire: Marie und die Dinge des Lebens | トップページ | ドイツ語多読本: Torben Kuhlmann: Maulwurfstadt »
「kobo」カテゴリの記事
- 2022年新モデル Kobo Clara 2E 新リーク情報(2022.08.08)
- 2022年 新モデルはKobo Clara 2E のようだ(2022.08.05)
- Kobo: アップデート 4.32.19501(2022.04.16)
- Kobo Sage:バッテリー消費とkoreaderの対策(2022.04.19)
コメント