Arch-Linux

/sbin/init 不存在 - 退出

  • September 3, 2015

我的問題與此類似,但有一些不同之處。在啟動時,我收到以下消息:

[    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/initor ,它會說同樣的事情/bin/systemd。)

正如另一個問題中接受的答案所建議的那樣,我使用 live-CD chroot 進入 Arch 安裝,將正確的鉤子添加到mkinitcpio.conf,在 /etc/fstab 中標記/usr為 passno 0,並重新創建了 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

當我執行時ldd /mnt/usr/bin/bash,我注意到缺少一些必需的庫。/usr/lib我將live CD中的內容複製到/usr/lib我的電腦上。現在我可以 chroot 進入我的安裝。

我從 AUR 下載了 Linux-ck 的快照,編輯了 .config 以滿足我的需要,並編譯了核心。然後,我跑mkinitcpio -p linux-ckgrub-mkconfig -o /boot/grub/grub.cfg

之後,我能夠啟動到部分工作的系統。似乎我缺少一些軟體包,並且安裝的軟體包缺少文件,由pacman -Qk. 我嘗試使用 重新安裝所有軟體包pacman -Qenq | pacman -S -,但由於 pacman 的數據庫已損壞,這不起作用。我不得不恢復本地數據庫,這也解決了之前的問題。

目前,唯一仍然行不通的是 GNOME。

我懂了:

mounting '/dev/sda8' on real root

您不應該在 /dev/sd8 的 fstab 中為 / 目錄添加一個條目。除了您的實際根目錄外,我還看到了您的所有其他掛載點。

引用自:https://unix.stackexchange.com/questions/226121