linux挂载新硬盘到home目录下

Centos挂载硬盘完整图文教程

Linux中挂载磁盘是一项重要的操作,可以用于扩展存储空间,管理数据文件。

相关概念

  1. 磁盘分区

在Linux中,磁盘是通过分区来使用的。分区是将一个硬盘划分成几个逻辑部分来使用,在每个分区中可以存储不同的文件系统。因此,在挂载磁盘之前,我们需要先对磁盘进行分区。磁盘分区的过程可以通过命令行工具或图形界面工具来完成。

常用的磁盘分区工具有:

  • cfdisk: 命令行工具,适用于创建主分区和扩展分区,支持MBR和GPT分区表。
  • fdisk: 命令行工具,适用于创建主分区和扩展分区,支持MBR分区表。
  • gdisk: 命令行工具,适用于创建主分区、扩展分区和逻辑分区,支持GPT分区表。
  • gparted: 图形界面工具,适用于创建主分区、扩展分区和逻辑分区,支持MBR和GPT分区表。

分区的目的是将一个硬盘划分成多个逻辑部分,每个部分可以单独使用和管理。当然,分区并不是必需的,我们也可以直接将整个硬盘作为一个单一的分区进行挂载。

下面使用的是fdisk进行硬盘分区

  1. 文件系统

在Linux中,文件系统是挂载磁盘的重要概念。文件系统是指一种组织数据的方式,可以帮助我们在磁盘上存储和管理文件。常见的Linux文件系统有ext2、ext3、ext4、XFS等。

在挂载磁盘之前,我们需要先在磁盘上创建文件系统。创建文件系统的命令为mkfs。

例如,若要创建一个ext4文件系统,只需要运行以下命令:

1
2
3

mkfs.ext4 /dev/vdb1

其中”/dev/vdb1”表示要创建文件系统的分区。

  1. 挂载磁盘

在Linux中,挂载磁盘的命令为mount。在挂载磁盘之前,我们需要保证文件系统已经被创建,同时需要知道要挂载的设备和挂载点。

设备指的是要挂载的物理磁盘或分区,它的标识通常以/dev开头,后面跟着分区信息(如/dev/sda1)。

挂载点指的是要将设备挂载到哪个目录下,这个目录称为挂载点。挂载点通常是一个空目录,它必须存在于文件系统中才能被用作挂载点。

例如,我们要将一个ext4文件系统挂载到/home/data这个目录下,只需要运行以下命令:

1
mount /dev/vdb1 /home/data

这里”/dev/vdb1”是要挂载的设备,”/home/data”是挂载点。

  1. 开机自动挂载

在Linux中,如果要让磁盘在每次开机后自动挂载到指定的目录下,我们需要将挂载信息写入/etc/fstab文件中。

/etc/fstab是Linux系统中用于存储文件系统挂载信息的文件。它包含了系统启动时需要挂载的所有文件系统的信息,以及挂载时使用的选项。

我们需要在/etc/fstab文件中添加一个新的行来描述我们要挂载的文件系统。

例如,我们要将设备/dev/vdb1挂载到/home/data目录下,并使用ext4文件系统类型,同时在挂载时使用默认选项和noatime选项。我们需要在/etc/fstab文件中添加以下行:

1
/dev/vdb1 /home/data ext4 defaults,noatime 0 0

每一行信息解释如下:

名称 描述 举例
设备 要挂载设备名称 /dev/vdb1
挂载点 要将设备挂载到哪个目录下 /home/data
文件系统类型 要挂载的文件系统类型,例如ext4 ext4
挂载选项 用于控制挂载行为的选项,例如noatime(不更新访问时间)和defaults(使用默认选项)等。 defaults,noatime
挂载次序 系统应该以什么顺序挂载文件系统,例如0表示最先挂载。 0

ps: 有时需要使用 blkid 命令查看设备的UUID号,即将上面的/dev/vdb1 替换成/dev/vdb1的UUID号

这样,在每次开机后,系统会自动挂载/dev/vdb1到/mnt/data目录下,并应用我们指定的挂载选项。

  1. 卸载磁盘

在Linux中,卸载磁盘的命令为umount。卸载磁盘之前,需要先检查磁盘上是否有进程在使用它。如果有,则需要先终止相应的进程,才能安全地卸载磁盘。

例如,若要卸载/mnt/data目录下的文件系统,只需要运行以下命令:

1
umount /mnt/data

实际操作流程

1. 使用fdisk命令查看新加入的磁盘信息

1
2
fdisk -l

3285894765649923

从上述结果可以看出,系统中新加了一个磁盘设备/dev/sdb,一共429.5GB。

2. 使用fdisk分区新磁盘,并将分区标记为Linux文件系统类型
1
fdisk /dev/vdb 

3285894899748904

最后使用 fdisk -l 查看磁盘已经分区成功 磁盘信息如下:

3285895101071365

3 格式化新分区,使用mkfs命令
1
2
3
partprobe # 强制让内核重新找一次分区表(更新分区表)
# 我们新增一个分区 /dev/vdb1 大小为429GB 使用以下命令格式化
mkfs -t ext4 /dev/vdb1

3285895134629904

4. 创建挂载目录,并挂载到分区并验证挂载是否成功,使用df -h命令查看所有文件系统的储存器使用情况:

3285895268966449

从上述结果可以看出,新分区已经被成功挂载到/user/home目录下。

7. 添加自动挂载,编辑/etc/fstab文件,添加以下内容:
1
echo '/dev/sdb1    /user/home    ext4    defaults    0    2' >> /etc/fstab 

或者使用blkid命令查看设备UUID号,将/dev/sdb1 替换成/dev/sdb1的UUID号

3285895369625610

8. 保留重要文件的情况下挂载磁盘

例如,假设您想将 /dev/sdb1 挂载到 /mnt/data,但 /mnt/data 中有重要文件:

  • 移动文件:

    1
    2
    3
    4
    5
    6
    7
    8


    mv /mnt/data/* /tmp/ # (将 /mnt/data 中的所有文件移动到 /tmp/ 目录)

    mount /dev/sdb1 /mnt/data #(挂载磁盘)

    mv /tmp/* /mnt/data/ #(将文件移回 /mnt/data)

  • 使用 –bind:

    1
    2
    3
    4
    5
    6
    7

    mkdir /mnt/data_mount # (创建新的挂载点)

    mount /dev/sdb1 /mnt/data_mount #(挂载磁盘到新的挂载点)

    mount --bind /mnt/data /mnt/data_bind # (将 /mnt/data 绑定挂载到 /mnt/data_bind)

    现在您可以通过 /mnt/data_mount 访问磁盘内容,并通过 /mnt/data_bind 访问之前的文件。

七、总结

挂载磁盘是Linux系统中一个基本的操作,它可以帮助我们扩展存储空间,管理数据文件,备份和存储重要文件等。
在挂载磁盘之前,我们需要先对磁盘进行分区,并且在分区上创建文件系统。
然后,我们需要使用mount命令将设备挂载到指定的目录下,并在必要时使用/etc/fstab文件配置开机自动挂载。
最后,在卸载磁盘之前,需要先检查是否有进程在使用磁盘,并终止相应的进程。

ps: 挂载磁盘目录存在文件可先挂载到