GParted - 无法打开显示

我刚刚安装了gparted,因为我有一个135GB的闪存驱动器,我想用它来制作不同操作系统的可启动设备。
安装完gparted后,我从Dash打开它,输入密码后窗口关闭,光标变成加载符号,我等待了一会儿,光标恢复正常,就这样。
我使用sudo apt-get install gparted命令进行安装。
gksudo gparted的输出结果是:
Error copying '/home/amolith/.Xauthority' to '/tmp/libgksu-k9KFpI': No such file or directory
gparted-pkexec 的输出结果是:
Created symlink /run/systemd/system/-.mount → /dev/null.
Created symlink /run/systemd/system/boot.mount → /dev/null.
Created symlink /run/systemd/system/run-user-1000.mount → /dev/null.
Created symlink /run/systemd/system/run-user-120.mount → /dev/null.
Created symlink /run/systemd/system/snap-core-2381.mount → /dev/null.


Created symlink /run/systemd/system/tmp.mount → /dev/null.
No protocol specified

(gpartedbin:6347): Gtk-WARNING **: cannot open display: :0
Removed /run/systemd/system/-.mount.
Removed /run/systemd/system/boot.mount.
Removed /run/systemd/system/run-user-1000.mount.
Removed /run/systemd/system/run-user-120.mount.
Removed /run/systemd/system/snap-core-2381.mount.
Removed /run/systemd/system/tmp.mount.

非常感谢任何帮助。

1在终端中运行gksudo gpartedgparted-pkexec,输入密码,看看会发生什么,你会得到什么输出? - Ravexina
@Ravexina 现在问题中已经包含了两个命令的输出结果。 - Amolith
2似乎与Wayland有关,运行xhost +local:然后gparted-pkexec - Ravexina
@Ravexina 这样就解决了!xhost +local: 是什么意思? - Amolith
1@Amolith man xhost清楚地解释了:xhost程序用于将主机名或用户名添加和删除到允许连接到X服务器的列表中。 而选项+local:表示授予local用户/地址等访问权限(+),以及空字符串成员,因此在末尾加上了: - PeterM
1个回答

你的问题似乎与wayland有关,运行以下命令:
xhost +local:

它允许本地用户连接到显示器,然后运行gparted:

gparted-pkexec

它应该解决这个问题。

source


能否给个更具体的信息关于 Wayland,@Ravexina?据我所知,它是 XORG 的替代服务器。 - solfish
@solfish我对Wayland并不太熟悉,但我认为这是因为它控制显示器/窗口权限的方式,一些软件包和Wayland之间的不兼容可能是问题的原因。类似的问题。 - Ravexina
虽然这解决了问题,但似乎不是持久的。有什么办法可以在重启后使其持久化吗? - PeterM
2@PeterM 把这个命令放在 ~/.profile 这样的地方,它会在每次启动 Ubuntu 时自动运行 ;) - Ravexina
xhost命令解决了我的问题。执行完毕后,我能够正常运行gparted。非常感谢你。 - Francesco
实际帮助我的评论: xhost +SI:localuser:root - user3387542
1我不知道为什么我无法在这个帖子中添加我的答案(我在stackoverflow上没有看到这样的按钮),但实际上解决方法似乎是运行命令"sudo xhost +",而不是在末尾加上"local"。这与gparted无关:只要你在vnc会话中以sudo身份运行任何图形界面应用程序,就会发生这种情况。 - Ihor B.
正如@IhorB所指出的,这个问题发生在进行远程会话时创建了一个“显示器”的情况下。不仅仅是VNC,任何需要创建显示器的远程会话软件都会遇到这个问题,比如我使用的NoMachine。如果机器上已经有一个登录/显示器,因为有人直接使用它,然后你连接到那个“本地”显示器,那么这个问题就不会发生;但是,如果你连接到一个无头机器,就需要创建一个显示器,这时候就会出现这个问题,并且可以通过xhost命令解决。 - DKebler