Làm thế nào để khởi động linux mà không cần initramfs?


7

Tôi đang tìm cách để khởi động kernel linux hiện có mà không cần initramfs. Theo liên kết này, nó có thể được thực hiện đơn giản bằng cách chỉnh sửa /boot/grub2/grub.cfg. Nhưng nếu tôi thử cấu hình này

menuentry 'Fedora Linux, no initramfs' {
   set root='hd0,msdos1'
   linux    /vmlinuz-3.3.4-5.fc17.i686.PAE rootfstype=ext4 root=/dev/sda2 rd.md=0 rd.lvm=0 rd.dm=0 SYSFONT=True  KEYTABLE=us rd.luks=0 LANG=en_US.UTF-8
}

quá trình khởi động dừng lại với một kernel hoảng loạn tại điểm mà kernel cố gắn kết initramfs. Tôi có phải nói trong quá trình biên dịch rằng tôi không muốn có initramfs không? Tùy chọn cấu hình duy nhất tôi tìm thấy CONFIG_INITRAMFS_SOURCElà đã được đặt thành CONFIG_INITRAMFS_SOURCE="".

Tôi biết có một câu hỏi tương tự nhưng nó thiếu một lời giải thích làm thế nào để thực hiện nó trong thực tế.


Ok dường như có một tùy chọn khác CONFIG_BLK_DEV_INITRD.
JohnnyFromBF

1
Hầu hết các hạt nhân phân phối (hạt nhân đi kèm với bản phân phối, Fedora trong trường hợp của bạn) không có tất cả các trình điều khiển cần thiết để khởi động (trình điều khiển ổ cứng, hệ thống tệp, v.v.) được biên dịch, thay vì giữ chúng trong một initramfs. (Đó là những gì bạn cần thêm vào .config để làm cho kernel của bạn hoạt động.) Điều này là để khởi động, hệ thống có thể phát hiện trình điều khiển nào nó cần (ví dụ như SATA thay vì IDE) và xóa tất cả các trình điều khiển không cần thiết , trong khi đó, nếu chúng được biên dịch, chúng không thể bị xóa. Nếu bạn vẫn quan tâm, hãy để lại nhận xét và tôi sẽ viết lên một câu trả lời đầy đủ.
Billy

Câu trả lời:


1

Initramfs có tất cả thông tin cần thiết mà HĐH cần để khởi động hệ thống .. Nó có tất cả thông tin hệ thống tệp (như thiết bị nào đến và thiết bị nào có gốc fs cần được gắn để hệ thống khởi động.) Và nội dung được tạo ra cụ thể cho kernel. Bạn có thể khởi động từ một hình ảnh khác cần có tất cả thông tin cần thiết.

Vmlinux mà bạn đang thử sử dụng là một hình ảnh được liên kết tĩnh .. Hệ thống không thể sử dụng để khởi động. Theo hiểu biết của tôi, nó được sử dụng để tạo biểu tượng và gỡ lỗi là chủ yếu.

Nó không giống như nó không thể được sử dụng để khởi động, nhưng nó cần phải được khởi động trước khi sử dụng nó .. Vì nó không có thông tin khởi động.


1
Bạn đã đúng về vmlinux; bạn không thể (trực tiếp) khởi động một hệ thống tắt nó. Tuy nhiên, có một sự khác biệt giữa vmlinux và vmlinuz (sau này là những gì OP đang cố gắng khởi động). 'vmlinuz' chỉ đơn giản là những gì mà kernel (bz) Image (có khả năng khởi động) được đặt tên khi nó được cài đặt và sao chép vào / boot.
Billy
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.