web-dev-qa-db-ja.com

Bansheeで致命的なエラーが発生しました(sqliteエラー11:データベースディスクイメージの形式が正しくありません)

私は、ubuntu 10.10 Maverick Meerkatを実行しています。最近、不安定なbuidを使用して、インディケーター天気のテストを支援しています。ただし、システムが突然フリーズするバグがあり(インジケーターではなくubuntuの天気)、回復する唯一の方法はシステムのハードリセットを行うことです。これは数回起こりました。

そして、このようなリセットを数回行った後にbansheeを開こうとすると、次の致命的なエラーが発生し、bansheeを強制終了します。

enter image description here

スクリーンショットはエラーを読み取るほど明確ではないため、以下に投稿します。

   An unhandled exception was thrown: Sqlite error 11: database disk image is malformed (SQL: 
                BEGIN TRANSACTION;
                    DELETE FROM CoreSmartPlaylistEntries WHERE SmartPlaylistID IN (SELECT SmartPlaylistID FROM CoreSmartPlaylists WHERE IsTemporary = 1);
                    DELETE FROM CoreSmartPlaylists WHERE IsTemporary = 1;
                COMMIT TRANSACTION)

  at Hyena.Data.Sqlite.Connection.CheckError (Int32 errorCode, System.String sql) [0x00000] in <filename unknown>:0 
  at Hyena.Data.Sqlite.Connection.Execute (System.String sql) [0x00000] in <filename unknown>:0 
  at Hyena.Data.Sqlite.HyenaSqliteCommand.Execute (Hyena.Data.Sqlite.HyenaSqliteConnection hconnection, Hyena.Data.Sqlite.Connection connection) [0x00000] in <filename unknown>:0 
Exception has been thrown by the target of an invocation.

  at System.Reflection.MonoCMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 
  at System.Reflection.MonoCMethod.Invoke (BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0 
  at System.Reflection.ConstructorInfo.Invoke (System.Object[] parameters) [0x00000] in <filename unknown>:0 
  at System.Activator.CreateInstance (System.Type type, Boolean nonPublic) [0x00000] in <filename unknown>:0 
  at System.Activator.CreateInstance (System.Type type) [0x00000] in <filename unknown>:0 
  at Banshee.Gui.GtkBaseClient.Startup () [0x00000] in <filename unknown>:0 
  at Hyena.Gui.CleanRoomStartup.Startup (Hyena.Gui.StartupInvocationHandler startup) [0x00000] in <filename unknown>:0 

.NET Version: 2.0.50727.1433
OS Version: Unix 2.6.35.27

Assembly Version Information:

gkeyfile-sharp (1.0.0.0)
Banshee.AudioCd (1.9.0.0)
Banshee.MiniMode (1.9.0.0)
Banshee.CoverArt (1.9.0.0)
indicate-sharp (0.4.1.0)
notify-sharp (0.4.0.0)
Banshee.SoundMenu (1.9.0.0)
Banshee.Mpris (1.9.0.0)
Migo (1.9.0.0)
Banshee.Podcasting (1.9.0.0)
Banshee.Dap (1.9.0.0)
Banshee.LibraryWatcher (1.9.0.0)
Banshee.MultimediaKeys (1.9.0.0)
Banshee.Bpm (1.9.0.0)
Banshee.YouTube (1.9.0.0)
Banshee.WebBrowser (1.9.0.0)
Banshee.Wikipedia (1.9.0.0)
pango-sharp (2.12.0.0)
Banshee.Fixup (1.9.0.0)
Banshee.Widgets (1.9.0.0)
gio-sharp (2.14.0.0)
gudev-sharp (1.0.0.0)
Banshee.Gio (1.9.0.0)
Banshee.GStreamer (1.9.0.0)
System.Configuration (2.0.0.0)
NDesk.DBus.GLib (1.0.0.0)
gconf-sharp (2.24.0.0)
Banshee.Gnome (1.9.0.0)
Banshee.NowPlaying (1.9.0.0)
Mono.Cairo (2.0.0.0)
System.Xml (2.0.0.0)
Banshee.Core (1.9.0.0)
Hyena.Data.Sqlite (1.9.0.0)
System.Core (3.5.0.0)
gdk-sharp (2.12.0.0)
Mono.Addins (0.4.0.0)
atk-sharp (2.12.0.0)
Hyena.Gui (1.9.0.0)
gtk-sharp (2.12.0.0)
Banshee.ThickClient (1.9.0.0)
Nereid (1.9.0.0)
NDesk.DBus.Proxies (0.0.0.0)
Mono.Posix (2.0.0.0)
NDesk.DBus (1.0.0.0)
glib-sharp (2.12.0.0)
Hyena (1.9.0.0)
System (2.0.0.0)
Banshee.Services (1.9.0.0)
Banshee (1.9.0.0)
mscorlib (2.0.0.0)

Platform Information: Linux 2.6.35-27-generic i686 unknown GNU/Linux

Disribution Information:

[/etc/lsb-release]
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.10
DISTRIB_CODENAME=maverick
DISTRIB_DESCRIPTION="Ubuntu 10.10"

[/etc/debian_version]
squeeze/sid

明確にするために、これはハードリセット後にのみ発生し、それ以前には発生しませんでした。私は毎日バンシーを使っていましたが、完璧に機能しました。

誰も私がこれを修正するのを助けることができますか?

6
nik90

残念ながら、この問題は完全に珍しいことではありません。多くの場合、Bansheeの実行中のシステムクラッシュまたは停電が原因ですが、他の原因も考えられます。 Banshee FAQ page には、ほとんどの場合に動作する命令のリストがあります。ターミナルで、sqlite3プログラムをインストールした状態で、これを試してください:

Bansheeがデータベースを保存するディレクトリに移動します。

cd ~/.config/banshee-1

データベースで「.dump」コマンドを実行すると、すべてのテーブルがテキストに変換されます。この出力をdumpという名前のファイルに保存します。まだお持ちでない場合は、Sudo apt-get install sqlite3が必要になる場合があります。

sqlite3 banshee.db ".dump" > dump

現在のデータベースの名前を変更してバックアップを作成します。

mv banshee.db banshee.db.backup

dumpの内容をsqlite3コマンドに渡して、新しいデータベースを作成します(できれば元の内容と同じ内容で):

cat dump | sqlite3 banshee.db

Bansheeでは、データベースのバックアップとリカバリを自動化するための作業が進行中です。進行状況を最新に保ちたい場合は、 バグレポート にCCを登録してください。

Bansheeのデータベースが破損しているようです。 Bansheeを実行するには、破損したデータベースファイルを削除(または修復)する必要があります。データベースは次の場所にあります

~/.config/banshee-1/banshee.db

名前を変更すると、Bansheeを再度実行できます。ただし、設定はすべて失われます。復旧したい場合は、 この記事 に従ってください。

それはで構成されています:

  1. ターミナルウィンドウを開き、~/.config/banshee-1に移動してsqlite3をインストールします。Sudo apt-get install sqlite3
  2. Backupファイルbanshee.dbをコピーしてバックアップします。
  3. Sqlite3を使用してデータベースファイルを開きます:sqlite3 banshee.db
  4. コマンドPRAGMA integrity_check;を発行して、 整合性チェック を実行します。これはエラーを報告しますが、それらを修正しません
  5. コマンドを試してください REINDEX;

上記のいずれも機能しない場合は、読み続ける 破損したBansheeデータベースの回復

2
Lekensteyn