一,df(disk free 的缩写)命令
df 命令可以让你查看所有已挂载磁盘的使用情况:
输出的列依次表示:
- 设备的设备文件位置;
- 能容纳多少个 1024 字节大小的块;
- 已用了多少个 1024 字节大小的块;
- 还有多少个 1024 字节大小的块可用;
- 已用空间所占的比例;
- 设备挂载到了哪个挂载点上。
df 命令还可以使用-h
选项,把输出中的磁盘空间按易读形式显示,通常会显示成 M,G,T 等。
二,du(disk usage 的缩写)命令
通过 df 命令很容易发现哪个磁盘的存储空间快没了。du 命令可以显示某个特定目录(默认情况下是当前目录)下所有的文件、目录和子目录的磁盘使用情况,它会以磁盘块为单位来表明每个文件或目录占用了多大存储空间。这一方法可用来快速判断系统上某个目录下是不是有超大文件。
du 命令可以使用如下几个选项来让输出更有意义:
-
-c
:显示所有已列出文件总的大小。 -
-h
:按用户易读的格式输出大小,即用 K 替代千字节,用 M 替代兆字节,用 G 替代吉字节。 -
-s
:显示每个输出选项的总计。
如下命令展示了当前目录下最大的 20 个目录/文件:
du -c | sort -nr | head -20
du -c
显示文件/目录的总大小,sort -nr
表示按数字大小倒序排列,head -20
表示显示前 20 行。
如下命令列出当前目录所有子文件和子目录的大小:
du -sh *
三,lsblk命令可以列出当前机器有哪些块设备文件
上图其中TYPE列是disk的都是磁盘,也就是/dev/sda和/dev/sdb。TYPE是part的是磁盘分区如/dev/sda1,/dev/sda2,/dev/sdb1,挂载一般都是挂载磁盘分区。
四,为什么要将/dev/sdb1挂载到/mnt目录呢?直接cd进入/dev/sdb1目录访问不就可以了吗?
实际上,在 Linux 中,/dev/sdb1
并不是一个普通的目录,而是一个块设备文件,用于表示一个物理分区。块设备文件可以看作是对物理磁盘分区的抽象,是对磁盘分区进行操作的接口。而直接访问块设备文件并不能像访问普通目录一样,是无法直接读写其中的文件的。
因此,我们需要将物理磁盘分区挂载到一个目录中,使得操作系统可以通过这个目录来访问分区中的文件。在挂载时,操作系统会将指定的目录与物理分区建立一种映射关系,使得访问这个目录时,就相当于访问物理分区中的文件。
一般来说,我们会将物理分区挂载到一个空目录中,以免覆盖已有的文件或目录。/mnt
目录是一个常用的挂载点,用于挂载临时的文件系统或磁盘分区。因此,在上面的疑问中,我们将 /dev/sdb1
分区挂载到了 /mnt
目录中,使得我们可以通过访问 /mnt
目录来访问 /dev/sdb1
分区中的文件。
五,如何挂载磁盘分区?以下步骤供参考:
1,创建 /mnt/mydisk
目录,并将该目录的拥有者设置为当前用户。
sudo mkdir /mnt/mydisk
sudo chown $USER:$USER /mnt/mydisk
2,将分区挂载到 /mnt/mydisk
目录中。
sudo mount /dev/sdb1 /mnt/mydisk
3,检查挂载是否成功,并验证 /mnt/mydisk
目录的权限。
df -h /mnt/mydisk # 检查挂载是否成功
ls -l /mnt/mydisk # 查看挂载点目录权限
通常情况下,Linux 文件系统会自动设置挂载点的权限,以确保挂载点的拥有者和其他用户可以访问挂载的文件系统。如果需要手动设置权限,可以使用 chmod
命令来修改目录的权限。例如,可以使用以下命令将 /mnt/mydisk
目录的权限设置为 755
:
sudo chmod 755 /mnt/mydisk
六,磁盘一定要分区后才可以进行挂载吗?
不是所有的磁盘都需要分区才能进行挂载,但是大多数情况下,我们需要对磁盘进行分区后才能进行挂载。这是因为在Linux中,文件系统是必须要被挂载到一个块设备上才能被访问的,而磁盘本身并没有文件系统。因此,我们需要在磁盘上创建分区,然后在分区上创建文件系统,最后才能将文件系统挂载到文件系统树中的某个目录下。
然而,有些特殊情况下,可以直接将磁盘作为块设备进行挂载。比如,对于一些用于备份和归档的大容量磁盘,可能不需要分区就可以直接挂载。但这种情况下一般会在磁盘上创建一个文件系统来存储数据。所以,是否需要分区取决于具体的情况。
七,文件系统和块设备之间是什么关系?
文件系统和块设备之间存在着一种映射关系,可以认为就是软件和硬件的关系。
块设备是一种特殊的设备,提供了对数据块的随机访问,通常对应于磁盘、分区或者RAID组等。而文件系统则是对块设备上数据的组织方式和访问规则的描述,是一个管理和操作块设备数据的抽象层。文件系统将块设备的物理存储结构组织成逻辑上的文件和目录等,提供了一系列读写和管理文件的操作。
当一个块设备需要被使用时,需要先在其上创建文件系统,以便在文件系统中进行读写操作。在Linux系统中,可以使用mkfs命令来创建文件系统,常用的文件系统有ext2/ext3/ext4、XFS、NTFS等。创建完文件系统后,需要将文件系统挂载到一个目录上,以便用户可以通过这个目录访问块设备上的数据。
八,磁盘分区和挂载的步骤,以下供参考:
- 确认要分区的磁盘,可以使用
fdisk -l
命令来查看系统上的磁盘列表和分区信息,sudo blkid
命令可以查看文件系统类型。 - 可以使用 fdisk 命令对磁盘进行分区。请注意,这将会删除磁盘上的所有数据,请谨慎操作。例如,以下命令将磁盘 /dev/sdb 分区为一个大小为 10GB 的分区 /dev/sdb1:
fdisk /dev/sdb
按下 n
键创建一个新分区,然后按照提示设置分区大小和类型等信息。最后按下 w
键保存更改。
- 格式化新分区,例如:
mkfs.ext4 /dev/sdb1
- 创建挂载点并将分区挂载到该挂载点:
mkdir /mnt/mydisk
mount /dev/sdb1 /mnt/mydisk
- 检查是否成功挂载:
df -h