这个话题咋一听可能有点奇怪,因为你可能会问,为什么要将主目录迁移到单独的分区?
其实,每当你安装Linux系统时,安装程序已默认选择“引导式”分区。当使用此选项时,安装程序会将主(home)目录以及所有其它系统目录放在根( / )
分区下。
尽管此设置运行良好,但它带来了巨大的风险。如果系统崩溃或某些东西损坏了root分区,则驻留在主目录中的所有个人文件都将丢失。
因此,在安装过程中创建一个单独的主分区很重要,这保证了你在重新安装操作系统期间或根分区崩溃时个人文件的安全。
注意:如果你在对硬盘进行分区时接受了默认选项,以便所有的目录都位于root分区下,那么本教程非常适合你。
在本文当中,小编会将主目录转移到新添加的磁盘上的单独分区,为了便于演示,这里将使用可移动USB驱动器来满足附加驱动器的目的。在实际操作中,这可能是你想要作为主分区的SSD驱动器或附加 HDD。
第 1 步:识别添加的新驱动器
在插入可移动驱动器之前,这里只有一个带有主文件夹的硬盘驱动器(/dev/sda) ,并且所有系统分区都安装在根分区/
上。
下面是使用df 命令概览您的硬盘驱动器配置。
$ df -Th
接下来将插入8GB可移动USB驱动器,这被标识为/dev/sdb
并挂载在/media/tecmint/USB
安装点上。
为了确认这一点,我们将运行lsblk命令。
$ lsblk
分区和挂载点可能会根据你的设置而有所不同。例如,第三个驱动器将被指示为/dev/sdc
,第四个驱动器/dev/sdd
,依此类推。
第 2 步:在Linux系统中创建新分区
在系统中新添加了第二个驱动器,但是为了将其用作主目录的单独分区,这里需要在其上创建一个分区。目前它是没有的,因为它是一个新驱动器。
可以使用fdisk命令进行确认,如图命令;
$ sudo fdisk -l
在上图突出显示的部分中,可以看到新驱动器没有与之关联的任何分区,这与第一个驱动器具有/dev/sda1
、/dev/sda2,
和/dev/sda5
现在,将使用以下命令创建一个分区:
$ sudo fdisk /dev/sdb
出现提示时,按'n'
创建新分区。然后按'p'
指定创建主分区,并按'1'
指定分区号。对于接下来的两个提示,点击“ ENTER ”以接受指定第一个和最后一个扇区的默认值。
由于我这里是可移动驱动器带有NTFS文件系统,所以将按'Y'
删除它。要保存所做的所有更改,请按'w'
,因为这会写入对分区所做的所有更改。
要再次确认所做的更改,请运行以下命令:
$ sudo fdisk /dev/sdb
出现提示时,按'p'
进行打印。这将打印出分区的信息。从输出中可以看到/dev/sdb1
已使用 Linux 作为文件系统类型创建了一个新分区,这里需要将其格式化为ext4文件系统类型。
第 3 步:在Linux系统中格式化新分区
下一步是/dev/sdb1
使用ext4文件系统格式格式化分区。请注意,正在格式化/dev/sdb1
(分区)而不是/dev/sdb
可移动驱动器。
$ sudo mkfs.ext4 /dev/sdb1
第 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
输出确认/dev/sdb1
驱动器上的文件系统已安装在/home
分区上。但是,这将无法在重新启动后继续存在。为了使这种持久化,需要一个额外的步骤,即使用文件系统信息修改/etc/fstab文件。
第 7 步:Linux系统中的永久分区挂载
为了自动确保每次系统启动时都挂载文件系统,需要修改/etc/fstab文件。但首先需要获取文件系统的UUID,如下命令:
$ sudo blkid /dev/sdb1
将UUID复制并粘贴到文本编辑器的某处,因为这将在下一步中使用。
接下来,打开/etc/fstab文件。
$ sudo vim /etc/fstab
如下所示,将此行附加到文件中。将方括号中的uid替换为你之前在文本编辑器上复制和粘贴的/dev/sdb1
文件系统的实际UUID 。
UUID=[ uid ] /home ext4 defaults 0 2
保存更改并关闭文件,然后运行以下命令挂载所有分区。
$ sudo mount -a
现在,你驱动器将在每次系统启动时安装在/home
分区上。
$ df -h /dev/sdb1
为避免执行所有这些步骤,小编建议在安装期间将主分区与其他系统分区分开,以便将你的个人文件与系统文件分开。如果出现问题,这样可以很容易地恢复数据。