Arch-Linux
/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
or ,它會說同樣的事情/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-ck
了grub-mkconfig -o /boot/grub/grub.cfg
。之後,我能夠啟動到部分工作的系統。似乎我缺少一些軟體包,並且安裝的軟體包缺少文件,由
pacman -Qk
. 我嘗試使用 重新安裝所有軟體包pacman -Qenq | pacman -S -
,但由於 pacman 的數據庫已損壞,這不起作用。我不得不恢復本地數據庫,這也解決了之前的問題。目前,唯一仍然行不通的是 GNOME。
我懂了:
mounting '/dev/sda8' on real root
您不應該在 /dev/sd8 的 fstab 中為 / 目錄添加一個條目。除了您的實際根目錄外,我還看到了您的所有其他掛載點。