位置: IT常识 - 正文

在Linux系统上开启Initrd文件系统的方法(linux系统怎么打开)

编辑:rootadmin
这篇文章主要介绍了在Linux系统上开启Initrd文件系统的方法,Initrd是在RAM中被创建的临时的被用来激活系统所须加载的文件系统,需要的朋友可以参考下... 16-02-26

推荐整理分享在Linux系统上开启Initrd文件系统的方法(linux系统怎么打开),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux系统如何打开,linux开启x11,linux开启gui,linux开放,linux开启x11,linux开启x11,linux系统怎么打开运行程序,linux系统怎么打开运行程序,内容如对您有帮助,希望把文章链接给更多的朋友!

initial RAM disk

Linux初始RAM磁盘(initrd)是在系统引导过程中挂载的一个临时根文件系统,用来支持两阶段的引导过程。initrd文件中包含了各种可执行程序和驱动程序,它们可以用来挂载实际的根文件系统,然后再将这个 initrd RAM磁盘卸载,并释放内存。在很多嵌入式Linux系统中,initrd 就是最终的根文件系统。本文将探索 Linux 2.6 的初始 RAM磁盘,包括如何创建以及如何在Linux内核中使用。什么是初始 RAM 磁盘

初始RAM磁盘(initrd)是在实际根文件系统可用之前挂载到系统中的一个初始根文件系统。initrd与内核绑定在一起,并作为内核引导过程的一部分进行加载。内核然后会将这个 initrd文件作为其两阶段引导过程的一部分来加载模块,这样才能稍后使用真正的文件系统,并挂载实际的根文件系统。initrd 中包含了实现这个目标所需要的目录和可执行程序的最小集合,例如将内核模块加载到内核中所使用的 insmod 工具。在桌面或服务器Linux 系统中,initrd 是一个临时的文件系统。其生存周期很短,只会用作到真实文件系统的一个桥梁。在没有存储设备的嵌入式系统中,initrd 是永久的根文件系统。本文将对这两种情况进行探索。

Initrd开启步骤

下面来看下如何打开initrd,这里我使用的是debian5操作系统

1.创建一个目录,将/boot/initrd.img-2.6.18-6-amd64 复制到该目录下.

代码如下:root@192.168.30.68:tmp# mkdir initrdroot@192.168.30.68:tmp# cd initrd/root@192.168.30.68:initrd# lsroot@192.168.30.68:initrd# cp /boot/initrd.img-2.6.18-6-amd64 .root@192.168.30.68:initrd# lsinitrd.img-2.6.18-6-amd64在Linux系统上开启Initrd文件系统的方法(linux系统怎么打开)

2.将initrd文件名改为.gz文件,将其解压缩.

代码如下:root@192.168.30.68:initrd# file initrd.img-2.6.18-6-amd64 #发现该文件是一个gzip压缩过的文件initrd.img-2.6.18-6-amd64: gzip compressed data, from Unix, last modified: Thu Sep 24 18:21:40 2009root@192.168.30.68:initrd# mv initrd.img-2.6.18-6-amd64 initrd.img-2.6.18-6-amd64.gzroot@192.168.30.68:initrd# file initrd.img-2.6.18-6-amd64.gz initrd.img-2.6.18-6-amd64.gz: gzip compressed data, from Unix, last modified: Thu Sep 24 18:21:40 2009root@192.168.30.68:initrd# gunzip initrd.img-2.6.18-6-amd64.gz

3.使用file发现解压缩过后的文件是一个cpid格式,是一种备份格式,使用cpio,参数'i' 代表解包 与'd' 代表在需要时自动建立第一层目录.

