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

在本文中,我们将介绍如何将Home目录移动到可能在Linux系统上的新存储磁盘上的专用分区。

在任何一个Linux系统上,其中一个目录必将成为/home目录。 这是因为系统帐户(用户)目录将驻留在/ home,除了root帐户 - 这里用户将不断存储文档和其他文件。

具有相同行为的另一个重要目录是/var ,它包含日志文件,其大小将随系统继续运行而逐渐增加,如日志文件,Web文件,打印假脱机文件等。

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

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

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

在Linux中安装和分区新的硬盘

在我们继续进行之前,我们将简要介绍如何向现有的Linux服务器添加新的硬盘。

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

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

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

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

首先,您需要使用fdiskparted 设置磁盘标签类型 ; 我们在本例中使用了GPT标签名称。

# parted /dev/sdb mklabel gpt

注意fdisk现在只支持MSDOS MBR, parted支持两个标签。

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

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

解释上面的命令:

  • a - 指定分区对齐的选项。
  • mkpart - 子命令创建分区。
  • 主要 - 将分区类型设置为硬盘上的主要(其他值是逻辑或扩展的)。
  • 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
列出新的存储设备

列出新的存储设备

将主目录移动到专用分区

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

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

# df -l
Linux文件系统用法

Linux文件系统用法

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

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

然后,使用rsync命令cp命令,/ home的内容移动到/ srv / home (以便实际存储在/ dev / sdb1中 )。

# 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 - mount选项(这里这个值意味着rw,suid,dev,exec,auto,nouser和async)。
  • 0 - 由dump工具使用,0表示如果文件系统不存在则不转储。
  • 2 - 由fsck工具用于发现文件系统检查顺序,此值表示在根文件系统后检查此设备。

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

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

# df -hl
检查Linux上的文件系统使用情况

检查Linux上的文件系统使用情况

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

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

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