Bạn chưa cung cấp nhiều thông tin với nhật ký và như vậy để tiến hành nhưng tôi đoán rất có thể lỗi này bạn gặp phải là do kernel bị nhầm lẫn bởi ổ IDE / SATA. Thực hiện tìm kiếm nhanh trên Google đã dẫn tôi đến liên kết 1 , liên kết 2 , liên kết 3
Rất có thể là một trong những vấn đề xảy ra nhiều nhất (nhưng một khi bạn đã giải quyết nó, rất có thể bạn sẽ không bao giờ gặp lại nó nữa):
Unable to mount root fs on unknown-block(0,0)
hoặc là
VFS: Cannot open root device "sda3" or unknown-block(8,3)
Please append a correct "root=" boot option; here are the available partitions:
sda driver: sd
sda1 sda2
Các chữ số 0,0
hoặc 8,3
có thể khác nhau trong trường hợp của bạn - nó đề cập đến thiết bị mà kernel cố gắng truy cập (và không thành công). Nói chung, người ta có thể nói rằng, nếu chữ số đầu tiên là 0, thì hạt nhân không thể xác định phần cứng. Nếu nó là một chữ số khác (như 8), nó không thể xác định hệ thống tệp (nhưng có thể truy cập phần cứng).
Vấn đề ở đây là kernel mà bạn đang khởi động không thể dịch root=/dev/...
tham số mà bạn đã đưa ra (bên trong cấu hình bộ tải khởi động) thành một hệ thống tệp thực, có thể truy cập được. Một số lý do có thể dẫn đến một thất bại như vậy:
- cấu hình kernel bị thiếu trình điều khiển cho bộ điều khiển ổ cứng của bạn (trường hợp 1, 4, 5)
- cấu hình kernel bị thiếu trình điều khiển cho bus được sử dụng bởi bộ điều khiển ổ cứng của bạn
- cấu hình kernel bị thiếu trình điều khiển cho hệ thống tập tin bạn đang sử dụng
- thiết bị được xác định sai trong tham số root = của bạn (trường hợp 2, 3)
Giải quyết vấn đề thật dễ dàng nếu bạn biết lý do là gì. Bạn rất có thể không, vì vậy đây là một kiểm tra nhanh.
Mở trình hướng dẫn cấu hình kernel (phần make menuconfig ) để bạn có thể cập nhật cấu hình kernel cho phù hợp.
- Kiểm tra xem bạn đã tích hợp (và không phải là mô-đun) hỗ trợ cho bus / giao thức mà bộ điều khiển ổ cứng của bạn sử dụng chưa.
- Nhiều khả năng đây là hỗ trợ PCI, hỗ trợ SATA (nằm dưới hỗ trợ thiết bị SCSI), ...
- Kiểm tra xem bạn đã tích hợp (và không phải là mô-đun) cho bộ điều khiển ổ cứng bạn sử dụng chưa. Một trong những trường hợp thường gặp nhất: bạn đã chọn hỗ trợ cho giao thức bộ điều khiển ổ cứng (IDE, SATA, SCSI, ...) nhưng quên
chọn chính trình điều khiển bộ điều khiển ổ cứng (như Intel PIIX). Hãy thử
chạy lệnh lscpi sau và dán đầu ra của nó vào
http://kmuto.jp/debian/hcl/ . Trang web sẽ cho bạn thấy trình điều khiển hạt nhân nào bạn cần chọn cho hệ thống của mình. Trong menuconfig,
bạn có thể nhập "/" để mở chức năng tìm kiếm và nhập
tên trình điều khiển để tìm ra vị trí của nó.
# lspci -n
- Kiểm tra xem bạn đã tích hợp (và không phải là mô-đun) hỗ trợ cho (các) hệ thống tệp bạn sử dụng chưa.
- Giả sử hệ thống tệp gốc của bạn sử dụng btrfs (mà tôi chắc chắn không khuyến nghị) nhưng bạn đã không chọn nó hoặc chọn nó để được xây dựng dưới dạng
mô-đun, sau đó bạn sẽ gặp lỗi bạn thấy. Đảm bảo
hỗ trợ hệ thống tệp được xây dựng trong kernel.
Kiểm tra xem tham số kernel cho root=
chỉ vào phân vùng chính xác.
Điều này không ngu ngốc như nó nghe. Khi bạn được khởi động với một kernel, nó có thể liệt kê các đĩa của bạn là / dev / sda trong khi kernel (được định cấu hình) của bạn đang mong đợi nó là / dev / hda. Điều này không phải vì các hạt nhân không nhất quán với nhau, mà là do các trình điều khiển được sử dụng: trình điều khiển cũ sử dụng cú pháp hda, sda mới hơn.
Hãy thử chuyển đổi hda với sda (và hdb với sdb và ...).
Ngoài ra, các hạt nhân gần đây cung cấp một cái nhìn tổng quan về các phân vùng mà họ tìm thấy trên thiết bị đã nói. Nếu có, nó có thể giúp bạn xác định nếu bạn bỏ lỡ một phân vùng (trong ví dụ được đưa ra ở đầu phần này, chỉ có hai phân vùng được tìm thấy trong khi kernel được hướng dẫn khởi động phần ba). Nếu không, rất có thể là do kernel không biết thiết bị bắt đầu (vì vậy nó không thể hiển thị phân vùng).
Kiểm tra xem kernel đang được boot booter khởi động có phải là kernel đúng không. Tôi đã thấy những người sau khi xây dựng kernel đầu tiên (không khởi động), quên rằng họ phải gắn kết /boot
trước khi ghi đè kernel bằng kernel mới. Kết quả là, họ sao chép kernel vào hệ thống tập tin gốc ( /
) trong khi trình tải khởi động vẫn mong muốn hình ảnh kernel nằm trên /boot
phân vùng.