#!/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
分享到:
相关推荐
为什么要用RRamdisk这个名字,因为XP SP1开始内置了一个ramdisk程序, 主要用于XP Embed内存运行的。 2. 参数: DiskSizeM, DiskSizeK 以M和K为单位的虚拟盘大小,K单位优先。 3. 参数: MediaType 虚拟盘模拟的...
RAM编译会话是用于创建,初始化,保存和销毁虚拟磁盘的管理脚本,目的是使用它来编译和链接应用程序。 该脚本可用于设置用于编译任何应用程序的环境。我为什么要使用它? 最好用一个例子。 就我而言,我的所有源...
使用export 命令传递一个变量到一个内嵌awk 的脚本中 11-19. 使用getopts 命令来读取传递给脚本的选项/参数. 11-20. "Including"一个数据文件 11-21. 一个没什么用的,source 自身的脚本 11-22. exec 的效果 11-23. ...
该脚本创建了一个新的未启用sudo的用户,并将游戏安装在用户主文件夹中名为server的文件夹中。 它还会安装systemd服务,以在计算机启动,关闭或重新启动时启动和关闭游戏服务器,并安装systemd计时器,因此脚本会按...
相反,该脚本提供了一个简单的基础,不需要任何额外的安装,可用于编写自己的自定义服务器环境。 最新代码可在开发分支中找到。 请报告您遇到的所有错误。 经过测试 Ubuntu 14.04 特征 使用FIFO的服务器命令 初始...
默认情况下,脚本会创建RAM大小的1/4的RAM磁盘。 如果您需要更改大小,请编辑startupRAMDiskandCacheMover.sh标头部分。 RAM磁盘与Hibernate选项一起使用-您无需担心这部分。 有什么要讨论的吗? 如果您有任何...
使用export命令传递一个变量到一个内嵌awk的脚本中 11-19. 使用getopts命令来读取传递给脚本的选项/参数. 11-20. "Including"一个数据文件 11-21. 一个没什么用的,source自身的脚本 11-22. exec的效果 11-23. 一个...
一个简单的RAM磁盘创建器,用于基于UbuntuLinux发行版。 这是一个简单的设置向导,它是基于Python的,非常简单。 安装 安装过程非常简单。 您只需要下载文件并保存。 您打开终端并导航到脚本的位置。 然后,您需要...
虚拟安装从 rootfs DMG 创建一个虚拟的 APFS 反向 iOS 安装 tar。 如果您有任何问题 - 我的收件箱始终在打开这是在设备外创建虚拟 iOS 安装的一种以前未见/未发布的... 这不是一个完整的双启动脚本,但它会大大加速这
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是复杂的脚本,用于创建可引导的GNU / Linux映像。 快速开始 # make install ... 然后,当您想从此linux-chroot /设置另一个系统时,运行: # booty import linux-chroot/ < vanilla-system-stat
我们使用SELF(Simple Embedded Linux Framework)来展示如何建立一个开发环境(包括通过NFS挂载的根文件系统)和一个嵌入式目标板配置(从基于busybox的ramdisk映像文件中运行)。 本文档不会给出如何把U-Boot或者...
简单易用 ==== 关于 dracut-efi-simple是一个pacman钩子,旨在创建一个简单... 另外,其他发行版严重依赖dracut来创建初始ramdisk,而大多数特定于发行版的脚本将使dracut配置示例(如下)容易出错。 dracut-efi-simp
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介绍 ...
使用您需要的所有更改来更新自举配置(它是一个JSON文件) 初始阶段会将您的配置编译为Android OTA更新包 以恢复模式将更新程序包安装到您的设备 或者(可选)让Inception为您的设备生成缓存分区img,从而允许您以...
5.15 groupadd指令:创建一个新群组 5.16 groupdel指令:删除一个群组 5.17 groupmod 指令:改变系统群组的属性 5.18 groups指令:查看用户属于哪个组 5.19 halt指令:关闭系统 5.20 help指令:显示shell内建指令的...
一、建立自己的平台类型 (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...