代码如下:root@192.168.30.68:initrd# file initrd.img-2.6.18-6-amd64initrd.img-2.6.18-6-amd64: ASCII cpio archive (SVR4 with no CRC)root@192.168.30.68:initrd# cpio -id < initrd.img-2.6.18-6-amd6432912 blocksroot@192.168.30.68:initrd# lsbin conf etc init initrd.img-2.6.18-6-amd64 lib lib64 sbin scriptsroot@192.168.30.68:initrd# rm initrd.img-2.6.18-6-amd64 rm: remove regular file `initrd.img-2.6.18-6-amd64'? yroot@192.168.30.68:initrd# lsbin conf etc init lib lib64 sbin scripts

也可以直接通过zcat读取gzip格式的文件,再将读出来的结果由pipeline交给cpio解开

代码如下:root@192.168.30.68:initrd# zcat initrd.img-2.6.18-6-amd64 | cpio -id32912 blocksroot@192.168.30.68:initrd# lsbin conf etc init initrd.img-2.6.18-6-amd64 lib lib64 sbin scripts

以上就是initrd文件打开后的目录架构,当kernel启动加载initrd时,并没有任何系统的目录架构,这时会先以initrd所提供的目录当做是系统的暂时目录.

其中有个lib目录:里面存放着许多的模块,即现在系统所有的模块,这代表目录中所存放的模块都是开机所必须加载的模块.例如当kernel加载Initrd之后,initrd将会加相应的网络模块驱动,以便让我们进入操作系统能够识别到网卡.

代码如下:root@192.168.30.68:initrd# lsmod | grep bnx2 #本机网络驱动bnx2 183048 0root@192.168.30.68:initrd# find . -name 'bnx2*' #initrd里bnx2对应的模块./lib/modules/2.6.18-6-amd64/kernel/drivers/net/bnx2.ko./lib/firmware/bnx2-09-4.0.5.fw./lib/firmware/bnx2-06-4.0.5.fw

假如临时又添加了一块最新的网卡,希望在开机时加载,这时只要修改initrd文件的内容在打个包就可以了,比起重新编译kernel或者安装操作系统要方便多了.

下面介绍如何让将修改后的initrd文件再重新打包起来.

1.在修改后的文件目录下,使用find将所有的文件列出来,再通过pipeline,把所有清单交给cpio指令.cpio用到的参数'c'代表用新的SVR4可移植格式.'o'代表建立文件.最后用gzip以最佳的压缩效率'-9'压缩(默认是-6),使用'>'导出.

代码如下:root@192.168.30.68:initrd# lsbin conf etc init lib lib64 sbin scriptsroot@192.168.30.68:initrd# find | cpio -co | gzip -9 > initrd.img-2.6.18-6-amd64 32884 blocksroot@192.168.30.68:initrd# lsbin conf etc init initrd.img-2.6.18-6-amd64 lib lib64 sbin scriptsroot@192.168.30.68:initrd# file initrd.img-2.6.18-6-amd64 initrd.img-2.6.18-6-amd64: gzip compressed data, from Unix, last modified: Tue May 14 13:50:26 2013, max compression

2.将该文件copy到/boot/下.重启机器生效.

此外在initrd被kernel加载后的开机流程,是依照initrd文件中的一个init文件,由它所提供的脚本一步一步往下做,包括实体硬盘加载实际的操作系统也是由这个文件提供的.

代码如下:root@192.168.30.68:initrd# lsbin conf etc init lib lib64 sbin scriptsroot@192.168.30.68:initrd# cat init#!/bin/sh代码如下:echo "Loading, please wait..." 代码如下:[ -d /dev ] || mkdir -m 0755 /dev[ -d /root ] || mkdir -m 0700 /root[ -d /sys ] || mkdir /sys[ -d /proc ] || mkdir /proc[ -d /tmp ] || mkdir /tmpmkdir -p /var/lockmount -t sysfs -o nodev,noexec,nosuid none /sys mount -t proc -o nodev,noexec,nosuid none /proc 代码如下:# Note that this only becomes /dev on the real filesystem if udev's scripts# are used; which they will be, but it's worth pointing outtmpfs_size="10M"if [ -e /etc/udev/udev.conf ]; then . /etc/udev/udev.conffimount -t tmpfs -o size=$tmpfs_size,mode=0755 udev /dev[ -e /dev/console ] || mknod -m 0600 /dev/console c 5 1[ -e /dev/null ] || mknod /dev/null c 1 3> /dev/.initramfs-toolsmkdir /dev/.initramfs 代码如下:# Export the dpkg architectureexport DPKG_ARCH=. /conf/arch.conf 代码如下:# Set modprobe envexport MODPROBE_OPTIONS="-qb" 代码如下:# Export relevant variablesexport ROOT=export ROOTDELAY=export ROOTFLAGS=export ROOTFSTYPE=export break=export init=/sbin/initexport quiet=nexport readonly=y.....
本文链接地址:https://www.jiuchutong.com/zhishi/278736.html 转载请保留说明!

