在任何一个Linux系统上,其中一个目录必将成为/home
目录。 这是因为系统帐户(用户)目录将驻留在/ home,除了root帐户 - 这里用户将不断存储文档和其他文件。
具有相同行为的另一个重要目录是/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支持两个标签。
现在创建大小为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文件系统用法
我们将首先创建一个新目录/ 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中使用主目录删除用户帐户
- 什么是Ext2,Ext3和Ext4以及如何创建和转换Linux文件系统
- 确定Linux中文件系统类型的7种方法(Ext2,Ext3或Ext4)
- 如何使用SSHFS通过SSH挂载远程Linux文件系统或目录
在本指南中,我们向您解释了如何将/ home目录移动到Linux中的专用分区。 您可以通过下面的评论表格分享关于本文的任何想法。