ramdisk

白话 ramdisk

痴心易碎 提交于 2020-03-08 18:01:39
ramdisk 既是内存磁盘,就是利用物理内存的指定的容量,模仿磁盘的存储格式来存储文件,既然是模仿磁盘的存储格式来存储文件,那自然需要有磁盘的存储格式作为基础了。对于linux0.1x系统,支持的文件系统只有minix1.0,因此,要把指定的内存划分成可以存储文件,并能被minix1.0文件系统所能访问,就是按照minix1.0的格式来划分,存储了,亦即ramdisk也必须有引导块,超级块,逻辑块位图,I节点位图,I节点,逻辑块这些内容,而查找一个文件,也需要通过路径名,得到I节点号,再通过I节点号得到I节点,再通过I节点得到文件的存储在磁盘数据区(就是逻辑块)的内容,也就是说,内存磁盘就是一个磁盘,只不过是在内存中,并不需要在读取,或者写入时,先通过缓冲区,再对磁盘控制器发送命令,来达到读取数据的目的,而是直接就可以通过内存中内容,就能获得数据;同时,由于根文件系统的引导块是空的,所以再读取时,引导块的内容是不需要读到ramdisk中,因此会出现在读取根文件系统时时从超级块读起的现象。 由于linux0.1x使用的内存磁盘(ramdisk)不需要在操作的过程中写入数据,亦即ramdisk只再系统开始启动的时候,一次性的跟文件系统读到磁盘上,因此,它不需要格式化ramdisk,只需要一次性的把根文件系统的引导块,超级块等内容,一次性的读入

Ubuntu下RamDisk使用

∥☆過路亽.° 提交于 2020-03-08 18:00:52
  Ubuntu默认将内存的一半作为ramdisk空间使用。挂载点为/dev/shm 文件类型为tmpfs   /dev/shm 不完全是RamDisk,若它使用超过电脑一半以上的RAM,就会开始吃SWAP。另外它没用到的部份,会自动释放出来给系统使用   ramdisk作用可以将缓存放到其中,这样延长硬盘寿命,并且提高电脑速度   1,修改ramdisk操作   调整/dev/shm目录的大小   1)查看大小   df -h /dev/shm   2)修改大小   vi /etc/fstab   tmpfs /dev/shm tmpfs defaults,size=4096M 0 0   size参数也可以用G作单位:size=1G。   如果没有这行,可以自己加入并修改size大小   3)重新挂载   umount /dev/shm   mount /dev/shm   4)查看修改后的大小   df -h /dev/shm   2,将/tmp目录设置到RamDisk的方法   基本上只要打以下指令,就能将 /tmp 绑定到 /dev/shm   mkdir /dev/shm/tmp   chmod 1777 /dev/shm/tmp   mount --bind /dev/shm/tmp /tmp   注:为何是用 mount --bind 绑定,而不是 ln -s

Ubuntu配置Ramdisk

青春壹個敷衍的年華 提交于 2020-03-08 18:00:33
Ubuntu自提自带Ramdisk功能,不需要再专门安装什么软件。Ubuntu默认将内存的一半作为ramdisk空间使用。(挂载点为/dev/shm 文件类型为tmpfs) /dev/shm 不完全是RamDisk,若它使用超过电脑一半以上的RAM,就会开始吃SWAP。另外它没用到的部份,会自动释放出来给系统使用 ramdisk作用可以将缓存放到其中,这样延长硬盘寿命,并且提高电脑速度。 1,修改ramdisk操作 调整/dev/shm目录的大小 (1)查看大小 df -h /dev/shm (2)修改大小 sudo vi /etc/fstab 照下面修改这行,如果没有这行,可以自己加入并修改size大小 tmpfs /dev/shm tmpfs defaults,size=512M 0 0 size参数也可以用G作单位:size=1G。请根据你的X40/41内存大小设置,1G内存的建议256~512M,2G内存的建议512~768M 3)重新挂载 umount /dev/shm mount /dev/shm 4)查看修改后的大小 df -h /dev/shm 2,将/tmp目录设置到RamDisk的方法 基本上只要打以下指令,就能将 /tmp 绑定到 /dev/shm mkdir /dev/shm/tmp chmod 1777 /dev/shm/tmp mount --bind

