`
sd8089730
  • 浏览: 259363 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论

Ubuntu Ramdisk 做 tmp

阅读更多
http://forum.ubuntu.org.cn/viewtopic.php?f=86&t=324673

ubuntu使用ramdisk 
转自某网站
一、前言:

Ubuntu 預設就會將電腦一半的記憶體掛載為 /dev/shm
/dev/shm 即是 windows系統中常說的 RamDisk

RamDisk 有很多用途,比如:
將軟體弄到 RamDisk 執行,速度將會飛快
或者編譯程式時,在 RamDisk 編譯,速度超快

當然的, /tmp 若乾脆設到 RamDisk 裡面去,不僅是速度加快,還具有減少讀寫硬碟的效果(假如你的電腦是用 SSD 固態硬碟的話)

※ 註:/dev/shm 不完全是 RamDisk,若它使用超過電腦一半以上的 RAM,就會開始吃 SWAP。另外它沒用到的部份,會自動釋放出來給系統使用。


二、將 /tmp 設到 RamDisk (tmpfs) 的方法

基本上只要打以下指令,就能將 /tmp 綁定到 /dev/shm

mkdir /dev/shm/tmpchmod 1777 /dev/shm/tmpmount --bind /dev/shm/tmp /tmp
※ 註:為何是用 mount --bind 綁定,而不是 ln -s 軟連結,原因是 /tmp 目錄,系統不給刪除。

不過每次開機都要打指令才能用,這樣是行不通的,必須讓它開機時自動執行,才會方便。

1.
用文書編輯器,建立 /etc/init.d/ramtmp.sh
內容如下:

#!/bin/sh# RamDisk tmpPATH=/sbin:/bin:/usr/bin:/usr/sbinmkdir /dev/shm/tmpchmod 1777 /dev/shm/tmpmount --bind /dev/shm/tmp /tmp

2.
將此檔改權限為 755,使其可執行
終端機下的話,如下操作:(或是用視窗改也行)

sudo chmod 755 /etc/init.d/ramtmp.sh

3.
在 /etc/rcS.d 中,建立相關軟連結(捷徑),使其一開機就執行

以下指令僅能終端機操作

cd /etc/rcS.dsudo ln -s ../init.d/ramtmp.sh S50ramtmp.sh

大功告成!重開機生效。

---------------------------------

三、說明
若想瞭解以上操作程序,是幹什麼,以及為什麼這麼做,
請看說明:

Linux 開機服務載入順序為:
1. BIOS
2. MBR
3. Linux Loader
4. Kernel, init (取得 run-level)
5. /etc/rc.d/
6. /etc/modules.conf
7. /etc/rc.d/rc[0-6].d
8. /etc/rc.d/rc.local 

換句話說,寫入 rc.local 是行不通的,因為在那之前就啟動 x-window 了,而啟動 X 時會寫入一些東東到 /tmp,此時就會出錯,導致啟動失敗。

那麼到底該寫在哪裡好呢?
答案是 /etc/rcS.d 

/etc/rcS.d 這個目錄中的檔案,開機時會被自動執行。另外它有一個特點:只有大寫 S 開頭的檔案名稱才會被執行,且多半都是採用軟連結(捷徑)的方式,連結到 /etc/init.d 目錄中的執行檔。(詳情請見該目錄中 README 英文說明)

S開頭後面的號碼,則代表執行的優先順序,由低至高依序執行,不一定是50可以隨高興更改,但要注意其它程序的優先問題,ramtmp.sh 需在 X11 啟動前執行,在 tmpfs 掛載後才執行。因此觀察後 S50 是比較恰當的。 

 

分享到:
评论

相关推荐

    使用Busybox制作ramdisk文件

    文章列出了三个主要的软件组件:Ubuntu 12.04.5作为开发主机,arm-linux-gnueabihf-6.2.1作为交叉编译工具链,以及Busybox版本1.29.3。此外,还需要内核版本4.9.28的Linux系统。 接下来是创建根文件系统目录结构的...

    linux搭建nfs和ramdisk文件系统.pdf

    例如,使用`dd if=/dev/zero of=/tmp/ramdisk.img bs=1024 count=1024000`创建一个大小为100MB的RAMDisk镜像,然后用`mount -t tmpfs -o size=100M none /mnt/ramdisk`将其挂载到/mnt/ramdisk目录下。 **总结** ...

    Ubuntu的目录结构.doc

    2. **boot/**: 存储用于系统启动的相关文件,如内核映像(vmlinuz)和初始化ramdisk(initrd)等。 3. **dev/**: 包含设备文件,代表硬件设备,允许用户以文件操作方式与设备交互。 4. **proc/**: 一个虚拟目录,...

    ubuntu系统结构.pdf

    1. `/boot`:这个目录包含所有与系统启动相关的文件,如内核镜像(vmlinuz)和初始化ramdisk(initrd),以及Grub引导加载器的配置文件。 2. `/dev`:设备文件的存放地,代表硬件设备,例如硬盘、鼠标、键盘等,...

    [终稿]LinuxUbuntu挂载点介绍及桌面服务器分区方案.doc

    1. **/boot**:这是存放系统启动所需文件的挂载点,如内核映像和初始化ramdisk。通常分配100MB至200MB的空间足够,但需根据系统中内核的数量和大小适当调整。 2. **/**(根分区):这是Linux文件系统的核心,包含除...

    linux最小系统搭建并烧写到开发板全过程

    首先,在 ubuntu/home/目录中建立一个 miniLinux目录,然后使用 SSH 软件,把 windows 下的 BusyBox 复制到 ubuntu 的 miniLinux目录下,最后,在 ubuntu 中解压 BusyBox。 2. 配置 BusyBox 使用“make menuconfig...

    Linux-2.6.14内核移植到CVT2410实验板操作指南

    - **目录结构**:构建根文件系统的基本目录结构,如`/bin`, `/dev`, `/etc`, `/lib`, `/proc`, `/sys`, `/tmp`, `/usr`, `/var`等。 ##### 3.2 准备库文件 - **库文件**:将所需的库文件复制到`/lib`目录下。 ###...

    制作文件系统的JFFS2镜像

    0x00200000-0x00400000: "ramdisk" 0x00400000-0x00800000: "cramfs" 0x00800000-0x01000000: "jffs2" 0x01000000-0x04000000: "data" ``` - 将`rootfs.jffs2`烧写到`jffs2`分区,即地址`0x00800000`开始的...

    新版Android开发教程.rar

    也有分析认为,谷歌并不想做一个简单的手机终端制造商或者软件平台开发商,而意在一统传统互联网和 移 动互联网。----------------------------------- Android 编程基础 4 Android Android Android Android 手机新...

Global site tag (gtag.js) - Google Analytics