我正在尝试使用以下方法来挽救出现故障的硬盘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 菜单中:
按“e”编辑启动选项
添加到
cow_spacesize=3G
以以下开头的行之后linux /sysrescd/...
按 F10 启动。
然后:
首先,
pacman-key --refresh-keys
可能必须运行。pacman --sync --refresh --noconfirm base-devel
现在可以正常工作了。
制作现在应该可以工作了。