Linux inird 入門及製作

來源:互聯網
上載者:User

LINUX核心自從2.6版以後,就大力推薦CPIO-INITRD.


現在各大LINUX發行版的INITRD都是CPIO格式的.

如何製作CPIO-INITRD.

首先假設咱們已經用BUSYBOX或KLIBC或別的什麼做好了根檔案系統,位於~/rootfs下.

按照IBM DEVELOPERWORKS裡的文章說,可以用以下命令製作CPIO-INITRD:

cd ~/rootfs
find . | cpio -c -o > ../initrd.img
gzip ../initrd.img

其實這是不對的.

我用這幾條命令製作CPIO-INITRD,結果都是KERNEL PANIC.

參照我用的ARCHLINUX發行版的mkinitcpio命令的指令碼代碼,應該是用gen_init_cpio命令來製作CPIO-INITRD.

gen_init_cpio命令源碼通常與LINUX核心源碼一塊兒打包,位於核心源碼目錄的usr/下面.

編譯其源碼得到gen_init_cpio可執行檔,這還不夠.

gen_init_cpio的參數是一個文字檔,這個檔案的內容類別似於這種格式:

dir /sbin 755 0 0
slink /sbin/makedevs ../bin/busybox 777 0 0
slink /sbin/modprobe ../bin/busybox 777 0 0
slink /sbin/switch_root ../bin/busybox 777 0 0
slink /sbin/sysctl ../bin/busybox 777 0 0
slink /sbin/lsmod ../bin/busybox 777 0 0
slink /sbin/getty ../bin/busybox 777 0 0
slink /sbin/ifconfig ../bin/busybox 777 0 0
......

很明顯,這是個檔案清單.

手工製作這個檔案清單是不現實的,usr/目錄下還有個gen_initramfs_list.sh,這個指令碼就是用來自動組建檔案列表的.

好了,下面咱們就可以得出產生CPIO-INITRD的完整步驟了:

cd ~
gen_initramfs_list.sh rootfs/ > filelist
gen_init_cpio filelist > rootfs.cpio
gzip rootfs.cpio

最後得到的這個rootfs.cpio.gz,就是咱們要的CPIO-INITRD了.

在BOOTLOADER裡修改一下參數:

append initrd=rootfs.cpio.gz ramdisk_size=8192 vga=792

結果怎麼樣?

(全文完)

====================================== 

2.6核心中的initrd.img採用cpio壓縮,不再是2.4核心使用的ext2格式。 1、解壓initrd***.img:
#cp /boot/initrd-***.img  initrd.img.gz
#gunzip initrd.img.gz
#mkdir initrd
#mv initrd.img initrd
#cd initrd
#cpio -ivmd < initrd.img  2、修改initrd
對解壓後的initrd檔案系統進行相關修改。  3、產生新的initrd
#find . | cpio -o -H newc | gzip > /mnt/sda1/boot/initrd.img-2.6.18-4-686

(註:-H newc 是必須的,否則核心會認為是ramdisk,而不是initramfs)

 

參考連結:

Linux 初始 RAM 磁碟(initrd)概述

http://www.ibm.com/developerworks/cn/linux/l-initrd.html
Linux2.6 核心的 Initrd 機制解析

http://www.ibm.com/developerworks/cn/linux/l-k26initrd/index.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.