导航:首页 > 文件教程 > linuxramdisk修改文件

linuxramdisk修改文件

发布时间:2021-10-25 17:35:49

A. linux内核启动出错,我编译内核,制作完ramdisk,修改完grub.conf,启动时出现以下错误,怎么回事

ramdisk 出错。
既然自己编译 linux 内核,不推荐使用randisk,只使用内核就行,
在编译内核时一定要将自己使用的文件系统编译进内核,引导时,内核后跟主分区的设备名就行,
ramdisk的作用就是加载内核驱动的,把文件系统驱动直接编译进内核,就不需要 ramdisk 了。

B. 如何编辑boot.img里面的ramdisk

首先你要有一个用户解锁fastboot的手机,这样才能允许你刷入第三方ROM2 q$ B) w; c6 _% z* i: o3 M8 y
其次你版要能找到当前权版本所对应的boot.img或sec_boot.img(带签名),通常能拿到的也就是刷机包里面解出来的sec_boot.img,通过cat mtd出来的不知道行不行=。=
工具:: I t' w H' S, [0 S! ~7 F
split_bootimg.pl google一下,很好找& P* L9 R0 g, G
mkbootfs和mkbootimg 可以从网上下,最好是自己直接编译!

C. 怎样修改ramdisk.img里面运行内存数据

1)sec_boot.img是经过签名的,需要把文件前0x1000个字节删除,也就是ANDROID! 8个字符前面所有字节删除,保存为boot.img
2) 运行perl split_bootimg.pl boot.img解出kernel和ramdisk文件,同时记下运行结果中的“Command line: vmalloc=384M mem=2044m@0x200000。。。。”一长串字符备用
3)运行指令把ramdisk的文件解出来
mkdir ramdisk
cd ramdisk
gzip -dc ../boot.img-ramdisk.gz | cpio -i
cd ..
4)修改其中的文件,例如我觉得default.prop里面的persist.sys.usb.config=manufacture,adb不太爽,想改成=adb,修改保存。如果你想adb有root权限的话,就去改ro.secure和ro.debuggable
5)重新打包
mkbootfs ./ramdisk | gzip > ramdisk-new.gz
当然如果你自己编译的mkbootfs也没有加到path里,就把编译完的程序考到当前目录,运行./mkbootfs...
生成boot-new.img
mkbootimg --cmdline '单引号里面这一段拷贝刚才记下的Command line冒号后面的一长串' --kernel boot.img-kernel --ramdisk ramdisk-new.gz -o boot-new.img
6) 现在如果把生成的boot-new.img直接刷进去,手机就起不来了,问题在于kernel,ramdisk,second stage,tags的地址,
自己编译的mkbootimg查看一下.c文件就知道base=0x10000000,生成的boot-new.img是按照这个规则来的:
kernel地址=base + 0x00008000,ramdisk地址=base + 0x01000000,
second stage地址=base + 0x00f00000,tags地址=base + 0x00000100。
这跟原始sec_boot.img里面的地址是不一样的,本想找到正确的base值,但原

D. 请问下linux RAMDISK机制是怎样的 是不是要先将KERNEL加载到RAMDISK解压后再拷贝到普通的RAM处执行呢

一直对linux启动时挂载根文件系统的过程存在着很多疑问,今天在水木精华区内找到了有用的资料容,摘录如下: 1。linux启动时,经过一系列初始化之后,需要mount 根文件系统,为最后运行init进程等做准备,mount 根文件系统有这么几种方式

E. 怎么把嵌入式平台的ramdisk.image文件在x86linux平台下运行

如果你的linux的文件系统用的是busybox,而且里面带有cp的命令的话,那就直接用cp这个命令就可以了埃

F. 如何在Linux系统下制作RamDisk

用grep在dmesg的输出中找出RamDisk的大小,然后调整大小
RamDisk的大小是被一个命令行选项控制的,这个选项会在系统启动时传给内核。由于RedHat9的默认bootloader是GRUB,我将用新的选项修改/etc/grub.conf,RamDisk大小的内核选项是:ramdisk_size=xxxxx ,xxxxx是指大小为1024-Byte的块的个数。下面要调整大小设置:/etc/grub.conf,将RamDisk配置为16MB:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/hda5
# initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.4.20-20.9)
root (hd0,0)
kernel /vmlinuz-2.4.20-20.9 ro root=LABEL=/ hdc=ide-scsi ramdisk_size=16000
initrd /initrd-2.4.20-20.9.img
将文件保存后,需要重启系统。重启后,通过查看dmesg的输出来确认修改已经生效:
dmesg | grep RAMDISK
将RamDisk格式化ram0::mke2fs -m 0 /dev/ram0
挂载RamDisk:mount /dev/ram0 /mnt/rd
查看挂载:mount | grep ram0
用tune2fs命令查看新RamDisk的详细信息
开机自动创建、挂载,在/etc/rc.local下创建如下脚本:
# Formats, mounts, and sets permissions on my 16MB ramdisk
/sbin/mke2fs -q -m 0 /dev/ram0
/bin/mount /dev/ram0 /mnt/rd
至此可以使用了,如果需要一睦其他用户或组访问,需要改相应权限就好

G. 如何修改Android系统的ramdisk.img

