为什么 Firefox 抱怨无法打开我的个人资料?

为什么 Firefox 抱怨无法打开我的个人资料?

我正在尝试让 Firefox 使用多个配置文件(在 Fedora 33 下)。这不是一个新的配置;我过去一直都能成功运行,但 Firefox 突然似乎不高兴了。如果我尝试使用显式配置文件启动 Firefox,如下所示:

firefox --profile default

它抱怨道:

Your Firefox profile cannot be loaded. It may be missing or inaccessible.

虽然:

  • 名为的配置文件default存在并在配置文件管理器中可见。

  • 配置文件的条目default存在于~/.mozilla/firefox/profiles.ini

    [Profile1]
    Name=default
    IsRelative=1
    Path=8hiuv29u.default
    
  • 指定目录存在:

    $ ls -ld ~/.mozilla/firefox/8hiuv29u.default
    drwx------ 11 lars lars 4096 Jan 12 16:13 /home/lars/.mozilla/firefox/8hiuv29u.default
    
  • 如果我运行firefox而不添加任何附加参数,它会调出配置文件管理器。如果我选​​择default然后Start Firefox,它会按预期打开浏览器。

这种情况发生在多个配置文件上,而不仅仅是default配置文件。这些都是刚刚创建的配置文件;起初,我以为可能是过时的配置文件存在一些问题,所以我删除了所有旧配置文件并重新创建了它们。

我在网上找到的大多数解决方案都归结为“删除您的配置文件并重新创建”,但我这样做了却没有成功。如果没有解决方案,也欢迎提出建议,从 Firefox 获取更多(任何!)详细的调试信息以帮助诊断问题。


更新:为了确保以前的安装中没有出现任何奇怪的东西,我尝试了这个:

$ rm -rf $HOME/.mozilla $HOME/.cache/mozilla

然后启动配置文件管理器:

$ firefox --profilemanager

创建两个新的配置文件(defaultwork),然后尝试:

$ firefox --profile default

但这仍然会产生同样的错误。

答案1

问题是,它--profile不采用个人资料的名称;相反,它采用小路。我意识到这包含在帮助输出中,但它并不明显,我只在运行时注意到了这种行为strace。比较一下strace运行中的输出firefox -profile default(其中我的 cwd 是~/.mozilla):

925559 stat("/home/lars/.mozilla/firefox/profiles.ini", {st_mode=S_IFREG|0664, st_size=307, ...}) = 0
925559 openat(AT_FDCWD, "/home/lars/.mozilla/firefox/profiles.ini", O_RDONLY) = 12
925559 getcwd("/home/lars/.mozilla", 4096) = 20
925559 lstat("/home/lars/.mozilla/default", 0x7ffd7af11200) = -1 ENOENT (No such file or directory)

firefox -profilemanager这样,运行并选择默认配置文件的结果如下:

927814 stat("/home/lars/.mozilla/firefox/profiles.ini", {st_mode=S_IFREG|0664, st_size=299, ...}) = 0
927814 openat(AT_FDCWD, "/home/lars/.mozilla/firefox/profiles.ini", O_RDONLY) = 13
927814 stat("/home/lars/.mozilla/firefox/x4mpd3cq.default", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0

如果我提供一条明确的路径,一切都会正常,如下所示:

firefox --profile ~/.mozilla/firefox/x4mpd3cq.default/

有一个单独的选项,-P它接受配置文件名称,因此这也有效:

firefox -P default

答案2

它为什么会这样?我不知道。您已经表明该配置文件夹归您所有;您是否确保其中包含的所有文件也归您所有?这是一个不太可能的猜测,但也许sudo chown -R lars:lars ~/.mozilla/firefox/8hiuv29u.default会有所不同。

可以修复吗?试试这个:

  1. 创建一个新文件夹,例如~/.mozilla/firefox/8hiuv29u.default/Lars
  2. 在该文件夹中创建一个单独的文件:touch ~/.config/Firefox/Lars/prefs.js。无需在其中放入任何内容。
  3. 使用配置文件管理器启动 Firefox,创建一个新的配置文件:
    1. 将其命名为“Lars”,但不要立即点击“完成”!
    2. 单击“选择文件夹”并导航至~/.mozilla/firefox/Lars
    3. 单击“完成”。
  4. 使用该配置文件启动 Firefox(这会创建一堆附加文件),然后再次退出 Firefox。
  5. 将文件从旧配置文件复制(不要移动!)到新目录。理想情况下,首先只复制prefs.js(您的设置)和places.sqlite(您的书签)。
    1. 对于.xpi中的每个单独文件~/.mozilla/firefox/8hiuv29u.default/extensions,双击该文件(它应该在 Firefox 中打开)或将其拖到浏览器窗口中以重新安装旧插件。(专业提示:我会利用这个机会来识别它们,重命名源文件.xpi,并保留它们的备份副本“以备下次使用”。)
    2. 要恢复您的插件设置,请关闭 Firefox,然后复制~/.mozilla/firefox/8hiuv29u.default/extension-preferences.json和/或~/.mozilla/firefox/8hiuv29u.default/extensions.json/和/或~/.mozilla/firefox/8hiuv29u.default/extension-settings.json(我不记得这些是什么)。
    3. 可能复制其他项目也有可能成功,但是由于某些文件中存在旧的配置文件名,这也可能带来问题。读者请注意。

将来,全新安装 Firefox 后,请按照步骤 1、2 和 3 操作,然后用最新备份中的配置文件文件夹替换整个配置文件文件夹。

相关内容