昨晚我折断了我的拱门。现在,当尝试启动时,它说:
[0.595364] Failed to execute /init (error -13)
: can't log to /dev/tty5
starting pid 131, tty '': '/etc/init.d/rcS'
: can't log to /dev/tty5
can't run '/etc/init.d/rcS': No such file or directory
Please press Enter to activate this console. : can't log to /dev/tty5
: can't log to /dev/tty5
: can't log to /dev/tty5
can't open /dev/tty4: No such file or directory
can't open /dev/tty3: No such file or directory
can't open /dev/tty2: No such file or directory
: can't log to /dev/tty5
process '-/bin/sh' (pid 133) exited. Scheduling for restart.
: can't log to /dev/tty5
process '-/bin/sh' (pid 134) exited. Scheduling for restart.
: can't log to /dev/tty5
process '-/bin/sh' (pid 135) exited. Scheduling for restart.
...
请按 Enter 键后的消息不断重复(或多或少)如此之快,以至于我无法直接阅读它们,我拍了张照片并手动写下了消息。
我尝试按 Enter 几次但没有成功。 Ctrl + Alt + Del 或尝试切换到 tty7、tty6 或 tty1 没有反应。
我不知道为什么它首先抱怨tty5。
我之前做了什么:
我从 AUR 安装了 android-studio (使用git clone
和makepkg -si
)。
我进行了更新pacman -Syu
(实际上我并不能 100% 确定我到底是什么时候进行更新的)。
Android studio 尝试安装android SDK 之类的东西。它声称它有足够的空间。我不记得它显示的确切数字,但我确信它显示的可用空间不可能是真的,所以我事先在我的数据分区上清除了大约 35GB(我明确告诉它应该安装 SDK)。该过程结束时出现几条错误消息,表明空间不足。它似乎几乎没有使用我在数据分区上为其释放的 35GB 空间,而是尝试安装在系统分区上(可用空间少于 1 或 2GB)。
Android studio 告诉我,我的机器能够加速 android 模拟器,但我认为它并没有真正尝试安装 KVM。
因此,我尝试通过删除一些 AUR 软件包(大约 3 个)来从系统分区释放一些空间,这些软件包我曾经尝试安装过一次但从未真正使用过(要么因为安装失败,要么因为我没有正确配置它们,或者因为它们结果与我需要的不同。)对于我第一次运行的每一个pacman -Rs
(在大多数情况下失败可能是因为我没有设法首先安装它),然后是rm -rf
.其中一个软件包是 cdm(登录管理器),但是当我卸载它时,我绝对确定我正在使用 ly。
从那时起我尝试过:
我已经阅读了更新前应该阅读的内容: https://www.archlinux.org/news/ 但自上次更新以来没有任何新内容。
我已经验证arch系统分区没有完全满,还剩下664MB。
我已经arch-chroot
从一个活动棒进入系统并运行,pacman -Syu
希望它能告诉我出了什么问题,但它只是高兴地安装了两个新软件包。
我已经验证/etc/init.d/rcS不存在(整个目录/etc/init.d丢失)。 Live Stick 上也不存在 /etc/init.d。因此我假设它从一开始就不存在。但为什么它突然尝试执行一个不存在的文件呢?我想我在某处读到这个文件通常在 arch 上以不同的方式调用,但我无法再次找到该源。
应该执行什么而不是/etc/init.d/rcS
以及我如何告诉它这样做?或者如果它存在的话我该如何重新创建它?
编辑:rescue
我尝试过使用和内核参数启动系统emergency
,但它们没有什么区别。
init=/bin/sh
作为内核参数给出以下错误消息:
[ 3.058545] Failed to execute /init (error -13)
/bin/sh : can't access tty; job control turned off
答案1
我已经在 中找到了答案/var/log/pacman.log
。在尝试更新 mkinitcpio 时,有很多行显示“设备上没有剩余空间”。
因此,我启动了一个 Live Stick,并将其 arch-chroot 到本地 ssd 上的 arch 系统中:
# loadkeys ... # change keyboard layout if needed # mount /dev/sda1 /mnt # arch-chroot /mnt
删除了安装 android-studio 期间创建的不再需要的文件(大约 5GB)。
重新安装mkinitcpio:
# pacman -Sy mkinitcpio
exit
,poweroff
并启动到我的 arch 系统
现在它又开始运行了。