`
xitong
  • 浏览: 6197700 次
文章分类
社区版块
存档分类
最新评论

一个创建 ramdisk的脚本

 
阅读更多
#!/bin/bash
# ramdisk.sh


# "ramdisk"是系统RAM内存的一段,
#+ 它可以被当成是一个文件系统来操作.
# 它的优点是存取速度非常快 (包括读和写).
# 缺点: 易失性, 当计算机重启或关机时会丢失数据.
#+ 会减少系统可用的RAM.
#
# 那么ramdisk有什么作用呢?
# 保存一个较大的数据集在ramdisk, 比如一张表或字典,
#+ 这样可以加速数据查询, 因为在内存里查找比在磁盘里查找快得多.


E_NON_ROOT_USER=70 # 必须用root来运行.
ROOTUSER_NAME=root


MOUNTPT=/mnt/ramdisk
SIZE=2000 # 2K 个块 (可以合适的做修改)
BLOCKSIZE=1024 # 每块有1K (1024 byte) 的大小
DEVICE=/dev/ram0 # 第一个 ram 设备


username=`id -nu`
if [ "$username" != "$ROOTUSER_NAME" ]
then
echo "Must be root to run /"`basename $0`/"."
exit $E_NON_ROOT_USER
fi


if [ ! -d "$MOUNTPT" ] # 测试挂载点是否已经存在了,
then #+ 如果这个脚本已经运行了好几次了就不会再建这个目录了
mkdir $MOUNTPT #+ 因为前面已经建立了.
fi


#dd if=/dev/zero of=$DEVICE count=$SIZE bs=$BLOCKSIZE # 把RAM设备的内容用零填充.
# 为何需要这么做?
mke2fs -j $DEVICE # 在RAM设备上创建一个ext2文件系统.
mount $DEVICE $MOUNTPT # 挂载设备.
chmod 777 $MOUNTPT # 使普通用户也可以存取这个ramdisk.
# 但是, 只能由root来缷载它.


echo $MOUNTPT/" now available for use."
# 现在 ramdisk 即使普通用户也可以用来存取文件了.


# 注意, ramdisk是易失的, 所以当计算机系统重启或关机时ramdisk里的内容会消失.
#
# 拷贝所有你想保存文件到一个常规的磁盘目录下.
# 重启之后, 运行这个脚本再次建立起一个 ramdisk.
# 仅重新加载 /mnt/ramdisk 而没有其他的步骤将不会正确工作.


# 如果加以改进, 这个脚本可以放在 /etc/rc.d/rc.local,
#+ 以使系统启动时能自动设立一个ramdisk.
# 这样很合适速度要求高的数据库服务器.


exit 0

分享到:
评论

相关推荐

    支持64位的ramdisk虚拟磁盘软件

    为什么要用RRamdisk这个名字,因为XP SP1开始内置了一个ramdisk程序, 主要用于XP Embed内存运行的。 2. 参数: DiskSizeM, DiskSizeK 以M和K为单位的虚拟盘大小,K单位优先。 3. 参数: MediaType 虚拟盘模拟的...

    ram-compilesession:用于创建,初始化,保存和销毁用于编译cmake应用程序的ramdisk的管理脚本

    RAM编译会话是用于创建,初始化,保存和销毁虚拟磁盘的管理脚本,目的是使用它来编译和链接应用程序。 该脚本可用于设置用于编译任何应用程序的环境。我为什么要使用它? 最好用一个例子。 就我而言,我的所有源...

    Advanced Bash-Scripting Guide <>

    使用export 命令传递一个变量到一个内嵌awk 的脚本中 11-19. 使用getopts 命令来读取传递给脚本的选项/参数. 11-20. "Including"一个数据文件 11-21. 一个没什么用的,source 自身的脚本 11-22. exec 的效果 11-23. ...

    sesrv-script:在Linux服务器上运行Space Engineers的Bash脚本

    该脚本创建了一个新的未启用sudo的用户,并将游戏安装在用户主文件夹中名为server的文件夹中。 它还会安装systemd服务,以在计算机启动,关闭或重新启动时启动和关闭游戏服务器,并安装systemd计时器,因此脚本会按...

    minecraft-service:Minecraft服务器初始化脚本

    相反,该脚本提供了一个简单的基础,不需要任何额外的安装,可用于编写自己的自定义服务器环境。 最新代码可在开发分支中找到。 请报告您遇到的所有错误。 经过测试 Ubuntu 14.04 特征 使用FIFO的服务器命令 初始...

    OSX-RAMDisk:OS-X中用于IntelliJ的RAM磁盘创建器,Google Chrome和其他应用程序进行缓存以使其运行

    默认情况下,脚本会创建RAM大小的1/4的RAM磁盘。 如果您需要更改大小,请编辑startupRAMDiskandCacheMover.sh标头部分。 RAM磁盘与Hibernate选项一起使用-您无需担心这部分。 有什么要讨论的吗? 如果您有任何...

    Linux高级bash编程

    使用export命令传递一个变量到一个内嵌awk的脚本中 11-19. 使用getopts命令来读取传递给脚本的选项/参数. 11-20. "Including"一个数据文件 11-21. 一个没什么用的,source自身的脚本 11-22. exec的效果 11-23. 一个...

    ramdiskcreator:一个基于UbuntuLinux发行版的简单RAM磁盘创建器

    一个简单的RAM磁盘创建器,用于基于UbuntuLinux发行版。 这是一个简单的设置向导,它是基于Python的,非常简单。 安装 安装过程非常简单。 您只需要下载文件并保存。 您打开终端并导航到脚本的位置。 然后,您需要...

    VirtualInstall:从rootfs DMG创建虚拟APFS反向iOS安装tar

    虚拟安装从 rootfs DMG 创建一个虚拟的 APFS 反向 iOS 安装 tar。 如果您有任何问题 - 我的收件箱始终在打开这是在设备外创建虚拟 iOS 安装的一种以前未见/未发布的... 这不是一个完整的双启动脚本,但它会大大加速这

    rootfs的制作.docx

    1) 配置profile文件设置用户登录后的执行脚本。 4 2) 自定义主机名 5 3) 设置用户名及登录验证 5 4) 配置DNS 5 5) 加载内核驱动模块 6 6) SSH移植 6 a.安装zlib 6 b.安装openssl: 7 c.安装openssh 7 c.加入user ...

    booty:使用tmpfs和SquashFS + Overlay FS通过网络(PXE),CD-ROM(ISO)或USB记忆棒启动到GNULinux

    booty是复杂的脚本,用于创建可引导的GNU / Linux映像。 快速开始 # make install ... 然后,当您想从此linux-chroot /设置另一个系统时,运行: # booty import linux-chroot/ &lt; vanilla-system-stat

    ELDK使用与开发手册

    我们使用SELF(Simple Embedded Linux Framework)来展示如何建立一个开发环境(包括通过NFS挂载的根文件系统)和一个嵌入式目标板配置(从基于busybox的ramdisk映像文件中运行)。 本文档不会给出如何把U-Boot或者...

    dracut-uefi-simple:带有简单配置的Arch Linux的Dracut钩子

    简单易用 ==== 关于 dracut-efi-simple是一个pacman钩子,旨在创建一个简单... 另外,其他发行版严重依赖dracut来创建初始ramdisk,而大多数特定于发行版的脚本将使dracut配置示例(如下)容易出错。 dracut-efi-simp

    linux基本操作

    2.10. 循环打印一个目录中的所有文件 25 3. rpm命令的用法 25 3.1. rpm命令的基本用法 25 3.2. 一个简单的rpm包的制作过程 26 4. ftp服务 28 4.1. linux下常用的ftp server 28 4.2. tftp server 28 4.2.1. TFTP介绍 ...

    inception:无需手动操作的Android设备自动配置工具

    使用您需要的所有更改来更新自举配置(它是一个JSON文件) 初始阶段会将您的配置编译为Android OTA更新包 以恢复模式将更新程序包安装到您的设备 或者(可选)让Inception为您的设备生成缓存分区img,从而允许您以...

    Linux指令一周通 (技术图书大系).azw3

    5.15 groupadd指令:创建一个新群组 5.16 groupdel指令:删除一个群组 5.17 groupmod 指令:改变系统群组的属性 5.18 groups指令:查看用户属于哪个组 5.19 halt指令:关闭系统 5.20 help指令:显示shell内建指令的...

    uboott移植实验手册及技术文档

    一、建立自己的平台类型 (1)解压文件 #tar jxvf u-boot-1.3.1.tar.bz2 (2)进入 U-Boot源码目录 #cd u-boot-1.3.1 (3)创建自己的开发板: #cd board #cp smdk2410 fs2410 –a #cd fs2410 #mv smdk2410...

Global site tag (gtag.js) - Google Analytics