Banshee 遇到致命错误(sqlite 错误 11:数据库磁盘映像格式错误)

Banshee 遇到致命错误(sqlite 错误 11:数据库磁盘映像格式错误)

我正在运行 ubuntu 10.10 Maverick Meerkat,最近我正在使用不稳定版本帮助测试 indicator-weather。但是有一个错误导致我的系统突然冻结(由于 indicator-weather 而不是 ubuntu),唯一的恢复方法是对系统进行硬重置。这种情况发生过几次。

经过几次重置后,当我尝试打开 banshee 时出现以下致命错误,迫使我退出 banshee。

在此处输入图片描述

屏幕截图不够清晰,无法读取错误,因此我将其发布在下面,

   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

需要说明的是,这种情况只发生在硬重置之后,而不是之前。我以前每天都使用 banshee,它运行良好。

有人能帮我解决这个问题吗?

答案1

不幸的是,这个问题并不罕见。它通常是由于 Banshee 运行时系统崩溃或断电引起的,但也可能是由其他原因引起的。Banshee 常见问题解答页面有一份有效的说明列表大多数时候. 在终端中,安装 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 正在努力实现数据库备份和恢复的自动化。如果您想了解最新进展,请随时抄送给自己错误报告

答案2

看起来 Banshee 的数据库已损坏。要运行 Banshee,您应该删除损坏的数据库文件(或修复它)。数据库位于

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

重命名后,Banshee 可以再次运行。但所有设置都会丢失。如果您想恢复它,请按照本文

其中包括:

  1. 打开终端窗口并导航到~/.config/banshee-1sqlite3 并安装:sudo apt-get install sqlite3
  2. 备份该文件banshee.db
  3. 使用sqlite3打开数据库文件:sqlite3 banshee.db
  4. 做一个完整性检查通过发出命令PRAGMA integrity_check;。这将报告错误,但不会纠正这些错误
  5. 尝试命令REINDEX;

如果以上方法均无效,请继续阅读恢复损坏的 Banshee 数据库

相关内容