/sbin/init 不存在 - 退出

/sbin/init 不存在 - 退出

我的问题是类似于这个,但有一些差异。启动时,我收到以下消息:

[    0.030164] Ignoring BGRT: invalid status 0 (expected 1)
:: running early hook [udev]
starting version 223
:: running hook [udev]
:: Triggering uevents...
:: performing fsck on '/dev/sda8'
sda8: clean, ...
:: mounting '/dev/sda8' on real root
:: running late hook [usr]
:: performing fsck on '/dev/sda5'
sda5: clean, ...
:: mounting /dev/sda5 on /usr
:: running cleanup hook [shutdown]
:: running cleanup hook [udev]
ERROR: Root device mounted successfully, but /sbin/e4rat-preload does not exist.
Bailing out, you are on your own. Good luck.

sh: can't access tty; job control turned off
[rootfs /]#

(如果我告诉 GRUB 使用/sbin/init或,它会说同样的事情/bin/systemd。)

正如另一个问题中接受的答案所建议的,我使用 live-CD chroot 进入 Arch 安装,添加了正确的挂钩mkinitcpio.conf/usr在 /etc/fstab 中标记为 0 的 passno,并使用 重新创建了 init 映像mkinitcpio -p linux-ck

它似乎有效,但结果仍然相同,我现在无法 chroot 进入系统。

$ arch-chroot /mnt
chroot: failed to run command `/bin/bash': No such file or directory

sudo parted -l:

sudo parted -l /dev/sda
Model: ATA Hitachi HTS54757 (scsi)
Disk /dev/sda: 750GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name                          Flags
 1      1049kB  1075MB  1074MB  fat32        EFI System Partition          boot, esp
 2      1075MB  270GB   268GB   ntfs         Windows 10                    msftdata
 3      270GB   484GB   215GB   ntfs         Jeffrey                       msftdata
 4      484GB   484GB   16.8MB               Microsoft reserved partition  msftres
 5      535GB   589GB   53.7GB  ext4
 6      589GB   643GB   53.7GB  ext4
 7      643GB   696GB   53.7GB  ext4
 8      696GB   750GB   53.7GB  ext4         Arch

/etc/fstab

# /dev/sda5
PARTUUID="4495844c-bbf3-4be0-a2f3-7d143077a2ed"        /usr                  ext4          ro,relatime                                                                                      0 2

# /dev/sda6
PARTUUID="23a5589e-5e88-40a3-9497-d3da166f3d4a"        /tmp                  ext4          rw,relatime,noexec,nosuid                                                                        0 0

# /dev/sda7
PARTUUID="07a6f06a-87f2-405e-a3d7-d26c5085041e"        /mnt/bindir           ext4          rw,relatime,nosuid                                                                               0 2

/mnt/bindir/root                                       /root                 none          bind                                                                                             0 0
/mnt/bindir/var                                        /var                  none          bind                                                                                             0 0
/var/home                                              /home                 none          bind                                                                                             0 0
/tmp                                                   /var/tmp              none          bind                                                                                             0 0

# /dev/sda1
PARTUUID="e532f9e3-ccd5-4edf-a8b0-35069e8afb35"        /boot                 vfat          rw,relatime,umask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro        0 0

# /dev/sda2
PARTUUID="f373613c-9b70-42c1-8266-d5774b212ef"         /mnt/Windows          ntfs-3g       rw,relatime,errors=remount-ro,users,nosuid,nodev,nofail,x-gvfs-show                              0 0

# /dev/sda3
PARTUUID="e8fd05ac-9496-40fb-af01-01b41958fd41"        /mnt/Jeffrey          ntfs-3g       rw,relatime,errors=remount-ro,users,nosuid,nodev,nofail,x-gvfs-show                              0 0
                             0 0

答案1

我懂了:

mounting '/dev/sda8' on real root

您的 fstab 中不应该有 / 目录的 /dev/sd8 条目吗?除了您的实际根目录外,我还看到了所有其他挂载点。

答案2

当我运行时ldd /mnt/usr/bin/bash,我注意到缺少一些必需的库。我将/usr/libLive CD 中的内容复制到/usr/lib我的计算机上。现在我可以 chroot 进入我的安装。

我从 AUR 下载了 Linux-ck 的快照,编辑了 .config 以满足我的需要,并编译了内核。然后,我跑了,mkinitcpio -p linux-ck然后grub-mkconfig -o /boot/grub/grub.cfg

之后,我能够启动到部分工作的系统。似乎我缺少一些软件包,并且安装的软件包缺少文件,用pacman -Qk.我尝试重新安装所有软件包pacman -Qenq | pacman -S -,但这不起作用,因为 pacman 的数据库已损坏。我不得不恢复本地数据库,这也解决了之前的问题。

目前,唯一还不行的就是 GNOME。

相关内容