Ramdisk.img就在Tools工具下。而现在,我们是针对真机提取Ramdisk,修改相关文件,再将其放回去,这样以后Android设备启动时,加载的都是已经修改过的Ramdisk镜像了。我们不会去直接用Tools目录下的Ramdisk,因为很可能你的Boot镜像是已经修改过的,你只不过想在其基础上进行进一步修改而已。 1提取 好,进入正题,本文主要以修改boot.img中的ramdisk为例,但是其他的修改原理都是相通的。 首先,我们要把boot镜像从设备中提取出来,方法就是在上一篇文章中谈到的,先去adb shell中 cat /dev/mtd/mtd2 > /sdcard/root.img 然后 adb pull /sdcard/root.img ./ 这样就把root.img拷贝到本地目录下了。好,接下来的步骤,可要看仔细了,错了一点,就完全不对路了。 我们已经介绍过,boot.img的组成结构是 +—————–+ boot header 1 page +—————–+ kernel n pages +—————–+ ramdisk m pages +—————–+ second stage o pages +—————–+ 那我们要做的就是把这几个部分分别分离出来。具体的分离原理并不是很难,就是特别麻烦。所以建议大家都用现成的脚本来做。点击unpack下载分离的脚本,点击repack下载重新打包的脚本。 好,我们现在先进行镜像分离。用命令 ./split_bootimg.pl boot.img 成功执行后,可以得到两个文件,一个是boot.img-kernel,另一个是boot.img-ramdisk.gz。我们这里以修改ramdisk为例,所以将其解包 % mkdir ramdisk % cd ramdisk % gzip -dc ../boot.img-ramdisk.gz cpio -i % cd .. 解包之前新建一个文件夹放解包出来的文件,然后进入这个文件夹执行gzip和cpio的命令。至于原理,同上,请参考两年前的这篇文章。 2 生成新img 好,接下来你就可以做你想做的任何修改了,包括init.rc之类的进程方面的修改,或者丢一个什么东西进去,或者其他。只需要确保你做的修改没有问题就行。修改完成后,自然就是要将其重新还原成img包了,这时repack脚本就派上用场。用命令 repack-bootimg.pl boot-new.img 就可以生成新的boot-new.img了。 3 刷入新img 生成了新的img后,我们如何在系统上应用我们的新boot.img呢?首先,把img文件放到sdcard上去 adb push ./boot_new.img /sdcard 然后执行这两个操作 # cat /dev/zero > /dev/mtd/mtd2 # flash_image boot /sdcard/mynewimage.img 执行第一个操作时,可能会提示你 write: No space left on device 这个信息没关系,不用管它。两个命令都执行后,最后adb shell reboot即可。如果重启顺利,那么恭喜你,你的新镜像刷成功了,此时的ramdisk自然也是新的ramdisk了。 4 刷boot镜像有问题? 其实到这里,才是俺想发挥的地方。上面介绍的所有步骤,有两个特点 4.1 国外友人上都介绍过 4.2 G1上成功率最高 所以如果你是用Magic或者Hero,有一定几率会出线重启之后,画面就停留在 HTC 或者Android那里,不会进入系统。此时你必须拿出电池重新开机,按照我这篇文章所讲的方法刷一次recovery image,才能正常进入系统。如果你真的遇到这种情况,就说明上面介绍的这个方法不适合你,那么,还有没有别的方法让系统boot我们自己的boot image呢? 当然有。在这篇文章中,我们介绍了有很多第三方ROM供我们刷机,从而达到更多功能或者获得root权限的目的。其中,我们介绍了里面有一个update.zip的东西,如果亲自刷过机的朋友就知道这是什么文件。我同时也介绍了,update.zip里面就是要添加到你的system中的各种工具,其中就包括了boot.img。也就是说,我们可以自己做一个属于自己的ROM,其中包括我们自己的boot.img。

H. linux ramdisk 有什么作用

Ram Disk 就是将内存中的一块区域作为物理磁盘来使用的一种技术。对于用户来说,可以把RAM disk与通常的内硬盘分区同等对待来使用容。
内存盘对于保存加密数据来说很有用,因为我们如果将加密的文件解密到普通磁盘的话,即使我们随后删除了解密文件,数据仍然会留在磁盘上。这样是非常不安全的。而对于 RamDisk 来说,没有这样的问题。
假设有几个文件要频繁的使用,你如果将它们加到内存当中,程序运行速度会大副提高,因为内存的读写速度远高于硬盘。
像Web服务器,需要大量的读取和交换特定的文件的电脑,在Web服务器上建立RamDisk会大大提高网络读取速度。
注意:在2.6版本后,Ramdisk的这一作用开始被tmpfs(Virtual memory file system support)取代。

阅读全文

与linuxramdisk修改文件相关的资料

热点内容
如何制作安装系统镜像文件 浏览:399
win10文件夹左上角有红点 浏览:487
你为什么学plc编程 浏览:828
网络连接没了 浏览:991
代码打印pdf 浏览:563
扣扣红包网络连接失败 浏览:301
win10商城下载文件在哪 浏览:975
系统制作镜像文件 浏览:249
苹果手机指纹贴有危险 浏览:329
哪里有高中生学编程的 浏览:984
二零一八版cad的文件布局 浏览:181
js右键选中treeview 浏览:904
linux系统交换分区的文件格式是 浏览:218
数控机床编程里u5代表什么意思 浏览:202
da14580可以跑linux 浏览:819
电脑文件后缀名编程有哪些 浏览:832
怎么画网络狗头 浏览:452
javagetfoldername 浏览:994
设置小爱同学下载什么app 浏览:50
中行网银网络错误 浏览:773

友情链接