Làm cách nào để chặn tải mô-đun kernel chỉ trong một lần khởi động người dùng khi danh sách đen không thành công?


7

Trên bản cài đặt "Linux debian 2.6.32-5-amd64 # 1 SMP" trong đó việc tải mô-đun hạt nhân (mpt2sas) mong muốn được trì hoãn để được tải sau khi bắt đầu sshd và người dùng có thể đăng nhập từ xa, mô-đun mpt2sas đã bị vô hiệu hóa khi tải vào khởi động một người dùng, bởi:

$ echo 'blacklist mpt2sas' >> /etc/modprobe.d/mpt2sas.conf; depmod -aeF /boot/System.map-2.6.32-5-amd64; update-initramfs -u -k $(uname -r)

Sau đó, a modeprobe -v mpt2sassẽ được chạy trong /etc/rc.local.

Sau khi cài đặt trình điều khiển mpt2sas mới hơn , sử dụng dpkg -i mpt2sas-15.00.00.00-3_Debian6.0.5.amd64.debkết quả là trình điều khiển cũ được đổi tên từ /lib/modules/2.6.32-5-amd64/kernel/drivers/scsi/mpt2sas/mpt2sas.kothành /lib/modules/2.6.32-5-amd64/kernel/drivers/scsi/mpt2sas/mpt2sas.ko.origvà trình điều khiển mới được cài đặt tại /lib/modules/2.6.32-5-amd64/weak-updates/mpt2sas/mpt2sas.ko.

Các tác dụng phụ là dòng mpt2sas danh sách đen trong /etc/modprobe.d/mpt2sas.conf không còn có bất kỳ tác dụng , khi module được nạp trong quá trình khởi động dùng đơn lẻ, mpt2sas được nạp như mô-đun hạt nhân đầu tiên.

Hồi quy:

  • Tôi biết rằng /etc/modprobe.d/mpt2sas.conf vẫn đang được tải, vì khi nhập một dòng bị lỗi trong tệp này, một cảnh báo sẽ hiển thị tại bàn điều khiển trong khi khởi động (4 lần).
  • Chạy depmod -aeF /boot/System.map-2.6.32-5-amd64; update-initramfs -u -k -t $(uname -r); rebootkhông cải thiện.
  • Thêm tham số khởi động kernel modprobe.blacklist=mpt2saskhông cải thiện.

Làm cách nào tôi có thể chặn tải mô-đun hạt nhân mpt2sas mới trong giai đoạn khởi động người dùng? (Tôi vẫn muốn tải mpt2sas bằng modprobe/etc/rc.local).


Tôi không chắc chắn chính xác bạn sử dụng hệ thống init nào, nhưng trong OpenRC, bạn có thể định cấu hình dịch vụ có tên 'local' thông qua /etc/conf.d/local và xác định các chức năng đó local_startlocal_stopđặt dòng modprobe của bạn vào local_start sau đó chuyển localdịch vụ sang vị trí mong muốn, ví dụ: nếu sshd của bạn đang chạy ở runlevel 'boot' place 'local' thành runlevel mặc định với tiện ích quản lý tập lệnh RC của bạn (RC-update, update-rc.d hoặc một cái gì đó) hoặc chỉ định sshd trong needphụ thuộc cho 'local 'dịch vụ trong RC.conf (có nhiều ví dụ).
tijagi

1
Vui lòng thêm chi tiết về hệ điều hành của bạn. Debian / Ubuntu? Phiên bản? Trên SLES, điều này sẽ được giải quyết bằng cách xóa các trình điều khiển không mong muốn khỏi / etc / sysconfig / kernel, sau đó là mkinitrd.
Nils

@Nils Hệ điều hành đã bị ẩn trong tên trình điều khiển, mpt2sas-15.00.00.00-3_ Debian 6.0.5.amd64.deb. Tôi sẽ thêm hệ điều hành và phiên bản rõ ràng hơn cho câu hỏi cơ bản.
Sao lưu dự phòng

Có phải câu hỏi này của bạn không chỉ giống nhau?
Nils

1
@Nils Câu hỏi đó không giống nhau. Câu hỏi đó là về việc cài đặt trình điều khiển mới hơn. Câu hỏi này là về việc chặn nó tải trong chế độ khởi động người dùng, sau khi đã tải phiên bản trình điều khiển mpt2sas mới hơn.
Sao lưu Pro

Câu trả lời:


4

Kiểm tra xem mô-đun của bạn không được liệt kê trong tập tin /etc/modules. Tệp này liệt kê các mô-đun phải được tải vào lúc khởi động theo http://www.debian.org/doc/manuals/debian-faq/ch-kernel.en.html#s-modules

Khi tên mô-đun - mpt2sas trong trường hợp này - được liệt kê trong tệp /etc/modules:

  1. Xóa dòng mpt2sas hoặc nhận xét nó bằng cách thêm một hàm băm. Dòng " mpt2sas" trở thành " #mpt2sas".
  2. Cập nhật tệp hình ảnh initramfs: depmod -aeF /boot/System.map-$(uname -r) && update-initramfs -u -k $(uname -r) -t
  3. Và khởi động lại

facepalm - điều này đã quá rõ ràng để bỏ qua! Dù sao, bạn đã tự chỉnh sửa các /etc/modulestập tin.
gertvdijk

@gertvdijk Đối với người mới làm quen với Linux, không có gì là rõ ràng cả.
Sao lưu Pro

2

Thêm phần này vào dòng lệnh khởi động kernel của bạn (ví dụ: Grub, nhấn evà chỉnh sửa các tham số khởi động kernel):

modprobe.blacklist=mpt2sas

Thêm về điều này trên wiki Arch .


Tham số kernel modprobe.blacklist=mpt2sasnày không thay đổi việc tải mô-đun /weak-updates/mpt2sas.ko trong khi khởi động trong trường hợp của chúng tôi.
Sao lưu dự phòng
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.