位置: 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的进程内核栈(进程核心栈)

  • 支付宝交团费怎么交(支付宝如何退团)

    支付宝交团费怎么交(支付宝如何退团)

  • 小米pdf查看器怎么打开(小米pdf查看器怎么横屏)

    小米pdf查看器怎么打开(小米pdf查看器怎么横屏)

  • win10配置要求是什么(win10要求的电脑配置)

    win10配置要求是什么(win10要求的电脑配置)

  • ios14暗黑模式如何打开(ios14暗黑模式变色壁纸)

    ios14暗黑模式如何打开(ios14暗黑模式变色壁纸)

  • 小米9和9pro的区别(小米9和小米9pro一样吗)

    小米9和9pro的区别(小米9和小米9pro一样吗)

  • 小米手表时间不准怎么调(小米手表时间不准怎么调时间设置)

    小米手表时间不准怎么调(小米手表时间不准怎么调时间设置)

  • 拼多多解除微信的步骤(拼多多解除微信绑定还自动扣费吗)

    拼多多解除微信的步骤(拼多多解除微信绑定还自动扣费吗)

  • 主板供电相数有什么用(主板的供电相数是什么意思)

    主板供电相数有什么用(主板的供电相数是什么意思)

  • 群主踢人出微信群别人能看到吗(微信群主踢人,被踢者知道吗)

    群主踢人出微信群别人能看到吗(微信群主踢人,被踢者知道吗)

  • 快手平台介入商家会退款吗(快手平台介入商家不提供证据)

    快手平台介入商家会退款吗(快手平台介入商家不提供证据)

  • 微信首页在哪里(打开微信首页)

    微信首页在哪里(打开微信首页)

  • 手机屏有条线什么问题(如果手机屏幕有一条线)

    手机屏有条线什么问题(如果手机屏幕有一条线)

  • 苹果11能装两个电信卡吗(苹果11能装两个联通卡吗)

    苹果11能装两个电信卡吗(苹果11能装两个联通卡吗)

  • ipad air3支持pencil吗(ipad air3支持pencil2吗)

    ipad air3支持pencil吗(ipad air3支持pencil2吗)

  • 计算机病毒实际上是一种特殊的什么(计算机病毒实际上是一段逻辑错误的程序)

    计算机病毒实际上是一种特殊的什么(计算机病毒实际上是一段逻辑错误的程序)

  • 苹果手机不更新系统会怎样(苹果手机不更新会影响网络吗)

    苹果手机不更新系统会怎样(苹果手机不更新会影响网络吗)

  • 苹果无线耳机怎么看电量(苹果无线耳机怎么接电话和挂断电话)

    苹果无线耳机怎么看电量(苹果无线耳机怎么接电话和挂断电话)

  • 一加七pro有红外线吗(一加7pro红外线功能怎么开)

    一加七pro有红外线吗(一加7pro红外线功能怎么开)

  • 苹果x触摸tp是什么

    苹果x触摸tp是什么

  • 拼多多手机怎样留备注(拼多多手机怎样解绑)

    拼多多手机怎样留备注(拼多多手机怎样解绑)

  • 美拍视频怎么去掉logo(如何去除美拍视频水印)

    美拍视频怎么去掉logo(如何去除美拍视频水印)

  • 店铺首页链接在哪(店铺首页链接在哪里找)

    店铺首页链接在哪(店铺首页链接在哪里找)

  • 华为让游戏流畅的设置(如何让华为手机玩游戏变得流畅)

    华为让游戏流畅的设置(如何让华为手机玩游戏变得流畅)

  • 荣耀手机拍照怎么显示时间(荣耀手机拍照怎么去掉手机型号)

    荣耀手机拍照怎么显示时间(荣耀手机拍照怎么去掉手机型号)

  • 基奈峡湾国家公园的尖顶湾,阿拉斯加 (© Sekar B/Shutterstock)(吃辣第二天长痘痘)

    基奈峡湾国家公园的尖顶湾,阿拉斯加 (© Sekar B/Shutterstock)(吃辣第二天长痘痘)

  • Vue基础知识总结 11:前端路由vue-router(vue要掌握哪些知识?)

    Vue基础知识总结 11:前端路由vue-router(vue要掌握哪些知识?)

  • 增值税发票服务名称可以更改吗
  • 设计合同服务期限怎么写
  • 债务重组无形资产的评估费
  • 农民专业合作社属于什么企业类型
  • 房地产老项目简易计税方法备案
  • 没有原始凭证怎么补税
  • 工资的计提与结转怎么算
  • 未分配利润很高说明什么
  • 公允价值模式下,投资性房地产不计提折旧或摊销
  • 防暑降温用品计算方法
  • 暂时性差异乘以税率
  • 出售使用过的生产设备
  • 购入材料过程中支付运费
  • 应收票据怎么写
  • 企业成立股东没有实际出资分录怎么写?
  • 企业购买扶贫物资怎么入账
  • 公司造成损失要员工承担吗
  • 会计人士必知建筑业主要成本会计分录一览
  • 税务局锁了开票系统票已领出还可以开出来吗
  • 案例分析关于拟建科学馆的请示报告
  • 取得的增值税发票哪些项目必须开具事项
  • 生产企业出口发票数量开错有什么影响
  • 税务机关未采集开票信息是什么意思
  • 水利工程建设费用组成
  • 公司招聘费属于什么科目
  • 在建工程的工资计入哪里
  • 利润表有盈利能力吗
  • 股东放弃债权账务处理
  • 筹建期间发生的收入
  • 涉税票据如何避免税务风险?
  • 出租包装物和出借包装物的摊销额
  • u盘文件全都变成快捷方式怎么办
  • vmware10怎么安装
  • php 静态变量
  • 什么是企业最佳融资方式
  • gridviewcolumn
  • 购买土地缴纳契税
  • 空调年折旧率
  • 劳务费发票差额征税
  • nohup命令挂不上 每次都直接退出
  • 锁定vlookup快捷键
  • 应收应付核销规则及常见问题
  • 商业积分消费模式
  • 利润表本年累计金额和本期金额有什么区别
  • 通用机打发票还能用吗
  • python for循环遍历
  • 前年度多交附加税怎么交
  • 给国外公司提供服务需要交哪些税
  • 拆迁补偿收入是否缴纳所得税
  • 拍卖收入个人所得税
  • 短期借款利息是多少
  • 小微企业所得税税收优惠政策2023年
  • 跨月的红字发票申请表怎么撤销
  • 开发票货款未公对公转如何做账?
  • 公司人才账户有什么用
  • mysql优化总结
  • ftp的安装
  • 启动mac问号文件夹闪烁怎么办
  • windows u盘制作
  • 电脑界面显示windows
  • grub修复引导windows10
  • 扫描仪在哪儿
  • node. js教程
  • 正则表达\d
  • 浅析学校德育的个体智能发展功能
  • 代码的历史
  • Node.js中的construct构造函数
  • 【ExpandableListView】ExpandableListView互斥展开效果
  • javascript面向对象编程指南
  • jquery model
  • nodejs 静态页面
  • js对象用法
  • express.js教程
  • Android Fragment 体系 源码追踪笔记(4)
  • js prototype constructor
  • javascript:void(0)是什么意思及href=#与href=javascriptvoid(0)的区别
  • 江苏常州税务局电话人工服务电话
  • 会计做账需要什么凭证
  • 资产管理公司收购不良资产后怎么处置
  • 税务局绩效工作总结
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设