分享最新优惠信息
购买主机更加划算

简述Linux系统将/Home目录迁移到单独分区的方法

这个话题咋一听可能有点奇怪,因为你可能会问,为什么要将主目录迁移到单独的分区?

其实,每当你安装Linux系统时,安装程​​序已默认选择“引导式”分区。当使用此选项时,安装程​​序会将主(home)目录以及所有其它系统目录放在根( / )分区下。

尽管此设置运行良好,但它带来了巨大的风险。如果系统崩溃或某些东西损坏了root分区,则驻留在主目录中的所有个人文件都将丢失。

因此,在安装过程中创建一个单独的主分区很重要,这保证了你在重新安装操作系统期间或根分区崩溃时个人文件的安全。

注意:如果你在对硬盘进行分区时接受了默认选项,以便所有的目录都位于root分区下,那么本教程非常适合你。

在本文当中,小编会将主目录转移到新添加的磁盘上的单独分区,为了便于演示,这里将使用可移动USB驱动器来满足附加驱动器的目的。在实际操作中,这可能是你想要作为主分区的SSD驱动器或附加 HDD。

第 1 步:识别添加的新驱动器

在插入可移动驱动器之前,这里只有一个带有主文件夹的硬盘驱动器(/dev/sda) ,并且所有系统分区都安装在根分区/上。

下面是使用df 命令概览您的硬盘驱动器配置。

$ df -Th

检查Linux分区

接下来将插入8GB可移动USB驱动器,这被标识为/dev/sdb并挂载在/media/tecmint/USB安装点上。

为了确认这一点,我们将运行lsblk命令。

$ lsblk

检查挂载的Linux分区

分区和挂载点可能会根据你的设置而有所不同。例如,第三个驱动器将被指示为/dev/sdc,第四个驱动器/dev/sdd,依此类推。

第 2 步:在Linux系统中创建新分区

在系统中新添加了第二个驱动器,但是为了将其用作主目录的单独分区这里需要在其上创建一个分区。目前它是没有的,因为它是一个新驱动器。

可以使用fdisk命令进行确认,如图命令;

$ sudo fdisk -l

在Linux中检查新驱动器

在上图突出显示的部分中,可以看到新驱动器没有与之关联的任何分区,这与第一个驱动器具有/dev/sda1/dev/sda2,/dev/sda5

现在,将使用以下命令创建一个分区:

$ sudo fdisk /dev/sdb

出现提示时,按'n'创建新分区。然后按'p'指定创建主分区,并按'1'指定分区号。对于接下来的两个提示,点击“ ENTER ”以接受指定第一个和最后一个扇区的默认值。

由于我这里是可移动驱动器带有NTFS文件系统,所以将按'Y'删除它。要保存所做的所有更改,请按'w',因为这会写入对分区所做的所有更改。

在Linux中创建新分区

要再次确认所做的更改,请运行以下命令:

$ sudo fdisk /dev/sdb

出现提示时,按'p'进行打印。这将打印出分区的信息。从输出中可以看到/dev/sdb1已使用 Linux 作为文件系统类型创建了一个新分区,这里需要将其格式化为ext4文件系统类型。

在Linux中列出新的分区信息

第 3 步:在Linux系统中格式化新分区

下一步是/dev/sdb1使用ext4文件系统格式格式化分区。请注意,正在格式化/dev/sdb1(分区)而不是/dev/sdb可移动驱动器。

$ sudo mkfs.ext4 /dev/sdb1

在Linux中格式化新分区

第 4 步:在Linux中挂载新分区

为了让系统可以访问驱动器,还需要将它挂载到系统的文件系统上。但首先需要创建一个挂载点,我们将在该挂载点上挂载分区。

$ sudo mkfs.ext4 /dev/sdb1

接下来将分区挂载到挂载点上,如下所示,这实际上使驱动器对系统可用。

$ sudo mount /dev/sdb1 /srv/home

要确认这一点,请运行df命令,如下所示:

$ sudo df -Th

确认挂载的新分区

第 5 步:将主目录文件复制到新分区

现在需要将主目录的内容复制到现在位于驱动器上的挂载点,因此运行以下命令:

$ sudo cp -aR /home/* /srv/home/

为了确认一切顺利,可以检查主目录的内容。

$ ls -l /srv/home/tecmint

从输出中可以清楚地看到所有预期位于主目录中的默认目录都存在。

确认挂载的新分区

第 6 步:创建新的主目录并挂载驱动器

现在需要创建另一个主目录,然后将在其上挂载我们的主分区。为避免混淆,这里将当前主目录重命名为/home.bak显示。

$ sudo mv /home /home.bak

接下来将创建一个新的主目录。

$ sudo mkdir /home

然后卸载/dev/sdb1文件系统并将其挂载到新创建的主目录

$ sudo umount /dev/sdb1
$ sudo mount /dev/sdb1 /home

为了确认该/home目录包含默认目录,这里将导航到并列出其内容:

$ cd /home
$ ls -l tecmint

列出主目录内容

此外,你还可以使用df命令验证文件系统是否安装在/home安装点上,如下所示。

$ sudo df -Th /dev/sdb1

确认Home Linux分区

输出确认/dev/sdb1驱动器上的文件系统已安装在/home分区上。但是,这将无法在重新启动后继续存在。为了使这种持久化,需要一个额外的步骤,即使用文件系统信息修改/etc/fstab文件。

第 7 步:Linux系统中的永久分区挂载

为了自动确保每次系统启动时都挂载文件系统,需要修改/etc/fstab文件。但首先需要获取文件系统的UUID,如下命令:

$ sudo blkid /dev/sdb1

在Linux中检查分区 UUID

将UUID复制并粘贴到文本编辑器的某处,因为这将在下一步中使用。

接下来,打开/etc/fstab文件。

$ sudo vim /etc/fstab 

如下所示,将此行附加到文件中。将方括号中的uid替换为你之前在文本编辑器上复制和粘贴的/dev/sdb1文件系统的实际UUID 。

UUID=[ uid ]     /home	   ext4	   defaults	0	2

在Linux中永久挂载分区

保存更改并关闭文件,然后运行以下命令挂载所有分区。

$ sudo mount -a

现在,你驱动器将在每次系统启动时安装在/home分区上。

$ df  -h /dev/sdb1

确认主分区挂载

为避免执行所有这些步骤,小编建议在安装期间将主分区与其他系统分区分开,以便将你的个人文件与系统文件分开。如果出现问题,这样可以很容易地恢复数据。

未经允许不得转载:惠主机 » 简述Linux系统将/Home目录迁移到单独分区的方法