上一篇:Win11中的照片应用程序有哪些新功能?获得新的照片应用程序方法(win11自带照片查看器)

下一篇:进程的内核栈是什么?浅谈Linux的进程内核栈(进程核心栈)

  • 苹果手机a1586是什么型号(苹果手机a1586是什么型号多少钱)

    苹果手机a1586是什么型号(苹果手机a1586是什么型号多少钱)

  • 电脑丢包怎么解决(电脑网络丢包)

    电脑丢包怎么解决(电脑网络丢包)

  • 微机上常见的操作系统有(微机常见操作系统有哪些)

    微机上常见的操作系统有(微机常见操作系统有哪些)

  • 苹果无线左耳连接不上(苹果无线左耳连不上耳机)

    苹果无线左耳连接不上(苹果无线左耳连不上耳机)

  • 微信聊天记录转移是永久的吗(微信聊天记录转移请保持两台手机在同一网络)

    微信聊天记录转移是永久的吗(微信聊天记录转移请保持两台手机在同一网络)

  • 在excel中,若在数值单元格中出现一连串的(在excel中若在数值单元格中出现)

    在excel中,若在数值单元格中出现一连串的(在excel中若在数值单元格中出现)

  • 键盘上中英文切换是哪个键(键盘中英文切换键是哪个)

    键盘上中英文切换是哪个键(键盘中英文切换键是哪个)

  • 微信听不到对方说话怎么回事(微信听不到对方声音怎么办)

    微信听不到对方说话怎么回事(微信听不到对方声音怎么办)

  • 8寸和10寸平板对比(8寸平板和10寸平板对比大小图)

    8寸和10寸平板对比(8寸平板和10寸平板对比大小图)

  • 颜色反转在哪里(相机颜色反转在哪里)

    颜色反转在哪里(相机颜色反转在哪里)

  • 苹果隔空投送怎么改名字(苹果隔空投送怎么接收不了)

    苹果隔空投送怎么改名字(苹果隔空投送怎么接收不了)

  • 华为p20pro尺寸多大屏(华为p20pro尺寸多大)

    华为p20pro尺寸多大屏(华为p20pro尺寸多大)

  • 为什么手机老是反向充电(为什么手机老是弹出广告怎么办)

    为什么手机老是反向充电(为什么手机老是弹出广告怎么办)

  • 作业帮有电脑版的吗(作业帮有电脑版怎样搜题)

    作业帮有电脑版的吗(作业帮有电脑版怎样搜题)

  • vivoy5s的呼吸灯在哪里(vivox50呼吸灯)

    vivoy5s的呼吸灯在哪里(vivox50呼吸灯)

  • 文档中的独立一节怎么弄(word文档中的独立一节怎么设置)

    文档中的独立一节怎么弄(word文档中的独立一节怎么设置)

  • 乐视手机照片怎么免费恢复(乐视手机照片怎么导出)

    乐视手机照片怎么免费恢复(乐视手机照片怎么导出)

  • 掌上电力是什么意思

    掌上电力是什么意思

  • 荣耀20支持防抖吗(荣耀20有没有防抖)

    荣耀20支持防抖吗(荣耀20有没有防抖)

  • 安卓手机怎么下载pubg(安卓手机怎么下载推特)

    安卓手机怎么下载pubg(安卓手机怎么下载推特)

  • 苹果为什么有的应用验证不通过(苹果为什么有的软件下载不了)

    苹果为什么有的应用验证不通过(苹果为什么有的软件下载不了)

  • 抖音里保存的视频在哪里(抖音里保存的视频怎么去水印)

    抖音里保存的视频在哪里(抖音里保存的视频怎么去水印)

  • 微信视频清晰度设置(微信视频清晰度是多少)

    微信视频清晰度设置(微信视频清晰度是多少)

  • gitview命令  查看文件内容(git 查看所有commit)

    gitview命令 查看文件内容(git 查看所有commit)

  • 年末暂估成本是否进行纳税调整处理
  • 外贸企业税务处理方式
  • 本期实际抵减税额合计
  • 加计扣除是什么意思举例说明农产品
  • 企业购买的雇主责任险
  • 私车公用可以企业所得税税前扣除吗
  • 房地产契税新政策2021退税
  • 资本公积的核算内容不包括
  • 企业用商业汇票支付购货款
  • 退货或者销毁处理
  • 查税是按基本账户吗
  • 企业营改增后的会计处理有何变化
  • 专票金额怎么计算
  • 货运发票与运输发票的区别
  • 城建税及教育费附加计提表
  • 固定资产对外投资增值税
  • 车间固定资产修理费
  • 电脑折旧率计算公式
  • 收支两条线是指
  • 自产自用产品的会计处理
  • 使用360安全卫士
  • 装win7ahci
  • 微博 照片水印
  • 社保会计科目怎么做账
  • mac10.10.5系统
  • windows待机密码
  • 代付收款入账是什么意思
  • 深度学习和日常代码中遇到的报错汇总及解决方案,持续更新中。。。。
  • 拔罐的好处和坏处除湿
  • 应交税费为负数什么原因
  • 应收票据到期后账务处理
  • failed to execute goal org.apache
  • 外币借款业务的特点包括
  • 信用减值损失属于费用类科目吗
  • js点击li
  • viwer.js
  • 第十七届全国大学生智能车
  • css3的模块结构和应用
  • php导出表格
  • 新公司固定资产怎么登记
  • 摊销专利权的会计科目是
  • 金融企业往来支出是一级科目吗
  • 个税显示申报成功是不是就可以了
  • mysql详细教程
  • 年终奖怎么计算个税
  • 小规模纳税人季度不超30万免增值税
  • mysql 5.5 5.6 5.7
  • 外购商品发放给员工 进项税额能不能抵扣
  • 固定资产处置的账务处理 终于搞明白了!
  • 转让旧固定资产怎么处理
  • 银行承兑汇票是什么意思
  • 产品因质量问题换新质保期如何计算
  • 小规模个人所得税税率表2023年
  • 固定资产处理附件是什么
  • 销售固定资产如何申报企业所得税
  • 不动产租赁按简易计税吗
  • 财务费用明细账图片
  • 年报超时了可以补报吗
  • 股票增发给谁
  • 旅客运输进项税申报漏了
  • 如何填写出售固定资产表
  • 公司活动费用分录
  • sql数据库回滚操作
  • 右键菜单管理 win10
  • linux的df命令是什么单词的缩写
  • 什么叫脚本错误
  • 微软宣布将AI引入Office套件
  • Linux系统防火墙的命令
  • windows 10预览版
  • linux挂载yum
  • schedul2.exe - schedul2是什么进程 有什么用
  • win8系统如何
  • win7系统如何查找文件
  • win8任务栏假死
  • win 10预览版
  • cocos2dx + android 如何添加百度插屏广告
  • 实例讲解命局与大运流年作用
  • 遮罩层 css
  • jQuery Validation Plugin验证插件手动验证
  • javascript var
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设