initrd解壓和相關製作
什麼是初始 RAM 磁碟?
初始 RAM 磁碟(initrd)是在實際根檔案系統可用之前掛載到系統中的一個初始根檔案系統。initrd 與核心繫結在一起,並作為核心引導過程的一部分進行載入。核心然後會將這個 initrd 檔案作為其兩階段引導過程的一部分來載入模組,這樣才能稍後使用真正的檔案系統,並掛載實際的根檔案系統。
initrd 中包含了實現這個目標所需要的目錄和可執行程式的最小集合,例如將核心模組載入到核心中所使用的 insmod 工具。
在桌面或伺服器 Linux 系統中,initrd 是一個臨時的檔案系統。其生存週期很短,只會用作到真實檔案系統的一個橋樑。在沒有儲存裝置的嵌入式系統中,initrd 是永久的根檔案系統。
initrd的作用
目的在於提供開機過程中所需要的最重要核心模組,以使系統開機過程可以順利完成。
檢視initrd-xx-xx.img虛擬檔案系統內容:
[root@localhost boot]# ll initrd-2.6.18-194.el5.img -rw------- 1 root root 2629986 02-09 09:52 initrd-2.6.18-194.el5.img [root@localhost boot]# cp initrd-2.6.18-194.el5.img /tmp/ [root@localhost boot]# pwd /boot [root@localhost boot]# cd /tmp/ [root@localhost tmp]# ls initrd-2.6.18-194.el5.img [root@localhost tmp]# file initrd-2.6.18-194.el5.img initrd-2.6.18-194.el5.img: gzip compressed data, from Unix, last modified: Thu Feb 9 09:52:35 2012, max compression [root@localhost tmp]# mv initrd-2.6.18-194.el5.img initrd-2.6.18-194.el5.img.gz [root@localhost tmp]# gunzip initrd-2.6.18-194.el5.img.gz [root@localhost tmp]# file initrd-2.6.18-194.el5.img initrd-2.6.18-194.el5.img: ASCII cpio archive (SVR4 with no CRC) [root@localhost tmp]# mkdir initrd [root@localhost tmp]# cd initrd [root@localhost initrd]# cpio -i <../initrd-2.6.18-194.el5.img 11762 blocks [root@localhost initrd]# ls bin dev etc init lib proc sbin sys sysroot [root@localhost initrd]# tree ../ ../ |-- initrd | |-- bin | | |-- dmraid | | |-- insmod | | |-- kpartx | | |-- modprobe -> /sbin/nash | | `-- nash | |-- dev | | |-- console | | |-- mapper ------省略------ [root@localhost initrd]# |
或者直接使用命令zcat initrd-2.6.18-194.el5.img | cpio -i
製作initrd檔案
[root@localhost test]# ls [root@localhost test]# mkinitrd initrd_$(uname -r) $(uname -r) //mkinitrd [-v] [--with=模組名稱] initrd 檔名 核心版本 [root@localhost test]# ls initrd_2.6.18-194.el5 [root@localhost test]# file initrd_2.6.18-194.el5 initrd_2.6.18-194.el5: gzip compressed data, from Unix, last modified: Sun Mar 25 19:49:36 2012, max compression [root@localhost test]# mkinitrd -v --with=8139too initrd_$(uname -r)_test $(uname -r) | grep 8139too //加入8139模組,生成initrd檔案之後即可移入boot中使用了 Looking for deps of module 8139too: mii Using modules: /lib/modules/2.6.18-194.el5/kernel/drivers/usb/host/ehci-hcd.ko /lib/modules/2.6.18-194.el5/kernel/drivers/usb/host/ohci-hcd.ko /lib/modules/2.6.18-194.el5/kernel/drivers/usb/host/uhci-hcd.ko /lib/modules/2.6.18-194.el5/kernel/fs/jbd/jbd.ko /lib/modules/2.6.18-194.el5/kernel/fs/ext3/ext3.ko /lib/modules/2.6.18-194.el5/kernel/drivers/scsi/scsi_mod.ko /lib/modules/2.6.18-194.el5/kernel/drivers/scsi/sd_mod.ko /lib/modules/2.6.18-194.el5/kernel/drivers/scsi/scsi_transport_spi.ko /lib/modules/2.6.18-194.el5/kernel/drivers/message/fusion/mptbase.ko /lib/modules/2.6.18-194.el5/kernel/drivers/message/fusion/mptscsih.ko /lib/modules/2.6.18-194.el5/kernel/drivers/message/fusion/mptspi.ko /lib/modules/2.6.18-194.el5/kernel/drivers/ata/libata.ko /lib/modules/2.6.18-194.el5/kernel/drivers/ata/ata_piix.ko /lib/modules/2.6.18-194.el5/kernel/drivers/md/dm-mem-cache.ko /lib/modules/2.6.18-194.el5/kernel/drivers/md/dm-mod.ko /lib/modules/2.6.18-194.el5/kernel/drivers/md/dm-log.ko /lib/modules/2.6.18-194.el5/kernel/drivers/md/dm-region_hash.ko /lib/modules/2.6.18-194.el5/kernel/drivers/md/dm-message.ko /lib/modules/2.6.18-194.el5/kernel/drivers/md/dm-raid45.ko /lib/modules/2.6.18-194.el5/kernel/drivers/net/mii.ko /lib/modules/2.6.18-194.el5/kernel/drivers/net/8139too.ko copy from `/lib/modules/2.6.18-194.el5/kernel/drivers/net/8139too.ko' [elf32-i386] to `/tmp/initrd.mD7411/lib/8139too.ko' [elf32-i386] Adding module 8139too [root@localhost test]# |
參考:http://www.ibm.com/developerworks/cn/linux/l-initrd.html
相關文章
- 【電子沙漏】製作相關例程
- 編譯linux kernel及製作initrd ( by quqi99 )編譯Linux
- JavaIO 檔案的讀取,寫入,複製,壓縮,解壓等...相關操作,持續更新JavaAI
- 遊戲製作相關---HAM教程翻譯本(五)(轉)遊戲
- 遊戲製作相關---HAM教程翻譯本(四)(轉)遊戲
- css sprite雪碧圖製作,使用以及相關,圖文gif。CSS
- 壓力測試相關指標指標
- 7z製作自解壓安裝包
- linuxtar解壓和壓縮Linux
- 使用Arduino開發板製作交流電壓表UI
- 作業系統相關題目作業系統
- linux常用壓縮解壓複製下載命令Linux
- Linux:檔案解壓、複製和移動的若干坑Linux
- 《偶像大師》的口型製作方法大揭祕——相關技術開發者訪談
- 詳解BetterZip對壓縮包註釋的一些相關小功能
- 解決方案製作思路
- 【前端】壓縮圖片以及圖片相關概念前端
- grub mbr initrd bootboot
- 常見檔案解壓和壓縮
- C# 關於壓縮、加密、解壓問題C#加密
- 關於Autolayout製作動畫的坑動畫
- 圖解Linux的IO模型和相關技術圖解Linux模型
- C++ const面試題和相關的解釋C++面試題
- 建築師解構遊戲關卡——等角檢視探討戰棋關卡製作遊戲
- CSS float相關詳解CSS
- 12c 資料泵作業啟動後相關程式和表
- 自己製作redis 和mongo 映象RedisGo
- java與作業系統相關的操作Java作業系統
- Linux作業系統相關資料Linux作業系統
- 作業系統相關知識總結作業系統
- CentOS中zip壓縮和unzip解壓縮命令詳解CentOS
- 『學了就忘』Linux基礎命令 — 32、壓縮和解壓縮相關命令Linux
- initrd的功能(轉載)
- CSS製作陰陽(偽元素/關鍵幀)CSS
- 全面瞭解Vue3的 reactive 和相關函式VueReact函式
- 匿名函式和閉包的相關應用詳解函式
- MYSQL連線相關引數和狀態值詳解MySql
- Linux下zip壓縮和unzip解壓縮命令全解Linux