2007-03-09 03:25:08 
 
整理数据
  首先,必须创建一个新分区专门用于存储频繁修改的文件。您可能希望将这个分区置于单独的磁盘上以增强性能。接下来,我将逐步说明将 /tmp 和 /var 移动到这个新分区上的各个步骤。
  警告
  下面的技术说明如何移动一个或多个分区。尽管这项技术经过专门设计,使您能够“撤销”失败的分区移动,但它并不防止用户的错误。换言之,只要进行格式化分区或复制大量文件的操作,就存在因输入错误而导致大量数据被破坏的可能性。因此,强烈建议您 在行动之前采取适当的措施来备份所有的重要文件。
  1. 在新分区上创建文件系统
  这个过程的第一步是创建一个足以容纳 /var 和 /tmp 并有一点额外空间的新分区。您需要另有一个硬盘驱动器或者一个备用的(未使用的)分区来存储经常修改的文件。如果确实需要使用 fdisk 或 cfdisk 来创建分区,则必须重新启动一次系统。现在就可以格式化新分区了,如下所示(完全可以在多用户模式下完成这一工作;我将提示您何时切换到单用户模式):
双击代码全选
1
# mkfs.ext2 /dev/***
  2. 将新分区挂载到 /mnt/rwstorage
  正如在我的前一篇技巧中那样,应该用刚创建的空分区的设备名替换 ***。意外键入错误的名称将破坏现有分区上的数据,所以一定要小心!键入这个命令以后,您就在新分区上创建了一个新的 ext2 文件系统。现在几乎就可以挂载这个分区了,但我们首先要创建一个挂载点。
双击代码全选
1
# mkdir /mnt/rwstorage
  我选择名称 "rwstorage" 是为了提醒我们,这个特殊的分区将专用于存储频繁读写的文件系统。要挂载分区,请键入:
双击代码全选
1
# mount /dev/***/mnt/rwstorage
  3. 创建新的 /tmp
  分区已经挂载好,现在就可以创建新的 /tmp 目录了:
双击代码全选
1
2
3
# cd /mnt/rwstorage
# mkdir tmp
# chmod 1777 tmp
  4. 进入单用户模式
  我们的新目录 /mnt/rwstorage/tmp 具有临时目录应该具有的权限。现在,请进入单用户模式,因为我们必须复制整个 /var。像往常一样,我们将进入单用户模式推迟到最后一刻进行。从现在起我们不希望任何程序读写 /var 中的文件,所以必须停止所有守护程序,断开所有用户,执行一些快速的维护,为此请键入以下命令:
双击代码全选
1
# init 1
  如果提示您输入口令来进行系统维护,请按指示操作。您现在应该在 root shell 中,所有不必要的守护进程已被停止。键入以下命令为 /var 中的文件创建一个新位置:
双击代码全选
1
2
# cd /mnt/rwstorage
# mkdir var
  5. 复制 /var
  在我们的新 /mnt/newstorage/var 目录上的默认权限应该是正确的,现在就可以将原来的全部 /var 数据复制到新分区上了:
双击代码全选
1
2
# cd /var
# cp -ax * /mnt/rwstorage/var
  6. 执行备份并创建符号链接
  这个命令完成以后,/mnt/rwstorage/var 就成为 /var 的一个完全相同的副本。现在您可能会问,如何让 Linux 正确使用 /mnt/rwstorage/var 和 /mnt/rwstorage/tmp 而不是根目录下的默认位置呢?使用符号链接很容易实现这一点 -- 我们将创建新的符号链接 /tmp 和 /var,它们指向 /mnt/rwstorage 中的正确目录。我们首先备份原来的目录:
双击代码全选
1
2
3
# cd /
# cp var var.old
# cp tmp tmp.old
  最后一行可能没有必要,因为通常您不会将任何重要的文件放在 /tmp 中,但我们这样做更安全一些。现在开始创建符号链接:
