2010-03-17 40 views
6

Tôi đã viết trình điều khiển thiết bị khối giả (ram disk) cho hạt nhân Linux. Khi trình điều khiển được tải, tôi có thể xem nó là/dev/mybd.lắp không có vòng lặp

Tôi có thể chuyển thành công dữ liệu lên đó bằng lệnh dd, so sánh thành công dữ liệu đã sao chép .

Vấn đề là khi tôi tạo hệ thống tệp ext2/3 trên đó, tôi phải sử dụng tùy chọn -o loop bằng lệnh gắn kết. Nếu không gắn kết không thành công với kết quả sau:

mount: loại fs sai, lựa chọn xấu, xấu superblock on mybd, mất tích mã hoặc chương trình trợ giúp, hoặc lỗi khác

gì có thể là vấn đề? Hãy giúp tôi.

Cảm ơn.

+0

Đăng đơn vị trình điều khiển của bạn và yêu cầu thường trình? Tôi có một trình điều khiển ramdisk nhưng đã không nhìn thấy lỗi này, có thể nhìn thấy mã sẽ giúp đỡ. –

+0

aah .. vừa bị hỏng hệ thống linux của tôi .. đã làm một dd trên thiết bị sai! Cần bắt đầu lại từ khi cài đặt linux ... Tôi sẽ quay lại đây nếu tôi có thể tái tạo sự cố. Cảm ơn. – user295631

+0

Hãy xem: http://user-mode-linux.sourceforge.net/ Bạn có thể chạy Linux trong hệ thống Linux. Điều đó sẽ cho phép bạn nhanh chóng xây dựng và 'triển khai' phiên bản plugin mới. Và tất cả những thay đổi bạn sẽ làm (ví dụ: 'dd') sẽ được thực hiện trong hệ điều hành khách, vì vậy nó sẽ không phá vỡ hệ điều hành gốc của bạn. Như tôi đã nhớ, thậm chí có khả năng có một 'delta' của hệ thống tập tin của bạn thay đổi trong một tập tin riêng biệt, vì vậy bạn có thể dễ dàng khôi phục trạng thái ban đầu của hệ thống tập tin khách. –

Trả lời

0

Tạo một hệ thống file trên thiết bị trước khi lắp nó:

mkfs -t ext2 /dev/mybd

hoặc

mke2fs /dev/mybd
+0

Tôi đã thực hiện điều đó. – user295631

+1

Hãy thử kiểm tra dmesg hoặc /var/log/messages...secondimes hạt nhân ghi thông tin chẩn đoán ở đó. – Doug

+0

aah .. vừa bị hỏng hệ thống linux của tôi .. đã làm một dd trên thiết bị sai! Cần bắt đầu lại từ khi cài đặt linux ... Tôi sẽ quay lại đây nếu tôi có thể tái tạo sự cố. Cảm ơn. – user295631

0

Các thiết bị vòng lặp được sử dụng để gắn kết khối tập tin đặc biệt trên hệ thống tập tin Linux bắt chước họ như block device. Do đó, gắn kết ném lỗi.

1

Tôi thấy bạn đang bắt đầu lại từ đầu. Lưu ý nhanh về lần thử trước của bạn, bạn có đảm bảo thiết bị của mình xuất hiện trong/dev dưới dạng thiết bị khối và không phải là một ký tự ?

3

Hmm, nếu nó hoạt động với -o loop và không hoạt động mà không có, thì tôi có tin xấu cho bạn: "thiết bị" của bạn thực sự chỉ là một tệp đơn giản trong/dev. Hiển thị ls -l /dev/mybd là gì? Nếu kích thước của nó không khác, đó là một tệp thông thường và không liên quan gì đến trình điều khiển của bạn.

Sử dụng mknod để tự tạo tệp thiết bị nếu cần.

Các vấn đề liên quan