快速业务通道

在系统工作时调整分区

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-29

在这个新的技巧集中,Daniel Robbins 说明了怎么样在正在运行的系统上更改分区布局.同时他还介绍了几个诀窍,从而使您可将停机时间缩到最短,并可避免犯严重错误.在这篇技巧中,他将说明怎么样将 /home 移动到另一个分区上.

/home 分区是最常移动的分区之一.某些时候,/home 中的全部空间都用完了,需要增加一个硬盘驱动器.另一些时候,/home 被设置为根分区的一部分,为了提高性能或便于备份,可能需要将它移动到别的地方.我会针对每种情况说明怎么样安全有效地移动 /home.

警告

下面的技术说明怎么样移动一个或多个分区.尽管这项技术的设计使您能够“撤销”失败的分区移动,但它并不防止用户的错误.换言之,只要进行格式化分区或复制大量文件的操作,就存在因输入错误而导致大量数据被破坏的可能性.因此,强烈建议您 在行动之前采取适当的措施来备份所有的重要文件.

现在您已作好准备,我们就可以开始移动 /home 了.您要完成的确切步骤取决于 /home 当前是驻留在它自己单独的分区上,还是位于根分区上.在我们完成下面的步骤时,要紧记这一点(必要时我将提醒您).如果您正在将 /home 移动到一个新的硬盘驱动器上,则这个驱动器现在应该物理上安装在您的系统中.

1. 如有必要,创建一个新分区

如果您正在将 /home 移动到一个现有的分区(没有必要一定是 ext2 文件系统,只要目标主分区或扩展分区存在即可)上,则您可以直接转到 步骤 2.

如果新分区还不存在,则需要用 cfdisk(首选)或 fdisk 来创建一个新分区.如果这个分区不在第一个驱动器上,则别忘了将这个设备的名称指定为 cfdisk 或 fdisk 的第一个参数.在创建了适当的主分区或扩展分区以后,应重新启动系统以便正确地重新读取分区表.这是唯一需要重启系统的时候.

2. 在新分区上创建文件系统

要在新分区上创建文件系统,要知道这个新分区的准确设备名(例如,/dev/sda5).如果您不能确定准确的设备名,请立即停下来,仔细核对设备名.然后以 root 身份键入以下命令:

# mkfs.ext2 /dev/--?

在上面和以后的代码样例中,应该用目标分区名替换 --?.在执行此命令以后,目标分区将包含一个空的 ext2 文件系统.

3. 在 /mnt 下挂载这个新文件系统

创建一个名为 /mnt/newpart 的目录,然后将新分区挂载到这个目录上:

# mount /dev/--? /mnt/newpart

4. 进入单用户模式

为了使系统的可用性达到最大限度,我尽量推迟这一步,但现在我们进入单用户模式,然后将 /home 中的文件复制到 /mnt/newpart 中.您不应该让 /home 中的任何文件处于打开状态,而进入单用户模式消除了这种可能性:

# init 1

如果出现提示,请输入 root 口令来执行系统维护任务.您现在应该在 root shell 中.

5. 将当前目录更改为 /home,然后复制文件

键入以下命令:

# cd /home

# cp -ax * /mnt/newpart

cp -ax 命令循环地将 /home 中的内容复制到 /mnt/newpart 中,并保留全部文件属性,也不会交叉任何挂载点.该命令执行完以后,/mnt/newpart 中将包括 /home 中当前包含的全部文件和目录的精确副本.如果原来的 /home 在它自己单独的分区上(在 /etc/fstab 中用单独一行列出),请转到 步骤 6a.否则,请转到 步骤 6b.

6a. 使用新分区(当原来的 /home 是一个分区时)

下面的说明适用于原来的 /home 已经在它自己的专用分区上的系统.如果不是这种情况,请参阅 步骤 6b.

键入以下命令卸载原来的分区:

# cd /

# umount /home

然后,卸载并重新挂载新分区:

# umount /mnt/newpart

# mount /dev/--? /home

现在就可以通过 /home 访问新分区了,并可立即投入使用.我们可以在多用户模式下执行几个步骤.请按 CTRL-D 退出单用户模式,这样系统就会回到启动运行状态.

重要步骤: 在系统正常启动以后,以 root 身份登录,然后编辑 /etc/fstab,以便将 /dev/--? 自动挂载到 /home 上,而不是仍然在这个挂载点挂载原来的分区.例如,将下面这一行:

更改为:

/dev/--? /home ext2 defaults 1 2

6b. 使用新分区(当原来的 /home 不是一个分区时)

如果 /home 以前不在它自己单独的分区上(例如,如果 /home 只是根分区上的一个目录),请按下面的说明操作.执行以下命令:

# cd /

# mv /home /home.old

# mkdir /home

# mount /dev/--? /home

现在,请按 CTRL-D 离开单用户模式.当系统回到启动运行状态以后,编辑 /etc/fstab 文件,在其中添加类似这样一行:

/dev/--? /home ext2 defaults 1 2

这样,当下次重新启动系统时,您的新分区将被正确挂载.

7. 扫尾工作

我们特意将原来的 /home 目录/分区保留下来,以防复制文件时出现问题.在证实系统稳定运行以后,您就可以将原来的 /home 分区用于其他目的,或者删除原来的 /home 目录.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号