在实时系统救援 CD 上安装基础开发包时出现“写入失败”

在实时系统救援 CD 上安装基础开发包时出现“写入失败”

我正在尝试使用以下方法来挽救出现故障的硬盘SystemRescueCd 实时启动从 USB 驱动器。为此我需要编译实用性。由于分布没有制作已安装,我需要安装基础开发首先打包(以 root 身份运行命令):

pacman --sync --refresh --noconfirm base-devel

然而,这会失败并出现写入错误:

...

installing libmpc...
installing gcc...
error: could not extract /usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/lto1 (Write failed)
error: could not extract /usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/plugin/gengtype (Write failed)
error: could not extract /usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/plugin/include/alloc-pool.h (Write failed)
... (many more errors)

error: problem occurred while installing gcc
Optional dependencies for gcc
    lib32-gcc-libs: for generating code for 32-bit ABI
error: could not commit transaction
error: failed to commit transaction (transaction aborted)
Errors occurred, no packages were upgraded.

完整输出在这里。

根据输出,根是可写的:

...
airootfs on / type overlay (rw,relatime,lowerdir=/run/archiso/sfs/airootfs,upperdir=/run/archiso
...

奇怪的是,当我检查提到的文件之一是否存在时:

/usr/lib/gcc/x86_64-pc-linux-gnu/9.3.0/plugin/include/alloc-pool.h

在运行上面的 pacman 命令之前它不存在,之后它存在,但用零(15427 字节)归档。那么也许问题出在其他地方?

在实时系统上安装软件包原则上有问题吗? (我知道重启后所有更改都会丢失,没关系。)

答案1

问题是,默认情况下,即使根分区是可写的,但它的可用空间太少了。这可以在启动前修复:

在 GRUB 菜单中:

  1. 按“e”编辑启动选项

  2. 添加到cow_spacesize=3G以以下开头的行之后linux /sysrescd/...

  3. 按 F10 启动。

然后:

  1. 首先,pacman-key --refresh-keys可能必须运行。

  2. pacman --sync --refresh --noconfirm base-devel现在可以正常工作了。

制作现在应该可以工作了。

相关内容