initrd文件的解开与压缩方式

2023-12-02 22:18
文章标签 方式 压缩 解开 initrd

本文主要是介绍initrd文件的解开与压缩方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

还是我自己比较常用并且很喜欢的方法。呵呵。

 

linux-d109:/home # mkdir wangtt
linux-d109:/home # cd wangtt/
linux-d109:/home/wangtt # cp /boot/initrd-2.6.27.19-5-default .
linux-d109:/home/wangtt # ls
initrd-2.6.27.19-5-default
linux-d109:/home/wangtt # zcat initrd-2.6.27.19-5-default |cpio -i -d
15973 blocks
linux-d109:/home/wangtt # ls
bin  bootsplash  dev  etc  init  initrd-2.6.27.19-5-default  lib  lib64  proc  root  sbin  sys  tmp
linux-d109:/home/wangtt # rm initrd-2.6.27.19-5-default
linux-d109:/home/wangtt # ls
bin  bootsplash  dev  etc  init  lib  lib64  proc  root  sbin  sys  tmp
linux-d109:/home/wangtt # find .|cpio -c -o>../initrd.img
15973 blocks
linux-d109:/home/wangtt # cd ..
linux-d109:/home # ls
build  dead.ko  initrd.img  source  wangtt
linux-d109:/home # gzip initrd.img
linux-d109:/home # ls
build  dead.ko  initrd.img.gz  source  wangtt
linux-d109:/home # mv initrd.img.gz initrd-2.6.27.19-5-default
linux-d109:/home # ls
build  dead.ko  initrd-2.6.27.19-5-default  source  wangtt

 

比较好用,呵呵。

 

下面是在网络找的资料:

 

使用cpio解压initrd.img

 Posted by Michael as 开源笔记| Linux
2.6内核中的initrd.img采用cpio压缩,不再是2.4内核使用的ext2格式,无法使用mount -o loop 挂载。需要使用gunzip解压缩,然后再使用cpio解包

cp /boot/initrd-***.img initrd.img.gz
gunzip initrd.img.gz
mkdir initrd
mv initrd.img initrd
cd initrd
cpio -ivmd < initrd.img

通过以上命令就将initrd.img解压了,现在就可以对其进行编辑,完成后使用以下命令重新压制

find . | cpio -cv > ../initrd.new.img
gzip ../initrd.new.img

再将其改名拷贝至/boot目录,重启就可以观察修改后的效果

===========
  在OpenSUSE中使用了2.6 kernel所支持的cpio initrd。我们需要手工更新这个initrd时需要一系列的操作。这里记录下来:

  解开一个cpio initrd:

  > mkdir work

  > cp /boot/initrd.img ./initrd.img.gz

  > gunzip -c initrd.img.gz

  > cpio -i --make-directories < initrd.img

  制作一个cpio initrd

  > find . | cpio -c -o > ../initrd.img

  > gzip ../initrd.img

这篇关于initrd文件的解开与压缩方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/447040

相关文章

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

hdu1565(状态压缩)

本人第一道ac的状态压缩dp,这题的数据非常水,很容易过 题意:在n*n的矩阵中选数字使得不存在任意两个数字相邻,求最大值 解题思路: 一、因为在1<<20中有很多状态是无效的,所以第一步是选择有效状态,存到cnt[]数组中 二、dp[i][j]表示到第i行的状态cnt[j]所能得到的最大值,状态转移方程dp[i][j] = max(dp[i][j],dp[i-1][k]) ,其中k满足c

内核启动时减少log的方式

内核引导选项 内核引导选项大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导选项,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导选项说明。大多数选项是通过"_

用命令行的方式启动.netcore webapi

用命令行的方式启动.netcore web项目 进入指定的项目文件夹,比如我发布后的代码放在下面文件夹中 在此地址栏中输入“cmd”,打开命令提示符,进入到发布代码目录 命令行启动.netcore项目的命令为:  dotnet 项目启动文件.dll --urls="http://*:对外端口" --ip="本机ip" --port=项目内部端口 例: dotnet Imagine.M

深入理解RxJava:响应式编程的现代方式

在当今的软件开发世界中,异步编程和事件驱动的架构变得越来越重要。RxJava,作为响应式编程(Reactive Programming)的一个流行库,为Java和Android开发者提供了一种强大的方式来处理异步任务和事件流。本文将深入探讨RxJava的核心概念、优势以及如何在实际项目中应用它。 文章目录 💯 什么是RxJava?💯 响应式编程的优势💯 RxJava的核心概念

【即时通讯】轮询方式实现

技术栈 LayUI、jQuery实现前端效果。django4.2、django-ninja实现后端接口。 代码仓 - 后端 代码仓 - 前端 实现功能 首次访问页面并发送消息时需要设置昵称发送内容为空时要提示用户不能发送空消息前端定时获取消息,然后展示在页面上。 效果展示 首次发送需要设置昵称 发送消息与消息展示 提示用户不能发送空消息 后端接口 发送消息 DB = []@ro

脏页的标记方式详解

脏页的标记方式 一、引言 在数据库系统中,脏页是指那些被修改过但还未写入磁盘的数据页。为了有效地管理这些脏页并确保数据的一致性,数据库需要对脏页进行标记。了解脏页的标记方式对于理解数据库的内部工作机制和优化性能至关重要。 二、脏页产生的过程 当数据库中的数据被修改时,这些修改首先会在内存中的缓冲池(Buffer Pool)中进行。例如,执行一条 UPDATE 语句修改了某一行数据,对应的缓

Java 多线程的基本方式

Java 多线程的基本方式 基础实现两种方式: 通过实现Callable 接口方式(可得到返回值):

前端form表单+ifarme方式实现大文件下载

// main.jsimport Vue from 'vue';import App from './App.vue';import { downloadTokenFile } from '@/path/to/your/function'; // 替换为您的函数路径// 将 downloadTokenFile 添加到 Vue 原型上Vue.prototype.$downloadTokenF

SigLIP——采用sigmoid损失的图文预训练方式

SigLIP——采用sigmoid损失的图文预训练方式 FesianXu 20240825 at Wechat Search Team 前言 CLIP中的infoNCE损失是一种对比性损失,在SigLIP这个工作中,作者提出采用非对比性的sigmoid损失,能够更高效地进行图文预训练,本文进行介绍。如有谬误请见谅并联系指出,本文遵守CC 4.0 BY-SA版权协议,转载请联系作者并注