ubuntu实现ramdisk

a 夏天 提交于 2020-03-08 18:00:10
1. linux内核提供了16个ramdisk供使用者使用,只需格式化,并挂在便可以使用。查看 ls /dev/ram* 2. 修改配置文件: sudo gedit /etc/default/grub 修改下面这行: GRUB_CMDLINE_LINUX="ramdisk_size=1024000" 3. 更新: sudo update-grub 4. 格式化ramdisk: 格式:sudo mkfs -t 文件系统 设备路径 sudo mkfs -t ext4 /dev/ram0 5. 挂载磁盘 mkdir /mnt/ramdisk sudo mount /dev/ram0 /mnt/ramdisk 6. 查看 df -h 7. 查看ramdisk上的文件系统: mount 8. 卸载 sudo umount /mnt/ramdisk 参考: https://magiclen.org/linux-ramdisk/ 来源: https://www.cnblogs.com/volcanorao/p/6249325.html

Linux kernel简介

对着背影说爱祢 提交于 2020-02-23 13:39:50
内核体系设计分:单内核,微内核 windows是微内核设计。 Linux是单内核设计,但充分借鉴了为微内核体系的优点,为内核引入了模块化机制。 内核的组成部分 kernel:内核核心,一般为bz压缩的image文件,通常位于/boot目录,名称为vmlinuz-VERSION-release kernel object:内核对象,即为内核模块,一般放置于/lib/modules/VERSION-release目录下 kernel和kernel object的版本号一定要完全一样,才能正常使用。 [ ]:N [M]:Module [*]:Y,编译进kernel ramdisk:辅助性文件,并非必须,这取决于内核是否能直接驱动rootfs所在的设备。 里面放的是: 目标设备驱动,例如SCSI设备的驱动; 逻辑设备驱动,例如LVM设备驱动 文件系统,例如xfs文件系统 它是一个简装版的根文件系统 获取内核版本信息的命令:uname 内核文件所在位置:/boot/vmlinuz-VERSION.release 获取内核的release号: # uname -r 2.6.32-754.el6.x86_64 获取主机名: # uname -n c610 # hostname c610 获取内核已经装载了哪些模块:lsmod 显示的信息来自/proc/modules文件 Module:模块名字

centos5,6的GRUB简介

三世轮回 提交于 2020-02-22 18:29:56
grub:GRand Unified Bootloader grub 0.x:grub legacy(centos5,6) grub 1.x:grub2(centos7) grub legacy(grub 0.x) stage1:mbr stage1_5:mbr之后的扇区,让stage1中的bootloader能识别stage2所在的分区上的文件系统 stage2:磁盘分区(/boot/grub/) centos6: # ls /boot/grub/ device.map fat_stage1_5 grub.conf jfs_stage1_5 minix_stage1_5 splash.xpm.gz stage2 vstafs_stage1_5 e2fs_stage1_5 ffs_stage1_5 iso9660_stage1_5 menu.lst reiserfs_stage1_5 stage1 ufs2_stage1_5 xfs_stage1_5 stage2和内核,通常放置于基本的磁盘分区,不可以是lvm和软raid。读取lvm和软raid分区,是需要根文件系统里的驱动程序的,这时根文件系统还没有加载。 根文件系统,一般都是逻辑分区,以方便扩容和管理,如果/boot也和根文件系统在同一个分区里的话,由于grub程序无法加载逻辑分区里的文件,所以就无法访问/boot目录

超级DIY:制作运行在内存中的Linux系统

