打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
在系统工作时调整分区:移动/home
userphoto

2012.06.12

关注

/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/hda3 /home   ext2    defaults    1   2

更改为:

/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 目录。

恭喜您,您已经移动了/home!在下一篇技巧中,我们将重新配置一个系统,以使 /tmp 和 /var使用它们自己的共享分区。下篇再见。


参考资料

关于作者

Daniel Robbins 住在新墨西哥州 Albuquerque 市,他是 Gentoo Project的首席体系结构设计师,Gentoo Technologies 公司的首席执行官,LinuxAdvanced Multimedia Project (LAMP) 的顾问,他还是 Macmillan公司出版的 Caldera OpenLinux UnleashedSuSE LinuxUnleashedSamba Unleashed几本书的重要作者之一。由于深受 Pac Man 的影响,Daniel在读二年级时第一次接触到 Logo编程语言后即执迷于计算机。这可能是他后来作为 SONY ElectronicPublishing/ Psygnosis的首席图形艺术家的原因。Daniel 喜欢与他的妻子 Mary共度美好时光,Mary 今年春天已经怀孕。可以通过 drobbins@gentoo.org 与 Daniel联系。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
linux将新硬盘挂载到/home下
linux系统的无损备份与恢复
云硬盘 初始化云硬盘(小于2TB)
阿里云为分区创建文件系统
centos7 挂载硬盘,并将空间分配到home目录
系统引导过程及硬盘结构和分区出现错误后解决办法--写我情真
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服