如何在 Linux 中将主目录移动到新分区或磁盘如何在 Linux 中将主目录移动到新分区或磁盘如何在 Linux 中将主目录移动到新分区或磁盘如何在 Linux 中将主目录移动到新分区或磁盘
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Linux 中将主目录移动到新分区或磁盘

在任何 Linux 系统上,/home 目录都是肯定会增大大小的目录之一。这是因为除 root 帐户外,系统帐户(用户)目录将驻留在 /home 中 - 这里用户将持续存储文档和其他文件。

另一个具有相同行为的重要目录是/var,它包含日志文件,这些文件的大小会随着系统的继续运行而逐渐增大,例如日志文件、Web 文件、打印后台文件等。

当这些目录填满时,可能会导致根文件系统出现严重问题,从而导致系统启动失败或其他一些相关问题。但是,有时您只有在安装系统并配置根文件系统/分区上的所有目录后才能注意到这一点。

建议阅读: Linux 目录结构和重要文件路径解释

在本指南中,我们将展示如何将主目录移动到 Linux 中新存储磁盘上的专用分区中。

在 Linux 中安装新硬盘并对其进行分区

在继续之前,我们将简要解释如何向现有 Linux 服务器添加新硬盘。

注意:如果您已经有一个准备好操作的分区,请转到解释在目录中移动 /home 目录的步骤的部分。下面有自己的分区。

我们假设您已将新磁盘连接到系统。在硬盘上,要创建的分区数量以及分区表通常由磁盘标签类型决定,前几个字节的空间将定义MBR(主引导记录) ),它存储分区表以及引导加载程序(对于可引导磁盘)。

虽然标签类型有很多种,但 Linux 只接受两种:MSDOS MBR(大小为 516 字节)或 GPT(GUID 分区表)MBR。

我们还假设出于本指南的目的使用了新的硬盘(/dev/sdb,大小270 GB),您可能需要服务器上更大的容量庞大的用户群。

首先需要使用fdisk或parted设置磁盘标签类型;我们在此示例中使用了 GPT 标签名称。

parted /dev/sdb mklabel gpt

注意:fdisk 目前仅支持 MSDOS MBR,parted 支持这两个标签。

现在创建第一个分区 (/dev/sdb1),大小为 106GB。我们为 MBR 预留了 1024MB 空间。

parted -a cylinder /dev/sdb mkpart primary 1074MB 107GB

解释一下上面的命令:

  • a – 指定分区对齐方式的选项。
  • mkpart – 创建分区的子命令。
  • primary – 将分区类型设置为主硬盘(其他值为逻辑或扩展)。
  • 1074MB – 分区的开始。
  • 107GB – 分区末尾。

现在检查磁盘上的可用空间,如下所示。

parted /dev/sdb print free

我们将创建另一个大小为 154GB 的分区 (/dev/sdb2)。

parted -a cylinder /dev/sdb mkpart primary 115GB 268GB

接下来,让我们设置每个分区上的文件系统类型。

mkfs.ext4 /dev/sdb1
mkfs.xfs /dev/sdb2

要查看系统上连接的所有存储设备,请键入。

parted -l

将主目录移动到专用分区

现在我们已经添加了新磁盘并创建了必要的分区;现在是时候将 home 文件夹移动到其中一个分区了。要使用文件系统,必须将其安装到根文件系统的安装点:目标目录,例如 /home。

首先使用 df 命令在系统上列出文件系统的使用情况。

df -l

我们将首先创建一个新目录 /srv/home ,我们可以暂时挂载 /dev/sdb1 。

mkdir -p /srv/home
mount /dev/sdb1 /srv/home 

然后使用 rsync 命令将 /home 的内容移动到 /srv/home (因此它们实际上将存储在 /dev/sdb1 中)或cp 命令。

rsync -av /home/* /srv/home/
OR
cp -aR /home/* /srv/home/

之后,我们将使用 diff 工具查找两个目录之间的差异,如果一切正常,则继续下一步。

diff -r /home /srv/home

然后,删除/home中的所有旧内容,如下所示。

rm -rf /home/*

接下来卸载/srv/home。

umount /srv/home

最后,我们必须同时将文件系统/dev/sdb1挂载到/home。

mount /dev/sdb1 /home
ls -l /home

上述更改仅在当前启动期间有效,请在 /etc/fstab 中添加以下行以使更改永久生效。

使用以下命令获取分区UUID。

blkid /dev/sdb1

/dev/sdb1: UUID="e087e709-20f9-42a4-a4dc-d74544c490a6" TYPE="ext4" PARTLABEL="primary" PARTUUID="52d77e5c-0b20-4a68-ada4-881851b2ca99"

知道分区 UUID 后,打开 /etc/fstab 文件添加以下行。

UUID=e087e709-20f9-42a4-a4dc-d74544c490a6   /home   ext4   defaults   0   2

解释上面一行中的字段:

  • UUID – 指定块设备,您也可以使用设备文件/dev/sdb1。
  • /home – 这是挂载点。
  • etx4 – 描述设备/分区上的文件系统类型。
  • defaults – 挂载选项(此处该值表示 rw、suid、dev、exec、auto、nouser 和 async)。
  • 0 – 由转储工具使用,0 表示如果文件系统不存在则不转储。
  • 2 – 由 fsck 工具用于发现文件系统检查顺序,该值表示在根文件系统之后检查该设备。

保存文件并重新启动系统。

您可以运行以下命令来查看 /home 目录已成功移至专用分区。

df -hl

现在就是这样!要了解有关 Linux 文件系统的更多信息,请阅读这些与 Linux 上的文件系统管理相关的指南。

  1. 如何在 Linux 中删除主目录的用户帐户
  2. 什么是 Ext2、Ext3 和 Ext4 以及如何创建和转换 Linux 文件系统
  3. 确定 Linux 中文件系统类型(Ext2、Ext3 或 Ext4)的 7 种方法
  4. 如何通过 SSH 使用 SSHFS 挂载远程 Linux 文件系统或目录

在本指南中,我们向您解释了如何将 /home 目录移动到 Linux 中的专用分区。您可以通过下面的评论表分享有关本文的任何想法。

©2015-2025 艾丽卡 support@alaica.com