/ sbin / init không tồn tại - Giải cứu, bạn chỉ có một mình. Chúc may mắn


8

Tôi đang cố gắng cài đặt linux linux. Khi tôi khởi động, nó cho tôi thông báo tìm thấy bên dưới.

ERROR: Root device mounted successfully, but /sbin/init does not exist.
Bailing out, you are on your own now. Good luck.

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

init nên được đặt trong / usr / bin / init chứ không phải / sbin / init
Jeight

2
Bạn đã sử dụng một hình ảnh cài đặt cũ và không -Syu?
jasonwryan

3
@Jeight /sbin/binlà các liên kết tượng trưng /usr/bintrên Arch Linux.
strugee

1
@strugee Câu hỏi bây giờ là Arch Linux / sbin và / bin của OP sử dụng các liên kết sym mà nó nên có theo mặc định. Điều đó sẽ gây ra vấn đề.
Jeight

4
@ChanceLeachman Tôi thực sự khuyên bạn không nên sử dụng những thứ như thế này. nếu bạn không muốn định cấu hình Arch theo cách mà wiki khuyến nghị hoặc không hiểu bạn đang làm gì thì Arch có thể không phải là bản phân phối phù hợp với bạn (có thể thử Mint hoặc Debian). Ngoài ra, 404s liên kết của bạn. @Jeight FWIW, tôi nghi ngờ rằng anh ta chỉ có thể cài đặt systemdgói. có lẽ kịch bản của anh ta không được cập nhật để chuyển sang systemd như init.
strugee

Câu trả lời:


8

Bạn nên cần systemd-sysvcompat nếu bạn muốn sử dụng init. Đây /sbin/initlà một liên kết tượng trưng đơn giản đến /lib/systemd/systemd(xem PKGBUILD ) được cung cấp bởi systemd-sysvcompat.

Vì vậy, nếu bạn muốn khởi động hệ thống của mình, bạn nên thêm vào grub kernel line(nếu bạn sử dụng grub):

init=/lib/systemd/systemd

Nếu bạn không muốn sử dụng, systemd-sysvcompatbạn nên thêm dòng trên vàoGRUB's configuration


3

Tôi đã gặp vấn đề này và giải quyết nó bằng cách cài đặt lại hệ thống cơ sở vòm và chú ý hơn đến các hướng dẫn được đưa ra. Cụ thể theo Syslinux - Cài đặt trên BIOS .

Tôi đã chọn cài đặt syslinux và đọc hướng dẫn quá nhanh và quên

Cấu hình syslinux.cfg để trỏ đến phân vùng gốc bên phải. Bước này là rất quan trọng .

Phân vùng gốc của tôi nằm trên / dev / sda2 trong trường hợp của tôi và như bạn có thể thấy bên dưới, nó không trỏ đến nó.

...
LABEL arch
    ...
    APPEND root=/dev/sda3 rw
    ...

Nó chỉ vào phân vùng nhà của tôi, / dev / sda3


2

Tải xuống bản cài đặt ISO mới nhất (2013.10.1 hiện tại) từ trang Tải xuống Arch . Đặt ISO đó vào đĩa CD hoặc bất cứ thứ gì và cài đặt lại.

Hoặc bạn đã sử dụng ISO cài đặt cũ hoặc đã xảy ra lỗi trong quá trình cài đặt. Trên máy chủ Arch tương đối cập nhật của tôi, /sbin/initlà một liên kết tượng trưng đến /lib/systemd/systemd.

Bạn có thể kiểm tra xem có /sbin/inittồn tại không, và đó có phải là tệp thực hay liên kết tượng trưng. Nếu sau này, hãy kiểm tra xem liên kết tượng trưng nói có tồn tại, có thể thực thi được không, có phải là tệp không, v.v. từ một bản tải xuống mới của hình ảnh ISO.


2
Arch sử dụng init, theo nghĩa là kernel muốn có một chương trình được gọi /sbin/init(trừ khi bộ nạp khởi động chuyển một giá trị khác thông qua inittùy chọn) và chương trình với PID 1 được gọi theo quy ước init. Nó không quan trọng đối với kernel cho dù đây là inittừ Systemd hay từ SysVinit hoặc từ Upstart hoặc từ BusyBox.
Gilles 'SO- ngừng trở nên xấu xa'

1

Điều này có thể xảy ra nếu bạn sử dụng phân vùng sai cho root. Tra cứu mục nhập trình tải của bạn (trong /boot/loader/entries/arch.conf nếu bạn đang sử dụng systemd-boot trên Arch Linux như tôi) và đảm bảo UUID 'root' là phân vùng gốc của bạn.


1

Tôi biết bài đăng này đã cũ, nhưng tôi vừa gặp phải vấn đề này và tôi không tìm thấy câu trả lời hay ở nơi nào khác, vì vậy đây là câu trả lời của tôi, hy vọng rằng điều này sẽ giúp được ai đó trong tương lai.

Trong trường hợp của tôi, khi tôi ở sân khấu

ERROR: Root device mounted successfully, but /sbin/init does not exist.
Bailing out, you are on your own now. Good luck.

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

Thực sự có một /sbin/init, không có gì ngoài một liên kết tượng trưng đến busybox!

Đây là những gì đã xảy ra. Trong Archlinux, thư mục /sbinlà một liên kết tượng trưng đến / usr / sbin. Và, như người khác nói, /usr/sbin/initsymlink đến /lib/systemd/systemd. Nhưng, trong trường hợp của tôi, tôi phát hiện ra rằng /usrthư mục không được gắn kết.

Về cơ bản, bạn cần phải gắn kết phân vùng /usrnhư được giải thích trên trang ArchWiki này. Bạn cũng có thể muốn xác minh /etc/fstab, đặc biệt nếu bạn sử dụng một cái được tạo bởi genfstab.


Một câu trả lời liên quan là unix.stackexchange.com/a/392223/5132 và một câu hỏi liên quan là unix.stackexchange.com/questions/247532 .
JdeBP
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.