我正在运行 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 可以再次运行。但所有设置都会丢失。如果您想恢复它,请按照本文。
其中包括:
- 打开终端窗口并导航到
~/.config/banshee-1
sqlite3 并安装:sudo apt-get install sqlite3
- 备份该文件
banshee.db
。 - 使用sqlite3打开数据库文件:
sqlite3 banshee.db
- 做一个完整性检查通过发出命令
PRAGMA integrity_check;
。这将报告错误,但不会纠正这些错误 - 尝试命令
REINDEX;
如果以上方法均无效,请继续阅读恢复损坏的 Banshee 数据库。