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

制作时间非常短,如图:

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

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

发表评论

您必须才能发表评论!