Không thể tìm thấy thiết bị gốc ''


7
ERROR: device '' not found. Skipping fsck.
ERROR: Unable to find root device ''.
You are being dropped to recovery shell 

Tôi đã cố gắng cài đặt Arch Linux một thời gian và tiếp tục gặp phải lỗi này. Tôi thực sự không biết phải làm gì.

Một chút nền tảng: Máy tính của tôi ban đầu có khởi động kép với Fedora và Windows 10 (cả 64-bit), Windows được cài đặt trước. Tôi quyết định thay thế Fedora bằng Arch. Có phân vùng riêng biệt cho root, /boot/efi/home, và tôi chỉ ghi đè lên thư mục gốc. Tôi gắn các phân vùng, xóa tất cả mọi thứ trừ /home(và /boot, mà tôi giữ nhầm). Tôi chạy pacstrap -i /mnt base, cài đặt hệ thống và khởi động lại. Nó khởi động tốt, nhưng nó đã sử dụng bộ tải khởi động Fedora, với hoạt hình tải Fedora và mọi thứ. Có một vài vấn đề với hệ thống, bao gồm cả một số dịch vụ không khởi động được và tôi nghi ngờ bộ tải khởi động Fedora là lỗi. Tôi đã khởi động lại USB cài đặt Arch, xóa mọi thứ, lần này bao gồm /boot(nhưng không/boot/efi, Tôi đã không gắn kết điều đó.) Tôi đã cài đặt lại một lần nữa và grub sẽ không nhận ra hình ảnh vmlinuz. Vì vậy, tôi quyết định khởi động lại vào USB, chroot vào phân vùng Arch mới và cài đặt rEFInd, bộ tải khởi động yêu thích cá nhân của tôi. Sau khi cài đặt rEFInd với pacman -S refind-efirefind-installrEFInd đã được cài đặt, và tôi đã khởi động lại vào nó. Windows sẽ khởi động, nhưng khi tôi cố gắng khởi động Arch, tôi gặp lỗi đó.

Tôi đã chạy mkinitcpio -p linuxnhiều lần. /etc/fstabTrông hoàn toàn bình thường.

Đây là những gì tôi đã thử:

/superuser/769047/unable-to-find-root-device-on-a-fresh-archlinux-install#788480

Di chuyển khối trước khi tự động phát hiện, không có hiệu lực

http://www.linuxforums.org/forum/arch-linux/199189-error-device-not-found-skipping-fsck.html

Loay hoay với refind.conf và refind_linux.conf, tôi không làm gì cả

/superuser/835120/error-unable-to-find-root-device-dropping-to-recovery-shell

Đã kiểm tra kỹ, initramfs-linux.img nằm trong thư mục chính xác

Tôi đã thấy các vấn đề tương tự nhưng không có bản sửa lỗi nào của họ làm việc cho tôi. Bất kỳ ý tưởng về làm thế nào tôi có thể có được vòm để khởi động?

EDIT: Tôi phát hiện ra tôi đang sử dụng một thứ LVM. Vì vậy, vâng. Các phân vùng nhà, gốc và trao đổi của tôi là những thứ LVM nhỏ (tôi không biết gọi chúng là gì) trong / dev / sda8. Tôi không biết nếu điều này ảnh hưởng đến bất cứ điều gì


NGƯỜI THÔNG BÁO NÀY HỎI GAAAAAAAAH
TheInitializer

Nghe có vẻ thô. Bạn có quyền truy cập vào một máy tính khác? Có thể tốt nhất của bạn là tạo một đĩa CD trực tiếp của một số bản phân phối, gắn /homevào nó, sao chép bất kỳ tệp quan trọng nào vào thanh USB và sau đó cài đặt lại.
Elronnd

@Elronnd Tôi có một phân vùng windows làm việc trên cùng một máy tính. Tôi đã sao chép tất cả các tập tin quan trọng vào nó rồi. Idk, có thể xóa toàn bộ phân vùng đó và tạo một phân vùng mới (không phải lvm) có thể giúp - có thể LVM đang gây ra tất cả các vấn đề. Tôi thực sự muốn biết chính xác những gì đang xảy ra mặc dù, vòm phải tìm kiếm vì ''lý do nào đó ...
TheInitializer

Lưu ý bên lề: ổ cứng của tôi có 12 phân vùng, điều này có bình thường không?
TheInitializer

Tôi rất vui vì tôi không phải là người duy nhất gặp vấn đề chính xác này - Tôi đang gặp vấn đề chính xác tương tự và đã thử mọi cách bạn đã thử mà vẫn không tìm ra cách khắc phục. Sẽ tiếp tục tìm kiếm một mặc dù!
Sam Holmes

Câu trả lời:


5

Vấn đề dường như là rEFInd không tự động tạo refind_linux.conftệp trong /bootthư mục.

