Banshee 遇到致命错误(sqlite error 11: database disk image is malformed)

nik*_*k90 6 banshee

我正在运行 ubuntu 10.10 Maverick Meerkat,最近我正在帮助使用不稳定的 buids 测试指标天气。然而,有一个错误导致我的系统突然冻结(由于指示器天气而不是 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
Run Code Online (Sandbox Code Playgroud)

明确地说,这仅发生在硬重置之后,而不是之前。我以前每天都使用banshee,效果很好。

谁能帮我解决这个问题?

Mic*_*ker 9

不幸的是,这个问题并不少见。它通常是由 Banshee 运行时系统崩溃或断电引起的,但也可能有其他原因。该女妖FAQ页面有该工作指令列表的大部分时间。在终端中,安装了 sqlite3 程序后,试试这个:

切换到 Banshee 存储数据库的目录:

cd ~/.config/banshee-1
Run Code Online (Sandbox Code Playgroud)

在数据库上执行“.dump”命令,这会将所有表转换为文本。将此输出保存在名为dump. sudo apt-get install sqlite3如果您还没有它,则可能需要。

sqlite3 banshee.db ".dump" > dump
Run Code Online (Sandbox Code Playgroud)

重命名当前数据库以创建备份:

mv banshee.db banshee.db.backup
Run Code Online (Sandbox Code Playgroud)

通过您的内容dump通过sqlite3命令,创建一个新的数据库(希望有相同内容的原件):

cat dump | sqlite3 banshee.db
Run Code Online (Sandbox Code Playgroud)

Banshee 正在进行使数据库备份和恢复自动化的工作。如果您想了解最新进展,请随时将自己抄送给错误报告