1

我正在按照书中的步骤构建 LFS 系统(版本 7.6,尽管我认为问题与特定版本无关)。在构建工具链(第 5 章)之后,我现在开始构建系统(第 6 章)。

但事情是这样的:当我尝试从图形 shell 构建任何包时(在我的情况下,来自 Lubuntu 桌面环境的 LXTerminal)我可以解压缩源代码并使用 ./configure 配置构建,但是在发出“make”命令时,我得到一个Segmentation fault。如果我从文本终端发出相同的命令(例如点击 Crtl+F2),它可以完美运行。

在这两种情况下:

  • 作为 root,我按照章节 6.2.2 和 6.2.3 安装虚拟内核文件系统
  • 作为root,我按照书上的说明切换到chroot环境

这让我感到困惑,因为当然它在通过 SSH 连接时也会失败,这是我真正想要做的。

谁能告诉我为什么这两个终端的行为不同?

(最后一点,我尝试使用 su 从我的非 root 用户(“登录 shell”)切换到 root 用户 - 并以 root 身份完全登录到 GUI)

4

1 回答 1

2

经过一番认真的谷歌搜索后,我可以弄清楚。

图形终端(图形外壳上的窗口)和 SSH 会话的共同点是它们使用伪终端 (PTY) 而不是传统终端 (TTY)。所以我专注于安装实现这些伪终端的虚拟文件系统 devpts。然后我找到了这个答案并尝试绑定 mount /dev/pts 而不是像书中所说的那样进行标准安装:

mount --bind /dev/pts "$CHROOT/dev/pts"

它奏效了!不再产生段错误。

于 2017-03-20T10:57:18.820 回答