独自空忆成欢 提交于 2020-02-19 08:18:26
一般情况下,linux系统启 动过程是,写在MBR上的bootloader加载内核,然后加载初启环境,即initrd;在initrd中,一般有个叫init或linuxrc的脚 本(或ELF文件),该进程启动后,会先读取/etc/inittab下的内容,这是一个初始化表,用以确定执行/etc/rc.d下的哪个RC脚 本,RC脚本执行完毕后,文件系统基本上就得到所有的硬件信息了,进而加载真正的根分区。现在要做的是——将initrd作为根分区,这样,要做的事情主 要有四点:1.创建一个空间比较大的Ramdisk ,2.用busybox生成文件系统中必备的命令,用它的主要原因是占用空间小,3.添加或修改dev和etc下的文件,4.考虑添加一些应用程序,比如 ssh等。 操作系统:SlackWare12,内核版本:2.6.21.5-smp 1.创建一个空间比较大的Ramdisk #dd if=/dev/zero of=/tmp/ramdisk bs=1k count=92160 #losetup /dev/loop2 /tmp/ramdisk #mkfs.ext2 /dev/loop2 #mount -t ext2 /dev/loop2 /mnt 可以向/mnt下写东西了,然后 #umount /mnt 以后修改时,可以这样用 #gunzip ramdisk.gz //将initrd解压

android-partition分析

帅比萌擦擦* 提交于 2020-02-17 10:22:43
转载请注明来源: cuixiaolei的技术博客 这里讲下android的分区。 具体的使用在另一片文章中介绍 ,这里只是把它拿出来介绍。 android的存储分为两种   一种叫做RAM,如emmc标准的ddr3/4,容量比较小   一种叫做ROM,rom大小比较大,如8G/16G/32G/64G/128G。 我们给手机刷机,是把system.img/recovery.img/userdata.img等按照分区表烧写在对应地址的ROM上,这部分叫系统部分,如16G的手机,开机后只有11G,其中5G被这些分区占据了,用户能使用的存储大小为11G。 我们在bootloader阶段会从boot/recovery分区中读取kernel/ramdisk到ram上,然后引导kernel,加载虚拟文件系统ramdisk,启动init,然后读取rom中的文件系统的内容。 在boot.img/recovery.img的内容如下,bootloader会从boot header得到kernel/ramdisk/second/device的大小和要加载到ram上的地址,读取aboot/recovery分区的内容到ram上。 recovery.img/boot.img的构成是一样的,只是里面文件的大小和信息不同,文件名是一样的。 分析boot_img_hdr结构提  kernel_size 

boot.img recovery.img ramdisk.img ramdisk-recovery.img 解压方法

走远了吗. 提交于 2020-02-17 10:20:00
1、下载工具 wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/android-serialport-api/android_bootimg_tools.tar.gz 2、解压工具 tar xvzf android_bootimg_tools.tar.gz 3、解压boot.img或者recovery.img ./unpackbootimg -i <filename.img> -o <output_path> mkdir myboot ./unpackbootimg -i boot.img -o myboot 注意要先创建myboot目录,不然命令会出错。解压后如下, boot.img-base boot.img-pagesize boot.img-zImage boot.img-cmdline boot.img-ramdisk.gz boot.img-zImage就是kernel,boot.img-ramdisk.gz就是ramdisk.img 4、解压boot.img-ramdisk.gz或者ramdisk.img cp ramdisk.img ramdisk.gz gunzip ramdisk.gz mkdir myramdisk cd myramdisk/

修改Android开机画面

被刻印的时光 ゝ 提交于 2020-01-22 22:49:34
制作开机Logo 方法一: Drivers/video/logo/logo_linux_clut224.ppm是默认的启动Logo图片,把自己的Logo图片(png格式)转换成ppm格式,替换这个文件,同时删除logo_linux_clut224.c logo_linux_clut224.o文件,重新编译 具体方法:Netpbm #pngtopnm logo_linux_clut224.png > logo_linux_clut224.pnm #pnmquant 224 logo_linux_clut224.pnm > logo_linux_clut224.pnm #pnmtoplainpnm logo_linux_clut224.pnm > logo_linux_clut224.ppm 注:先把png转换成pnm格式,但内核的Logo最高只支持224色,需要把颜色转换成224色,最后把pnm转成ppm,文件名必须是logo_linux_clut224.ppm。 方法二: 用RedHat9.0自带的图片编辑工具GIMP(其他发行版自己安装就行了)。 1.将颜色数改为224(在GIMP中一次选择 图像->模式->索引。如下图所示)。 2.调整大小:宽高都小两像素,否则不显示。 3.另存为,保存为ppm格式,在弹出的对话框中选择Ascii,然后复制到Logo文件夹替换原来的文件