Từ bước 4 của "Chi tiết kỹ thuật hỗ trợ bộ nạp EFI" từ tài liệu rEFInd :

rEFInd tìm kiếm một tệp có tên refind_linux.conf trong cùng thư mục với tệp kernel. Nó bao gồm một loạt các dòng, mỗi dòng bao gồm một nhãn theo sau là một loạt các tùy chọn kernel. Dòng đầu tiên đặt các tùy chọn mặc định và các dòng tiếp theo đặt các tùy chọn có thể truy cập được từ màn hình menu con của thẻ menu chính. Nếu bạn đã cài đặt rEFInd với tập lệnh refind-install, tập lệnh đó đã tạo một tệp refind_linux.conf mẫu, được tùy chỉnh cho máy tính của bạn, trong / boot. Tập tin này sẽ hoạt động mà không thay đổi trên nhiều cài đặt, nhưng bạn có thể cần phải chỉnh nó cho một số.

Tôi không chắc tại sao nó không tạo tập tin này, nhưng rất có khả năng bạn có thể giải quyết các vấn đề bạn gặp phải bằng cách tạo nó.

Tạo refind_linux.conftập tin

Wiki Arch Linux có một mục tuyệt vời về cách thực hiện việc này, nhưng về cơ bản, bạn đặt nó trong cùng thư mục với kernel của bạn (thường /bootlà bằng cách tạo nó tự động hoặc thủ công). Dòng không bị lỗi đầu tiên của tệp sẽ là các tham số mặc định để khởi động kernel.

Tôi đã tạo tệp của mình bằng mkrlconflệnh và tệp kết quả /boot/refind_linux.conftrông như thế này:

"Boot with standard options"  "archisobaseddir=arch archisolabel=ARCH_201610"
"Boot to single user mode"    "archisobaseddir=arch archisolabel=ARCH_201610 single"
"Boot with minimal options"   "ro root=UUID=514a997c-a921-403d-849f-d901d26a73db"

Chúng tôi đang đến một nơi nào đó, nhưng điều này chưa hoạt động. Vì tôi đã tạo nó từ USB trực tiếp, hai mục nhập đầu tiên không chính xác khi thay vào đó chúng đề cập đến ISO trên USB. Mục nhập cuối cùng thực sự chính xác và điều này là do giống như lỗi bạn nhận được, nó đặt thiết bị gốc từ ''UUID của /đĩa của bạn .

Vì vậy, để đặt nó làm tùy chọn khởi động chính, chỉ cần xóa các dòng khác và thay đổi nhãn.

"Boot with standard options"  "ro root=UUID=514a997c-a921-403d-849f-d901d26a73db"

Lưu tập tin và khởi động lại hệ thống, bây giờ nó sẽ hoạt động chính xác!

Chú thích

  1. Tất nhiên đây là một chặng đường dài để tạo tập tin. Bạn không phải sử dụng mkrlconfđể tạo ra nó, bạn có thể tự tạo nó. Thêm nữa là nó tự động điền vào đĩa UUID (mà tôi không muốn phải sao chép và gõ thủ công).

  2. Bước 5 từ Chi tiết kỹ thuật của Stub Loader (được liên kết ở trên) phác thảo cách thức, nếu không có refind_linux.conftệp nào , rEFInd sẽ tìm kiếm một mục nhập kernel /etc/fstab. Với một cấu hình âm lượng kỳ lạ mặc dù không chắc nó sẽ hoạt động.


1
Wow, điều này gửi như một câu trả lời tuyệt vời. Tôi đã khắc phục sự cố của mình mặc dù (bằng cách cài đặt lại) vì vậy không thể xác nhận rằng việc này sẽ hoạt động, nhưng tôi sẽ nâng cấp
TheInitializer

Đừng lo lắng, tôi biết bạn đã khắc phục vấn đề của mình! Điều này là vì lợi ích của bất kỳ ai khác đến đây với cùng một vấn đề chúng tôi đã gặp phải, xin chúc mừng hệ thống của bạn sẽ chạy được cuối cùng!
Sam Holmes

0

Chroot phân vùng của bạn và thử tập lệnh "Cài đặt / Cấu hình bộ tải khởi động" của tập đoàn FIFO https://github.com/musuthdu/aui

Nếu điều này không có ích. Tôi muốn sao lưu /homephân vùng của mình (như Elronnd đã đề xuất) và thử cài đặt mới với các tập lệnh FIFO / LILO.

Chúc may mắn!


0

Tôi chỉ xóa toàn bộ phân vùng và cài đặt lại. LVM đã vặn nó lên tất cả cùng. Hoạt động hoàn hảo bây giờ.


Tôi đã không sử dụng LVM tại bất kỳ thời điểm nào và vẫn gặp phải vấn đề tương tự :(
Sam Holmes
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.