Linux 系统的磁盘管理直接关系到整个系统的性能表现。磁盘管理常用三个命令为: df、du 和 fdisk。
df(英文全称:disk free)。df 命令用于显示磁盘空间的使用情况,包括文件系统的挂载点、总容量、已用空间、可用空间和使用率等信息。以下是 df 命令的一般格式和用法:
df [选项] [文件或目录]
参数说明:
- [选项]:可以包括一些选项,用于指定不同的显示格式、单位等参数。
- [文件或目录]:可选参数,用于指定要查看磁盘空间使用情况的文件或目录。如果不指定文件或目录,默认会显示系统中所有挂载的文件系统的使用情况。
以下是一些常见的 df 命令用法示例:
显示所有挂载的文件系统的磁盘使用情况:这将显示系统中所有挂载的文件系统的磁盘使用情况,以1 Kbytes为单位。
显示指定文件或目录所在的文件系统的磁盘使用情况:这将显示包含指定文件或目录(例如 /etc)的文件系统的磁盘使用情况。
以人类可读的格式显示:使用 -h 选项可以以人类可读的格式显示磁盘使用情况,以便更容易理解,单位将显示为 KB、MB、GB 等。
显示特定文件系统的磁盘使用情况:使用 -T 选项可以显示文件系统类型,这里 -h 选项用于以人类可读的格式显示。替换 /dev/sda1 为你想要查看的特定文件系统的设备文件。
df 命令还有其他选项,可以用于控制显示格式、排序等。你可以使用 man df 命令来查看 df 命令的完整帮助文档,以获取更多详细信息和选项。
du(英文全称:disk used)。du 命令用于查看文件和目录的磁盘使用情况,它会显示指定文件或目录的磁盘空间占用大小。以下是 du 命令的一般格式和用法:
du [选项] [文件或目录]
参数说明:
- [选项]:可以包括一些选项,用于指定不同的显示格式、单位等参数。
- [文件或目录]:可选参数,用于指定要查看磁盘使用情况的文件或目录。如果不指定文件或目录,默认为当前工作目录。
以下是一些常见的 du 命令用法示例:
查看当前目录的磁盘使用情况:这将显示当前目录中所有文件和子目录的磁盘使用情况,以字节数为单位。
查看指定目录的磁盘使用情况:这将显示指定目录的磁盘使用情况。例如,检查根目录: / 底下每个目录所占用的容量,通配符 * 来代表每个目录。
以人类可读的格式显示:使用 -h 选项可以以人类可读的格式显示磁盘使用情况,以便更容易理解,单位将显示为 KB、MB、GB 等。
du -h
查看指定文件的磁盘使用情况:这将显示指定文件(例如 file.txt)的磁盘使用情况。
du file.txt
查看目录下所有子目录的磁盘使用情况总和:使用 --max-depth=1 选项可以限制显示到当前目录的直接子目录的磁盘使用情况总和。
du -h --max-depth=1
du 命令还有其他选项,可以用于控制显示格式、排序等。你可以使用 man du 命令来查看 du 命令的完整帮助文档,以获取更多详细信息和选项。
与 df 命令不同的是 ,du 命令是对文件和目录磁盘使用的空间的查看,df命令是对文件系统的磁盘空间占用情况,du 这个命令会直接到文件系统内去搜寻所有的文件数据。
fdisk(英文全称: Partition table manipulator for Linux )。fdisk 命令是用于磁盘分区的工具,它允许你创建、删除、查看和管理硬盘上的分区。以下是 fdisk 命令的一般格式和用法:
fdisk [选项] <设备文件>
参数说明:
- [选项]:可以包括一些选项,用于指定分区操作的特定参数。
- <设备文件>:指定要进行分区操作的设备文件,通常是硬盘设备文件,如 /dev/sda。
以下是一些常见的 fdisk 命令用法示例:
查看分区表:这将显示 /dev/sda 磁盘上的分区表,包括已创建的分区以及它们的类型、大小等信息。
创建新分区:这将进入 fdisk 交互式分区编辑模式,允许你创建新分区。在交互式模式下,你可以使用 n 命令来创建新分区,然后按照提示输入分区类型、起始扇区、结束扇区等信息。交互式分区编辑模式如下所示:
删除分区:在交互式模式下,使用 d 命令来删除分区。选择要删除的分区编号并按照提示完成删除。
更改分区类型:在交互式模式下,使用 t 命令来更改分区的类型。选择要更改类型的分区编号并按照提示选择新的分区类型。
保存分区表更改:在交互式模式下,完成分区操作后,使用 w 命令来保存分区表更改。这会将更改写入磁盘,所以请谨慎操作。
使用 fdisk 命令进行分区操作需要谨慎,因为不正确的操作可能导致数据丢失。在进行分区操作之前,请确保已备份重要数据。如果你不确定如何使用 fdisk,建议参考命令的帮助文档(使用命令: man fdisk 或 fdisk --help 查看帮助)或查阅相关文档,以便更好地理解如何操作。
先介绍一下主分区、扩展分区和逻辑分区,以及它们之间的联系。新硬盘上建立分区时都要遵循以下的顺序:建立主分区→建立扩展分区→建立逻辑分区→激活主分区→格式化所有分区。
主分区、扩展分区和逻辑分区是用于管理硬盘驱动器上存储空间的概念。它们之间的关系和用途如下所示:
假设用字母X表示扩展分区的容量,则三者之间的关系为:
总结:主分区和扩展分区是硬盘上的基本分区类型,而逻辑分区是扩展分区的子分区。它们的目的是有效地管理和组织硬盘上的存储空间,以满足不同的操作系统和数据存储需求。在硬盘上创建逻辑分区是一种方法,允许在单个硬盘上创建多个文件系统,以便存储不同类型的数据或多个操作系统。
使用命令:fdisk -l
注:图中/dev/sda1 后面的符号 *,表示该磁盘用于引导系统进行启动。
使用分区管理工具,比如 fdisk 或 parted,来编辑磁盘分区表。在本示例中,我们将使用 fdisk 。使用命令:fdisk /dev/sda(注意,不要加上数字):
输入 m 获取帮助,查看各个命令的介绍:
输入 p 来查看当前分区表。这将列出所有现有的分区以及它们的详细信息。确保你有足够的未分配空间来创建新的扩展分区。
输入n,然后回车如下图。
按下 n 选项后,显示p、e两行信息,表示的是要选择 "主分区" 还是 "扩展分区" 。图中红色线框显示的是2个主要分区,0个扩展分区,还有2个闲置分区。
" default p "表示的是默认创建分区为主分区。" e "表示为扩展分区。
先创建第3个主分区,设置分区大小为1G。
再创建扩展分区,设置分区大小为3G。
给分区编号,提示信息是(3,4,默认 3) ,就是划分了一个扩展分区,这个扩展分区的编号是 3, 选择默认,直接回车就行。
输入起始扇区。通常,使用默认值,是为了能够将后面的所有可用扇区充分的利用上,而默认选择可用扇区的起始最小扇区。按 Enter 键接受默认值。
输入结束扇区。在这里,可以设置新扩展分区的大小。如果你要创建一个 10GB 的扩展分区,你可以输入 +
10G,然后按 Enter 键。系统将自动计算结束扇区。这里输入:+3G,表示设置大小为的3G的逻辑空间。回车之后就完成了扩展分区的设置。
到这里,创建的扩展分区已经创建好, 输入 p 查看更新后的分区表。确保新的扩展分区已经创建并具有正确的大小:
注意:此时一定要记住要保存,在命令行输入w保存分区信息并退出。使用命令:fdisk -l 查看到磁盘的分区信息。
有了扩展分区,那么我们才可以创建逻辑分区。
创建扩展分区中的逻辑分区的步骤与创建主分区或其他逻辑分区的步骤基本相同。主要区别在于,首先需要选择扩展分区作为新逻辑分区的容器,然后再在该扩展分区内创建逻辑分区。其他操作与创建主分区或其他逻辑分区的操作相同。
扩展分区充当了逻辑分区的容器,如果你已经创建了一个扩展分区,你可以在这个扩展分区内创建多个逻辑分区,但是所有逻辑分区的总大小不能超过扩展分区的大小。否则,分区工具将不允许你创建更多的逻辑分区,因为已经没有足够的可用空间。
创建扩展分区中的逻辑分区(+1G)如下:
再接着创建一个逻辑分区(+1G):
可以看到,分区开始的扇区位置start 和结束的扇区位置 end,两个逻辑分区都在扩展分区内。
输入 w,
保存分区表更改。
这时,Linux还没有把分区信息读到内核来,因此需要输入命令:partprobe ,使操作系统不需要重启而使新的磁盘分区生效,即,使内核重读一下我们的分区信息。防止在格式化的时候,找不到这个分区。
到这里已经成功地创建了一个3G大小的扩展分区分区,和 两个1G大小的逻辑分区。
但是目前还不能用,因为要对磁盘进行格式化后才可以进行数据的存储。格式化是针对主分区和逻辑分区的。
格式化是因为和操作系统管理文件系统有关。没有格式化的分区就像一张白纸,要写入数据,必须对白纸打上“格子”,每个格子里面写一块。而操作系统只认这些格子。
磁盘分割完毕后自然就是要进行文件系统的格式化。
格式化指将分区格式化成不同的文件系统。
文件系统指操作系统用于明确存储设备或分区上的文件的方法和数据结构,即,在存储设备上组织文件的方法。
格式化的命令非常的简单,使用 mkfs(make filesystem) 命令, mkfs 命令用于创建文件系统,具体命令格式为:
mkfs -t <文件系统类型> <设备文件>
参数说明:
- -t :可以接文件系统格式,例如 ext3, ext2, vfat 等(系统有支持才会生效)
- 文件系统类型:要创建的文件系统的类型,例如 ext4、ext3、NTFS、FAT32 等。
- 设备文件:要创建文件系统的设备文件,通常是分区设备文件,如 /dev/sda5 。
文件系统类型通常是根据你的需求和操作系统的支持来选择的,但并不是完全自由选择的。每种文件系统类型都有其自身的特性和用途,因此你应该选择最适合你的特定需求的文件系统。
以下是一些常见的文件系统类型和其用途的示例:
查看 mkfs 支持的文件格式(输入mkfs 命令之后,无间隔按下两个[tab]键):
现在要对刚才创建的逻辑分区5 和 逻辑分区6进行格式化,格式化类型为.ext4
当完成都出现完毕后,意味着格式化已经进行完毕。
格式化完毕后,使用命令 : ll 查看格式化完毕后的分区的文件类型信息。
可以看出 sda5 和 sda6 为一个块设备文件。8表示主设备号,5表示的为从设备号。
但此时sda5 和 sda6 还是不可以在其中存储文件和数据,要想用这两个磁盘我们还需要挂载逻辑分区: sda5 和 sda6。
Linux系统只有一个根目录: / 。在装系统时,分配给linux的所有区都在根目录 /下,比如/home、/etc等。linux操作系统将所有的设备都看作文件,它将整个计算机的资源都整合成一个大的文件目录。因此,我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。
挂载发生在计算机想要使用任何类型的存储设备 (如硬盘, CD-ROM, 网络设备) 之前,操作系统必须将这个设备纳入自己的文件系统中去。挂载操作, 实际上就是把设备(通常是存储设备,例如上文创建的分区:sda5 和 sda6 )中的文件系统附加到挂载点上, 然后我们就可以通过访问挂载点(一个已存在的目录)来访问这个设备.。访问这个目录就是访问该设备。
本文中,挂载就是把设备(例如上文创建的分区:sda5 和 sda6 )放在一个目录下,让系统知道怎么管理这个设备里的文件,了解这个存储设备的可读写特性之类的过程。
需要注意的两点:
Linux 的磁盘挂载使用 mount 命令,卸载使用 umount 命令。
mount 命令用于将文件系统挂载(连接)到指定的挂载点(目录),使文件系统中的内容在指定挂载点处可用。以下是 mount 命令的一般格式和用法
mount [ 选项 ] 设备文件 挂载点
参数说明:
- [ 选项 ]:可以包括一些选项,用于指定挂载时的特定参数,例如挂载只读、设置权限等。
- 设备文件:指定要挂载的设备文件,通常是硬盘分区、USB 驱动器、NFS 共享等。
- 挂载点:指定要将设备文件挂载到的目录,这个目录必须已经存在。
挂载点就是一个目录。默认情况下,/mnt目录存在于所有类Unix系统中。/mnt目录或它的子目录(如/mnt/floppy和/mnt/usb),专门用作可移动介质(如CDROM、usb密钥驱动器和软盘)的挂载点。
将指定的一个目录作为挂载点目录时,如果挂载点的目录有文件,那么文件会被隐藏。因此当需要挂载目录时,最好新建一个空文件夹来作为挂在点目录。(重启后失效)
现在,挂载上文里创建的 /dev/sda5 和 /dev/sda6 。首先,创建一个目录,然后将逻辑分区挂载到该目录:
如果希望逻辑分区在系统启动时自动挂载,即,永久挂载。可以将其添加到 /etc/fstab 文件中。再添加到 /etc/fstab 文件之前,还需要要查看 /dev/sda5 和 /dev/sda6 分区的 UUID(通用唯一标识符),可以使用以下命令:
[root@localhost mnt]# blkid /dev/sda5
[root@localhost mnt]# blkid /dev/sda6
这将显示有关 /dev/sda5 和 /dev/sda6 分区的信息,包括其 UUID。UUID 是一个唯一标识符,用于标识文件系统或分区,通常用于在 /etc/fstab 中配置挂载点,因为它们保证在分区重新编号时仍然有效。
现在,使用 vim 编辑 /etc/fstab:vim /etc/fstab
保存并退出。现在,你已经成功地在新创建的扩展分区中创建了一个逻辑分区,可以在其中存储文件和数据。
umount 命令用于卸载(解除挂载)已经挂载的文件系统,使其不再在指定的挂载点上可用。以下是 umount 命令的一般格式和用法:
umount [选项] <挂载点或设备文件>
参数说明:
- [选项]:可以包括一些选项,用于指定卸载时的特定参数,例如强制卸载、安静模式等。
- <挂载点或设备文件>:指定要卸载的挂载点目录或设备文件。
以下是一些常见的 umount 命令用法示例:
卸载挂载点:这将卸载 /mnt/mydata 目录中已挂载的文件系统。
umount /mnt/mydata
卸载设备文件:这将卸载 /dev/sda1 设备上已挂载的文件系统。
umount /dev/sda1
强制卸载:使用 -f 选项来强制卸载,即使文件系统正被使用也可以卸载。请小心使用,因为这可能导致数据丢失或文件系统损坏。
umount -f /mnt/mydata
安静模式:使用 -q 选项来启用安静模式,不显示错误消息。
umount -q /mnt/mydata
请注意,为了安全地卸载文件系统,确保没有任何程序或进程在使用文件系统中的文件或目录,否则会导致卸载失败。如果文件系统仍在被使用,你可以使用 -f 选项来强制卸载,但这可能会导致数据丢失或文件系统损坏,因此请谨慎使用。
fsck 命令用于检查和修复文件系统的一致性问题。它通常用于在系统启动时或在发现文件系统问题时进行文件系统的检查和修复。以下是 fsck 命令的一般格式和用法:
fsck [选项] <设备文件或挂载点>
参数说明:
- [选项]:可以包括一些选项,用于指定检查和修复文件系统时的特定参数。
- <设备文件或挂载点>:指定要检查和修复的设备文件(如硬盘分区,例如 /dev/sda1)或已挂载的文件系统的挂载点。
以下是一些常见的 fsck 命令用法示例:
检查未挂载分区的文件系统:这将检查 /dev/sda1 分区的文件系统。
fsck /dev/sda1
检查已挂载分区的文件系统:这将先卸载 /mnt/mydata 目录中已挂载的文件系统,然后检查 /dev/sdb1 分区的文件系统。
umount /mnt/mydata // 先卸载已挂载的分区
fsck /dev/sdb1 // 然后检查文件系统
自动修复发现的问题:使用 -a 选项来自动修复所有发现的问题,而不需要手动确认。
fsck -a /dev/sdc1
交互式模式:使用 -y 选项以交互式模式运行 fsck,允许你手动决定是否修复每个问题。
fsck -y /dev/sdd1
注意,在运行 fsck 前,通常需要确保文件系统未挂载。如果要检查根文件系统,可能需要在单用户模式下运行,以确保没有其他进程在使用文件系统。
fsck 是一个强大的工具,但在使用时要谨慎,因为它可以修改文件系统。通常在不严重问题的情况下使用它,或在备份数据之后使用它,以防发生问题。
查看系统有多少文件系统支持的 fsck 命令(输入fsck 命令之后,无间隔按下两个[tab]键):