前言
一个磁盘从插到服务器,到我们能正常使用他,查看他的剩余空间,一共包括以下几个步骤:
- 首先查看服务器是否将磁盘挂载:lsblk
- 然后进行磁盘分区:fdisk
- 在分好的分区上创建文件系统:mkfs
- 最后将创建好的文件系统挂载到Linux系统上
- 在使用了一段时间后想看看剩余空间:df、du
我在下面对磁盘整个使用过程进行了介绍,希望帮到大家。
一、du:查看文件和目录占用的磁盘空间
基本语法:
du 目录/文件 显示目录下每个子目录的磁盘使用情况
选项说明:
-h 以人们较易阅读的GBtypes,MBtypes,KBytes等格式自行显示
-a 不仅查看子目录的大小,还要包括文件
-c 显示目录下每个子目录大小后,显示总和
-s 只显示总和
--max-depth=n 指定系统子目录的深度为第n层
实例:
显示 /dev 目录下子目录和文件的磁盘使用情况以较易阅读的形式,最多显示到深度4层的文件和子目录。
du -ah --max-depth=4 /dev
二、df:查看文件系统的整体磁盘使用情况
df -h
三、lsblk:查看设备挂载情况
这里说的挂载是挂载到了服务器上,但是不能直接使用,需要挂载到系统上才可用。
基本语法:
lsblk 选项 设备名称
选项说明:
-a 显示所有设备
-b 以字节为单位显示设备的大小
-f 显示设备的文件系统类型-m 显示权限信息
-o 允许用户定义要显示的列:name,fstype,size,type,mountpoint
-p 以完整路径的形式显示设备名
实例:
lsblk
输出字段解释:
NAME 块设备名
MAJ:MIN 主要和次要设备号
RM 设备是否可移动设备(0:非移动设备、1:移动设备)
SIZE 设备的容量大小
RO 设备是否为只读(0:不是只读、1:只读)
TYPE 块设备类型
MOUNTPOINT 设备挂载点
四、fdisk:磁盘分区
基本语法:
查看磁盘分区列表:fdisk -l 设备名称
磁盘分区:fdisk 设备名称
4.1、查看磁盘分区列表
fdisk -l
输出字段含义:
Disk /dev/sde: 894.26 GiB, 960197124096 bytes, 1875385008 sectors
Disk model: SAMSUNG MZ7KH960
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 87BC99AE-A102-4194-8E7D-5092B46D6B36
Device Start End Sectors Size Type
/dev/sde1 2048 2099199 2097152 1G EFI System
/dev/sde2 2099200 4196351 2097152 1G Linux filesystem
/dev/sde3 4196352 1875384319 1871187968 892.3G Linux LVM
输出内容包括两部分:
磁盘部分:
第一行:
Disk /dev/sde: 894.26 GiB, 960197124096 bytes, 1875385008 sectors
Disk 表示磁盘
/dev/sde 磁盘名称
894.26 GiB 磁盘大小GiB
960197124096 bytes 磁盘大小bytes
1875385008 sectors 扇区数
第二行:
Disk model: SAMSUNG MZ7KH960
Disk model 产品名称
SAMSUNG MZ7KH960 三星的MZ7KH960
第三行:
Units: sectors of 1 * 512 = 512 bytes
这句话的意思是1个扇区的大小是512bytes
第四行:
Sector size (logical/physical): 512 bytes / 4096 bytes
表示1个逻辑扇区512bypte,1个物理扇区是4096bytes
第五行:
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
一次输入输出的最小字节数4096bytes,最佳字节数4096bytes
第六行:
Disklabel type: gpt
磁盘分区表格式:gpt
第七行:Disk identifier: 87BC99AE-A102-4194-8E7D-5092B46D6B36
磁盘标识符:87BC99AE-A102-4194-8E7D-5092B46D6B36
分区部分:
Device Start End Sectors Size Type
/dev/sde1 2048 2099199 2097152 1G EFI System
/dev/sde2 2099200 4196351 2097152 1G Linux filesystem
/dev/sde3 4196352 1875384319 1871187968 892.3G Linux LVMDevice 设备名称
Start、End 分区在硬盘上的起始扇区和结束扇区编号
Sectors 分区占用的扇区数
Size 分区的大小
Type 分区的类型:EFI System、Linux filesyste、Linux LVM等
4.2、磁盘分区
4.2.1、交互命令的功能
命令 | 功能 |
Generic 通用的 | |
d | delete a partition 删除分区 |
F | list free unpartitioned space 列出空闲的未分区空间 |
l | list known partition types 列出已知分区类型 |
n | add a new partition 添加一个新分区 |
p | print the partition table 打印分区表 |
t | change a partition type 更改分区类型 |
v | verify the partition table 验证分区表 |
i | print information about a partition 打印分区信息 |
Save & Exit 保存 & 退出 | |
w | write table to disk and exit 将表写入磁盘并退出 |
q | quit without saving changes 不保存更改就退出 |
Create a new label 创建新标签 | |
g | create a new empty GPT partition table 创建一个新的空GPT分区表 |
G | create a new empty SGI (IRIX) partition table 创建一个新的空SGI (IRIX)分区表 |
o | create a new empty DOS partition table 创建一个新的空DOS(MBR)分区表 |
s | create a new empty Sun partition table 创建一个新的空Sun分区表 |
4.2.2、对/dev/sda进行MBR分区
创建3个主分区,1个扩展分区
对sda进行分区:
fdisk /dev/sda
首先创建一个新的DOS分区表
添加第一个主分区,分区大小200GB:
n:添加分区
p:主分区
1:分区表位置
分区的起始位置默认就行
+200G:结束位置
添加第二个主分区,分区大小300GB:
添加第三个主分区,分区大小400GB
添加一个扩展分区,分区大小100GB
打印分区表,可以看到刚才分的三个主分区和一个扩展分区
将分区表写入磁盘并退出
查看分区是否成功 fdisk -l /dev/sda
4.2.3、对/dev/sdb进行GPT分区
对 /dev/sdb进行分区
创建一个空的GPT分区表
创建5个分区,大小分别是50G、60G、70G、80G、90G,可以看到GPT分区表最大可以创建128个分区
打印分区表,可以看到五个分区已经分好
保存分区表,退出,查看 /dev/sdb 的分区信息,可以看到已经分区成功
五、mkfs:构建/格式化文件系统
通过tab键补全,可以看到 mkfs 可以构建的文件系统格式有:cramfs 、ext2、ext3、ext4、fat、minix、msdos、vfat、xfs
CSDN的C知道的回答,可以参考一下,其中ext4和xfs是Linux服务器上常用到的文件系统格式:
- cramfs是一种只读文件系统,它被设计成非常紧凑,可以在嵌入式系统和小型设备上使用。
- ext2是Linux操作系统中广泛使用的一种文件系统,它是一种可靠的、高性能的文件系统,支持大多数UNIX文件系统的特性。
- ext3是Linux操作系统中的一种日志文件系统,它在ext2的基础上增加了日志功能,提供了更好的文件系统保护和恢复能力。
- ext4是Linux操作系统中最新的一种文件系统,它在ext3的基础上进行了改进,提供了更高的性能和更好的可靠性。
- FAT是一种广泛使用的文件系统,被广泛应用于闪存、USB驱动器和其他便携设备中。
- MINIX是一个小型的UNIX操作系统,minix文件系统是其默认的文件系统。
- MSDOS是微软开发的一种磁盘操作系统,它使用FAT文件系统作为默认的文件系统。
- VFAT是FAT文件系统的一个扩展版本,它增加了对长文件名、大容量硬盘驱动器和其他高级特性的支持。
- XFS是一个高性能、可扩展的文件系统,主要应用于高负载的服务器环境中。它支持大容量、高速度和快速恢复等特性。
实例:
将 /dev/sdb 中的5个分区,构建成 xfs 类型的文件系统
构建 ext4 文件系统
mkfs.ext4 /dev/sdb1
mkfs.ext4 /dev/sdb2
mkfs.ext4 /dev/sdb3
mkfs.ext4 /dev/sdb4
mkfs.ext4 /dev/sdb5
再次查看可以看到五个分区的文件系统类型都是 ext4
将 /dev/sdb/sdb1 的文件系统格式化为 xfs
mkfs.xfs -f /dev/sdb/sdb1
可以看到 /dev/sdb1 的文件系统类型变为 xfs
六、mount、unmount:挂载、卸载磁盘
基本语法:
挂载设备:mount [-t vfstype][-o options] device dir
卸载设备:umount 设备文件名或挂载点
参数说明:
参数 | 功能 |
-t vfstype | 指定文件系统的类型,通常不必指定。mount会自动选择正确的类型。 常用类型: 光盘或光盘镜像:iso9660 Windows NT ntfs文件系统:ntfs Mount Windows 文件网络共享:smbfs UNIX(LINUX)文件网络共享:nfs |
-o options | 主要用来描述设备或档案的挂接方式 常用的参数有: loop:用来把一个文件当成硬盘分区挂载上系统 re:采用只读方式挂接设备 |
device | 要挂载(mount)的设备 |
dir | 设备在系统上的挂载点(mount point) |
实例:
将sda设备以硬盘分区的形式挂载到/mnt
mount -o loop /dev/sda /mnt
卸载刚才挂载的设备
unmount /dev/sda
或
unmount /mnt
6.1、/etc/mtab 文件解析
/etc/mtab 是当前的分区挂载情况,记录的是当前系统已挂载的分区。每次挂载/卸载分区时会更新 /etc/mtab 文件中的信息(执行 mount 命令会改变 /etc/mtab 的信息)。
文件样例
6.2、/etc/fstab 文件解析
系统开机时会主动读取 /etc/fstab 这个文件中的内容,根据文件里面的配置挂载文件系统、ISO镜像和文件网络共享。这样我们只需要将挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。
文件样例
配置文件包括两部分内容:
1、以 # 开头的注释
2、自动挂载的配置信息:每一行是一个挂载配置,一行有六列,下面会对每一列的含义进行详解。
字段说明
序号 | 列名 | 说明 |
---|---|---|
1 | fs_spec | 要挂载的块特殊设备或远程文件系统 说明: 1、可以使用设备文件名、UUID、标签、NFS等远程文件系统; 2、远程文件系统配置方式是<host>:<dir>; 3、UUID和LABEL配置方式是LABEL=<label> 和 UUID=<uuid>; 4、设备文件名可能因为设备位置的变化,重启系统后会失效; 5、使用UUID和LABEL会使系统更有伸缩性,如果你的系统添加或移除了一个SCSI硬盘,这有可以改变你的设备名,但它不会修改你的卷标签。 6、可以使用blkid命令查看UUID,可以使用命令ls -l /dev/disk/by-label/查看label。如果磁盘或者分区都没有配置标签,by-label文件可能并不存在。 |
2 | fs_file | 挂载点 说明: 1、如果是swap,则写成none。其他的写具体的文件系统路径。 |
3 | fs_vfstype | 挂载的文件系统类型 说明: 1、ext4、xfs:linux中常用的分区格式; 2、swap: Swap,即交换区; 3、vfat、ntfs:Windows分区格式; 4、auto:文件系统的类型将被自动检测; 5、iso9660:ISO9660是一种描述适合CD盘片的电脑文件结构的国际标准。很多光驱也使用的这个选项。 |
4 | fs_mntops | 文件系统挂载参数 说明: 1、defaults:所有选项全部使用默认配置,包括rw, suid, dev, exec, auto, nouser,和 async。一般都设置成defaults; 2、auto 和 noauto:控制设备是否自动挂载的选项。auto是默认选择的选项,这样,设备会在启动或者你使用mount -a命令时按照fstab的内容自动挂载。如果你不希望这样,就使用noauto选项,如果这样的话,你就只能明确地通过手工来挂载设备; 3、user 和 nouser:user选项允许普通用户也能挂载设备,而nouser则只允许root用户挂载。nouser是默认选项; 4、ro:以只读来挂载文件系统; 5、rw:以可读可写的属性来挂载系统; 6、exec 和 noexec: exec允许你执行对应分区中的可执行二进制程序,noexec则表示不允许。 |
5 | fs_freq | 是否转储dump,未配置则默认为0 |
6 | fs_passno | fsck程序使用此字段来确定在重新启动时执行文件系统检查的顺序。0表示不检查;1表示第一位检查,一般用于根挂载点,其他磁盘配置参数2。 |
6.3、永久挂载(文件系统、ISO镜像、文件网络共享)
1、修改配置文件 /etc/fstab
vim /etc/fstab
#在最后添加挂载配置
设备文件名/UUID/标签 挂载点 auto defaults 0 0
2、检查配置格式是否正确,同时使配置生效
mount -a