Làm cách nào để tạo một hình ảnh initrd trên OpenSuSE linux?


7
/usr/src/linux-3.2.1 # make install
scripts/kconfig/conf --silentoldconfig Kconfig
sh /usr/src/linux-3.2.1/arch/x86/boot/install.sh 3.2.1-12-desktop arch/x86/boot/bzImage \
                System.map "/boot"
You may need to create an initial ramdisk now.

-

/boot # mkinitrd initrd-3.2.1-12-desktop.img 3.2.1-12-desktop

Kernel image:   /boot/vmlinuz-2.6.34-12-desktop
Initrd image:   /boot/initrd-2.6.34-12-desktop
Kernel Modules: <not available>
Could not find map initrd-3.2.1-12-desktop.img/boot/System.map, please specify a correct file with -M.
There was an error generating the initrd (9)

Xem lỗi trong lệnh mkinitrd. Điểm mà tôi đang thiếu là gì?
Điều đó có nghĩa là gì?Kernel Modules: <not available>

OpenSuse 11.3 64 bit

EDIT1:

Tôi đã "tạo ra các mô-đun".
Tôi đã sao chép System.maptệp từ /usr/src/linux-3.2.1thư mục sang /boot, bây giờ initrdlệnh đang chạy sẽ báo lỗi sau:

linux-dopx:/boot # mkinitrd initrd-3.2.1.img 3.2.1-desktop

Kernel image:   /boot/vmlinuz-2.6.34-12-desktop
Initrd image:   /boot/initrd-2.6.34-12-desktop
Kernel Modules: <not available>
Could not find map initrd-3.2.1.img/boot/System.map, please specify a correct file with -M.

Kernel image:   /boot/vmlinuz-3.2.1-12-desktop
Initrd image:   /boot/initrd-3.2.1-12-desktop
Kernel Modules: <not available>
Could not find map initrd-3.2.1.img/boot/System.map, please specify a correct file with -M.

Kernel image:   /boot/vmlinuz-3.2.1-12-desktop.old
Initrd image:   /boot/initrd-3.2.1-12-desktop.old
Kernel Modules: <not available>
Could not find map initrd-3.2.1.img/boot/System.map, please specify a correct file with -M.
There was an error generating the initrd (9)

Bản phân phối nào? Và bình luận nói rằng CÓ THỂ, sử dụng Gentoo Tôi không bận tâm đến việc tạo ra một initrd, chúng không cần thiết .
bsd

@bdowning xin lỗi, đã chỉnh sửa nó. :)
Aquarius_Girl

Câu trả lời:


8

Bạn nên sử dụng mkinitramfs, không mkinitrd. Định dạng initrd thực tế đã lỗi thời và initramfs được sử dụng thay thế cho những ngày này, mặc dù nó vẫn được gọi là initrd. Tốt hơn nữa, chỉ cần sử dụng update-initramfs. Ngoài ra, bạn cần phải chạy make modules_installđể cài đặt các mô-đun.


btw, tôi sẽ đưa ra một câu hỏi riêng biệt cho sự khác biệt giữa initrd và initramfs, nó sẽ tạo ra một câu hỏi hay :-)
Nikhil Mulley

mkinitramfsđưa ra lệnh không tìm thấy trên Suse.
Bảo Bình_Girl

@AqueraKaul, tôi đoán rằng Suse có một công cụ khác để xây dựng nó. Các bản phân phối dựa trên Debian sử dụng gói initramfs-tools.
psusi

1
GIẢI QUYẾT: Lý do cho những lỗi này là tôi đã cố gắng tạo một hình ảnh initrd trước khi chạymake modules_install. Vì vậy, bây giờ tôi đã chạymake modules_installvà hình ảnh initrd đã tự động được tạo trong / boot .
Bảo

KẾT LUẬN: Trên Kernel 3 trở đi, chúng ta không phải tạo hình ảnh initrd, nó sẽ được tạo tự động sau đómake modules_install.
Aquarius_Girl

2

Với OpenSUSE, bạn có thể sử dụng

yast2 sysconfig

điền vào 'INITRD_MODULES' với mô-đun bạn cần và áp dụ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.