双击代码全选
1
2
3
# cd /
# ln -s /mnt/rwstorage/var /var
# ln -s /mnt/rwstorage/tmp /tmp
  7. 最后修改 /etc/fstab
  现在,当任何用户或程序使用 /var 时,他们将被自动转移到 /mnt/rwstorage/var!对于 /tmp 也一样。我们还有一个步骤要做;但是这一步可以安全地在多用户模式下执行。现在可以让 apache 恢复运行了,也可以让您的所有用户重新登录了。请按 CTRL-D 退出 runlevel 1。系统应该正常启动。请以 root 身份登录。
  我们必须完成的最后一个步骤是配置 /etc/fstab 文件,以便将 /dev/*** 挂载到 /mnt/rwstorage。必须在 /etc/fstab 中添加这样一行:
双击代码全选
1
/dev/***    /mnt/rwstorage ext2  defaults    1   2
  重要说明:如果您使用的内核版本属于 2.3+,则在您的 /etc/fstab 文件中很可能有这样一行:
双击代码全选
1
none      /var/shm    shm   defaults    0   0 
  该行在系统中启用共享内存,默认情况下它挂载在 /var 中。为了使该行正常工作,它必须出现在您刚添加的那一行的下一行。这样,当 Linux 启动时,/mnt/rwstorage 将首先被挂载(启用 /var)。然后,并且仅当在此以后,shm 设备将被挂载在 /var/shm,而后者实际上是 /mnt/rwstorage/var/shm。确保这两行的次序为:
双击代码全选
1
2
/dev/***    /mnt/rwstorage ext2  defaults    1   2
none      /var/shm    shm   defaults    0   0
  在保存了对 /etc/fstab 的更改以后,您的系统已经成功升级了!在证实一切工作正常以后,您可删除所备份的 /tmp.old 和 /var.old 目录。恭喜您 -- 为了获得最佳性能,您已经成功地对您的系统分区进行了重新配置。

Linux下将/TMP和/Var移动到共享分区的更多相关文章

  1. Linux下script命令录制、回放和共享终端操作script -t 2> timing.log -a output.session # 开始录制

    Linux下script命令录制.回放和共享终端操作 [日期:2018-09-04] 来源:cnblogs.com/f-ck-need-u  作者:骏马金龙 [字体:大 中 小]   另一篇终端会话共 ...

  2. Linux下多任务间通信和同步-mmap共享内存

    Linux下多任务间通信和同步-mmap共享内存 嵌入式开发交流群280352802,欢迎加入! 1.简介 共享内存可以说是最有用的进程间通信方式.两个不用的进程共享内存的意思是:同一块物理内存被映射 ...

  3. Linux下关于/tmp目录的清理规则

    本文将介绍Linux下/tmp目录的清理规则,rhel6和rhel7将以完全不同的两种方式进行清理. RHEL6 tmpwatch命令 tmpwatch 是专门用于解决“删除 xxx天没有被访问/修改 ...

  4. Linux下通过软链接转移mysql目录,解决分区空间不足(转)

    http://darwinclub.info/wp/?p=454(转) 当存放数据库分区的空间不足时,可以采取对数据库目录进行迁移的方法,具体步骤如下:1.先关闭数据库mysqladmin -p sh ...

  5. linux下(fdisk,gdisk,parted)三种分区工具比较

    1 2种分区结构简介 MBR分区 硬盘主引导记录MBR由4个部分组成 主引导程序(偏移地址0000H--0088H),它负责从活动分区中装载,并运行系统引导程序. 出错信息数据区,偏移地址0089H- ...

  6. 在Linux下制作一个磁盘文件,在u-boot 阶段对emmc 烧写整个Linux系统方法

    在Linux 下制作一个磁盘文件, 可以给他分区,以及存储文件,然后dd 到SD卡便可启动系统. 在u-boot 下启动后可以读取该文件,直接在u-boot 阶段就可以做烧写操作,省略了进入系统后才进 ...

  7. LINUX下使用NC反弹CMDSHELL提权

    很多时候linux拿到shell了,然后在菜刀或Shell里执行简单命令不允许!说明权限很死或者被管理禁止了!这里我已NC将SHELL反弹回本地提权!先看下linux内核 2.6.18-194.11. ...

  8. linux下制作共享库.a和 .so

    接触linux时间不长,总是感觉底气不足,很多东西总是感到迷迷糊糊,其实是因为没找拿到linux C的两把钥匙: makefile和动态库.共享库.linux C中几乎所有的程序都是以库的形式给出,如 ...

  9. Linux下的IPC机制

    Linux下的IPC机制 IPC(Inter-Process Communication)是多个进程之间相互沟通的一种方法.在linux下有多种进程间通信的方法. 共享内存 Linux内存共享有多种, ...

随机推荐

  1. VK Cup 2016 - Qualification Round 1 (Russian-Speaking Only, for VK Cup teams) A. Voting for Photos 水题

    A. Voting for Photos 题目连接: http://www.codeforces.com/contest/637/problem/A Description After celebra ...

  2. Si4455 低电流 Sub-GHz收发器

    Silicon Labs 的 Si4455 是易于使用的低电流 Sub-GHz EZRadio® 收发器.覆盖所有主要波段,结合了即插即用的简单性和需要处理各种不同应用的灵活性.紧凑的 3 mm x ...

  3. 解决Visual Studio 2010 “无法导入以下密钥文件” 错误

    错误原文: "错误 1 无法导入以下密钥文件: SamplePlugin.pfx.该密钥文件可能受密码保护.若要更正此问题,请尝试再次导入证书,或手动将证书安装到具有以下密钥容器名称的强名称 ...

  4. Linux 静态库与动态库搜索路径设置详解

    转载:http://blog.chinaunix.net/uid-29025972-id-3855495.html 1. 连接和运行时库文件搜索路径的设置 库文件在连接(静态库和共享库)和运行(仅限于 ...

  5. 提交svn的时候,提示丢失了预定增加的xxxx

    百度之,发现都是linux或者命令行下的解决方法, 经测试,右键svn目录 选择tortoisesvn 选择svn还原, 即可解决问题

  6. Appium+python自动化22-Appium Desktop

    Appium Desktop 原滋原味的官方文档 Appium Desktop是一款用于Mac.Windows和Linux的开源应用,它提供了Appium自动化服务器在一个漂亮灵活的UI中的强大功能. ...

  7. [android] Activity 的生命周期 以及横屏竖屏切换时 Activity 的状态变化

    生命周期Android 系统在Activity 生命周期中加入一些钩子,我们可以在这些系统预留的钩子中做一些事情.例举了 7 个常用的钩子:protected void onCreate(Bundle ...

  8. maven编译错误,警告: BASE64Decoder是内部专用 API, 可能会在未来发行版中删除

    修改红色部分版本号为2.3.2              <plugin>                 <groupId>org.apache.maven.plugins& ...

  9. highchart demo

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.c ...

  10. MVC4 过滤器(转)

    先来看看一个例子演示过滤器有什么用: public class AdminController : Controller { // ... instance variables and constru ...