Linux中利用内存盘提高存取速率

2017/03/2822:31:19 发表评论


摘要:最近需要给ISO做定制裁剪,动不动就4G的文件,让硬盘很是吃不消,频繁的制作让我感觉硬盘随时都有可能爆炸的危险。由于我的硬盘是机械硬盘,读取速度并不快,我考虑过换SSD来提高工作效率。此时想到了Linux内核中的虚拟内存子系统,于是想到了把内存来当硬盘使用。


1、内存盘原理

我们知道,Linux中,VM系统,即虚拟内存管理系统,为我们提供了虚拟内存到物理内存的映射,而更方便的是,Linux为我们提供了一种把内存当作文件系统来使用的方式,我们且把它称为“虚拟内存文件系统”。我们所熟悉的swap分区,其实就是由此而来。知道原理后,我们就可以把内存映射为文件磁盘啦。


2、挂载内存盘

挂载的方式很简单,假设我们在家目录创建一个tmp目录,挂载一个2G的内存磁盘,命令如下:

mkdir ~/tmp
mount -t tmpfs -o size=2048M tmpfs ~/tmp

3、精简ISO软件包


这里我们利用CentOS 6.8来做精简,原始磁盘大概4个G,我们创建几个目录来拷贝光盘中的内容:

mkdir ~/cdrom
mount /dev/sr0 ~/cdrom
cp -fra ~/cdrom ~/iso

我们在精简之前要事先安装好Linux系统,选择定制好安装软件,安装完成后在/root目录下有一个名叫install.log的软件安装列表,我们把它拿下来,选择Installing开关的行,过滤出的rpm包软件列表如下:

ql2200-firmware-2.02.08-3.1.el6.noarch.rpm

rt61pci-firmware-1.2-7.el6.noarch.rpm

xorg-x11-drv-ati-firmware-7.1.0-3.el6.noarch.rpm

rootfiles-8.1-6.1.el6.noarch.rpm

(PythonEnv) chin@chin-PC:~/mnt$ cat tmp/install.log | less               

libgcc-4.4.7-4.el6.x86_64.rpm

fontpackages-filesystem-1.41-1.1.el6.noarch.rpm

xml-common-0.6.3-32.el6.noarch.rpm

xkeyboard-config-2.6-6.el6.noarch.rpm

setup-2.8.14-20.el6_4.1.noarch.rpm

iso-codes-3.16-2.el6.noarch.rpm

liberation-fonts-common-1.05.1.20090721-5.el6.noarch.rpm

tzdata-2013g-1.el6.noarch.rpm

filesystem-2.4.30-3.el6.x86_64.rpm

……

其中后缀.rpm是我通过vim编辑器替换加上去的。此时写一个拷贝脚本copy.sh:

#!/bin/bash
while read line
do    
    cp -frv ~/iso/Packages/$line  ~/tmp/Packages/
done < tmp/install.log
rm -fr ~/iso/Packages
mv ~/tmp/Packages ~/iso

此时,我们就完成了ISO的精简。


3、开始制作ISO


这里,我们使用以下脚本makeiso.sh开始重新制作ISO:

mkisofs  -R -J -T -v -V CDROM \
-joliet-long -ucs-level 3 \
-input-charset utf8  \
--no-emul-boot \
--boot-load-size 4  \
--boot-info-table   \
-b isolinux/isolinux.bin \
-c isolinux/boot.cat  \
-o ~/MyCentOS.iso  \
~/iso

执行以下命令来统计下时间:

time ./makeiso.sh

制作时间非常短,如图:

blob.png

可以看到,不到1s的时间就搞定了,心情非常的愉快!

  • 微信扫码赞助
  • weinxin
  • 支付宝赞助
  • weinxin

发表评论

您必须才能发表评论!