Linux 磁盘挂载相关概念及操作指南

Linux 中挂载磁盘是一项重要的操作,可以用于扩展存储空间,管理数据文件,备份和存储重要文件等。本文将详细介绍 Linux 系统中挂载磁盘的相关概念、步骤和实际操作指南。在文章最后附录了Linux系统中如何查看磁盘情况。

一、磁盘分区

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

常用的磁盘分区工具有:

  • cfdisk:命令行工具,适用于创建主分区和扩展分区,支持MBR和GPT分区表。

  • fdisk :命令行工具,适用于创建主分区和扩展分区,支持MBR分区表。

  • gdisk:命令行工具,适用于创建主分区、扩展分区和逻辑分区,支持GPT分区表。

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

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

二、文件系统

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

三、实际操作

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

[root@-znzj-app-1 /]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0              11:0    1 1024M  0 rom
vda             252:0    0   80G  0 disk
├─vda1          252:1    0    1G  0 part /boot
└─vda2          252:2    0   79G  0 part
  ├─centos-root 253:0    0 47.8G  0 lvm  /
  └─centos-swap 253:1    0  7.9G  0 lvm  [SWAP]
vdb             252:16   0   64M  0 disk
└─vdb1          252:17   0   63M  0 part
vdc             252:32   0  300G  0 disk

或者使用

fdisk -l

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

2. 使用fdisk或者cfdisk分区新磁盘,并将分区标记为Linux文件系统类型(83)

例如使用 fdisk 命令:

[root@-znzj-app-1 /]# sudo fdisk /dev/vdc
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xe4e64bc8.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-629145599, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-629145599, default 629145599):
Using default value 629145599
Partition 1 of type Linux and of size 300 GiB is set

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

3. 格式化新分区,使用mkfs命令

[root@-znzj-app-1 /]# sudo mkfs -t ext4 /dev/vdc
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
19660800 inodes, 78643200 blocks
3932160 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2227175424
2400 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

4. 创建挂载目录,使用mkdir命令

$ sudo mkdir -p /mnt/data

5. 挂载分区,使用mount命令

$ sudo mount /dev/vdc /mnt/data

6. 卸载磁盘,使用umount命令

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

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

umount /mnt/data

7. 验证挂载是否成功,使用df -h命令查看所有文件系统的储存器使用情况

[root@-znzj-app-1 /]# df -h
Filesystem               Size  Used Avail Use% Mounted on
devtmpfs                  16G     0   16G   0% /dev
tmpfs                     16G     0   16G   0% /dev/shm
tmpfs                     16G  1.7G   15G  11% /run
tmpfs                     16G     0   16G   0% /sys/fs/cgroup
/dev/mapper/centos-root   48G   15G   34G  31% /
/dev/vda1               1014M  239M  776M  24% /boot
tmpfs                    3.2G     0  3.2G   0% /run/user/1000
/dev/vdc                 296G   65M  281G   1% /mnt/data

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

8. 添加自动挂载,编辑/etc/fstab文件,添加以下内容

$ sudo su
$ echo '/dev/vdc    /mnt/data    ext4    defaults    0    2' >> /etc/fstab 

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

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

我们需要在 /etc/fstab 文件中添加一个新的行来描述我们要挂载的文件系统。每一行包含了如下信息:

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

四、用户目录软连接

home目录下用户全部存放与根目录下,如根磁盘空间不足,可以将 home 目录下用户目录移动至新挂载磁盘下,在 home 目录下生成挂载磁盘软链接,步骤如下:

#1.进入home目录
$ cd /home

#2.将home/admin移动至挂载磁盘目录下
$ mv admin /mnt/data/

#3.在home目录下做软连接至挂载磁盘目录下
$ ln -s /mnt/data/admin admin

#4.在home目录下查看链接路径
$ ll

#5.切换admin用户
su admin

#6.切换当前用户工作空间
cd ~

#7.查看当前路径
pwd

五、总结

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

六、 附:Linux系统中如何查看磁盘情况

Linux不像windows系统那样方便的图形界面,特别是作为服务器使用的时候,只有命令行可以使用。

1. df 命令查看磁盘情况

首先,登录服务器用df命令查看磁盘情况:

/home/projects/databook# df .
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/vda1       51420828 14018512  35079240  29% /

输出包含当前文件系统的磁盘使用情况。

df命令有个-h参数,可以更好的展示磁盘情况:

/home/projects/databook# df -h .
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        50G   14G   34G  29% /

-h参数一般是用来显示帮助信息的,但是对于df命令,h表示human,也就是以人类易读的方式显示。

上面的输出表示这个磁盘的使用量,包括我的虚拟服务器上的所有内容——可执行文件、库和支持文件等等。 总容量 50G,目前只使用了29%,剩余的还比较充裕。

2. du 命令查看文件占用情况

接下来,我想看看databook目录的文件占用情况。这需要使用 du 命令:

/home/projects/databook# du -hd 1 .
24K     ./certs
4.0K    ./download
3.2M    ./admin-ui
2.9M    ./public
108K    ./output
181M    ./upload
472K    ./markdown-files
207M    .

同样,-h参数表示以人类易读的方式显示,-d 1参数表示 du 只进入一个目录级别(也就是当前目录)。

从输出可以看出,upload目录稍微大点,其他目录都还好。 最后一行 207M 是整个目录占用磁盘的大小。 我希望按照文件/文件夹 占用磁盘空间大小的顺序来显示,这样可以快速定位到占用空间大的 文件/文件夹

3. du | sort 结合sort排序

但是,du命令并没有按磁盘空间排序的参数,所以尝试结合 sort 命令来排序。

/home/projects/databook# du -hd 1 . | sort -n
2.9M    ./public
3.2M    ./admin-ui
4.0K    ./download
24K     ./certs
108K    ./output
181M    ./upload
207M    .
472K    ./markdown-files

sort命令的-n参数表示按数字排序,不过文件夹大小不仅有数字,还有单位(比如MK这些)。 所以,这样排序对我们用处不大。

接着,尝试所有文件统一用字节表示,然后在排序:

/home/projects/databook# du -kd 1 . | sort -n
4       ./download
24      ./certs
108     ./output
472     ./markdown-files
2948    ./public
3224    ./admin-ui
184532  ./upload
211112  .

du命令的-k参数表示用字节表示文件/文件夹的大小。 这样虽然可以正常排序,但是可读性差,字节并不是人类易读的方式,还是MBGB更好理解。

进一步调查,发现sort命令居然也有-h参数,也是为了读取人类易读格式的值。

/home/projects/databook# du -hd 1 . | sort -hr
207M    .
181M    ./upload
3.2M    ./admin-ui
2.9M    ./public
472K    ./markdown-files
108K    ./output
24K     ./certs
4.0K    ./download

这样就满足了我查询磁盘空间的要求。 sort命令的-r参数表示从大到小排序,因为我关注的是大文件,所以想把它们排在前面。

Linux系统中firewalld防火墙常用的操作命令 信创之国产数据库及兼容性概况

评论

0
请遵守社区规范,文明评论。含违禁词的内容将进入审核队列。
0/2000

文章目录

    文章目录