如何在Linux中执行存储设备的基本管理任务

介绍

Linux中有许多可用工具来管理存储。然而,只有少数工具用于日常维护和管理。在本指南中,您将了解一些最常用的用于管理挂载点、存储设备和文件系统的实用程序。

其他资源

本指南不涵盖如何在Linux系统上准备存储设备以供首次使用。如果您尚未设置存储,可以参考这篇有关在Linux中对块设备进行分区和格式化的指南,以帮助您准备原始存储设备。

有关一些用于讨论存储的术语的更多信息,请阅读这篇关于存储术语的文章。

使用df查找存储容量和使用情况

通常,您在系统存储方面最需要的信息是连接的存储设备的容量和当前利用率。

要检查总共有多少存储空间可用,并查看驱动器的当前利用情况,请使用df实用程序。默认情况下,此输出以1K块为单位,这并不总是有用。添加-h标志以输出人类可读的单位:

  1. df -h
Output
Filesystem Size Used Avail Use% Mounted on udev 238M 0 238M 0% /dev tmpfs 49M 624K 49M 2% /run /dev/vda1 20G 1.1G 18G 6% / tmpfs 245M 0 245M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 245M 0 245M 0% /sys/fs/cgroup tmpfs 49M 0 49M 0% /run/user/1000 /dev/sda1 99G 60M 94G 1% /mnt/data

挂载在//dev/vda1分区已使用6%,可用空间为18G,而挂载在/mnt/data/dev/sda1分区为空,可用空间为94G。其他条目使用tmpfsdevtmpfs文件系统,这是一种像永久存储一样使用的易失性内存。您可以通过键入来排除这些条目:

  1. df -h -x tmpfs -x devtmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 1.1G 18G 6% / /dev/sda1 99G 60M 94G 1% /mnt/data

此输出通过删除一些伪设备和特殊设备,提供了更集中的当前磁盘利用情况显示。

使用lsblk查找有关块设备的信息

A block device is a generic term for a storage device that reads or writes in blocks of a specific size. This term applies to almost every type of non-volatile storage, including hard disk drives (HDDs), solid state drives (SSDs), and so on. The block device is the physical device where the filesystem is written. The filesystem, in turn, dictates how data and files are stored.

lsblk实用程序可用于显示有关块设备的信息。实用程序的具体功能取决于安装的版本,但通常,lsblk命令可用于显示有关驱动器本身的信息,以及分区信息和已写入其中的文件系统。

不带任何参数运行lsblk将显示设备名称、与设备相关联的主要和次要编号(由Linux内核用于跟踪驱动程序和设备)、驱动器是否可移动、其大小、是否以只读方式挂载、其类型(磁盘或分区)和其挂载点。某些系统需要sudo才能正确显示此信息:

  1. sudo lsblk
Output
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk vda 253:0 0 20G 0 disk └─vda1 253:1 0 20G 0 part /

通常,输出显示的最重要部分通常是名称,指的是/dev下的设备名称,大小,类型和挂载点。在这里,您可以看到您有一个磁盘(/dev/vda)和一个分区(/dev/vda1)被用作/分区,另一个磁盘(/dev/sda)尚未分区。

要获取与磁盘和分区管理更相关的信息,可以在某些版本上传递--fs标志:

  1. sudo lsblk --fs
Output
NAME FSTYPE LABEL UUID MOUNTPOINT sda vda └─vda1 ext4 DOROOT c154916c-06ea-4268-819d-c0e36750c1cd /

如果您的系统上不支持--fs标志,可以通过使用-o标志手动复制输出。您可以使用-o NAME,FSTYPE,LABEL,UUID,MOUNTPOINT来获取相同的信息。

要获取有关磁盘拓扑的信息,请键入:

  1. sudo lsblk -t
Output
NAME ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE RA WSAME sda 0 512 0 512 512 1 deadline 128 128 2G vda 0 512 0 512 512 1 128 128 0B └─vda1 0 512 0 512 512 1 128 128 0B

