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 目录。恭喜您 -- 为了获得最佳性能,您已经成功地对您的系统分区进行了重新配置。

最新文章

  1. [LeetCode] Maximum Subarray 最大子数组
  2. 反调试技术常用API,用来对付检测od和自动退出程序
  3. Fastboot模式和Recovery模式
  4. 【摘录】某表含有N个字段超精简模糊查询方法
  5. CPU的内部架构和工作原理
  6. sql server 2008 R2 配置开启远程访问
  7. 在PowerDesigner中设计物理模型1——表和主外键
  8. 【数论,找规律】Uva 11526 - H(n)
  9. git研究2
  10. poj 3172 Scales 搜索
  11. Git add和commit步骤分析
  12. 如何用好消息推送(JPush)为app拉新、留存、促活
  13. auto和bool
  14. 安装jar包到maven仓库
  15. 请简单介绍一下BootStrap:
  16. vi常用命令及快捷键
  17. 李洪强iOS经典面试题
  18. 二级联动的作业&左右移动作业
  19. Android 添加源码到eclipse 以及相关设置
  20. 微信APP支付整体流程记录备忘

热门文章

  1. HDU 5640 King's Cake GCD
  2. 如果内容很长ueditor编辑辑器怎么出现滚动条
  3. Redmine 邮件配置
  4. mysqlslap
  5. Eclipse 结合Tomcat开发Web应用
  6. JavaScript实现计算器功能
  7. HDFS的常用操作
  8. 【LeetCode】Jump Game (一维动态规划 + 线性扫描)
  9. DG日志不应用,GAP,主备切换解决思路与办法
  10. windows10 onenote 显示英文 怎么办?