有许多其他快捷方式可用于显示有关磁盘和分区的相关特性。您可以使用-O标志输出所有可用列,或者可以通过指定-o标志的列名来自定义要显示的字段。您可以使用-h标志列出可用的列:

  1. lsblk -h
Output
. . . Available columns (for --output): NAME device name KNAME internal kernel device name . . . SUBSYSTEMS de-duplicated chain of subsystems REV device revision VENDOR device vendor For more details see lsblk(8).

处理文件系统挂载

在您可以使用新磁盘之前,通常需要对其进行分区、使用文件系统进行格式化,然后挂载驱动器或分区。分区和格式化通常是一次性的操作。您可以在如何在Linux中对存储设备进行分区和格式化中找到有关如何对驱动器进行分区和格式化的更多信息。

挂载是您可能更频繁地执行的操作。挂载文件系统使其在所选的挂载点对服务器可用。挂载点是一个目录,新文件系统可以在其中访问。

两个互补的命令主要用于管理挂载:mountumountmount 命令用于将文件系统附加到当前文件树上。在 Linux 系统中,整个系统使用单一的统一文件层次结构,而不管它由多少物理设备组成。 umount 命令(注意:这是 umount,而不是 unmount)用于卸载文件系统。此外,findmnt 命令对于收集有关挂载文件系统当前状态的信息很有帮助。

使用 mount 命令

使用 mount 的最直接的方法是传递格式化的设备或分区和它要附加到的挂载点:

  1. sudo mount /dev/sda1 /mnt

挂载点是指新文件系统应附加到文件层次结构中的位置的最终参数,几乎总是应该是一个空目录。

通常,您会希望在挂载时选择更具体的选项。尽管 mount 可以尝试猜测文件系统类型,但通过 -t 选项传递文件系统类型几乎总是一个更好的主意。对于 Ext4 文件系统,这将是:

  1. sudo mount -t ext4 /dev/sda1 /mnt

有许多其他选项会影响文件系统的挂载方式。有通用的挂载选项,可以在FILESYSTEM INDEPENDENT MOUNT OPTIONS部分的挂载手册中找到。

使用-o标志传递其他选项。例如,要使用默认选项(表示rw,suid,dev,exec,auto,nouser,async)挂载分区,可以传递-o defaults。如果需要覆盖读写权限并以只读方式挂载,可以将ro作为后续选项添加,这将覆盖defaults选项中的rw

  1. sudo mount -t ext4 -o defaults,ro /dev/sda1 /mnt

要挂载/etc/fstab文件中列出的所有文件系统,可以使用-a选项:

  1. sudo mount -a

列出文件系统挂载选项

要显示特定挂载使用的挂载选项,请使用findmnt命令。例如,如果您使用findmnt查看上面示例中的只读挂载,它可能如下所示:

  1. findmnt /mnt
Output
TARGET SOURCE FSTYPE OPTIONS /mnt /dev/sda1 ext4 ro,relatime,data=ordered

如果您尝试多个选项并最终发现了喜欢的设置,这可能很有用。您可以使用findmnt找到它正在使用的选项,以便了解将来挂载到/etc/fstab文件中的适当选项。

卸载文件系统

使用umount命令来卸载给定的文件系统。再次强调,这是umount而不是unmount

命令的一般形式是命名当前已挂载文件系统的挂载点或设备。确保您未在挂载点上使用任何文件,并且您没有任何应用程序(包括当前的 shell)在挂载点内运行:

  1. cd ~
  2. sudo umount /mnt

通常没有要添加到默认卸载行为的选项。

结论

虽然这个列表并不详尽无遗,但这些实用工具应该涵盖您日常系统管理任务所需的大部分功能。通过学习一些工具,您可以处理服务器上的存储设备。

Source:
https://www.digitalocean.com/community/tutorials/how-to-perform-basic-administration-tasks-for-storage-devices-in-linux