Linux磁盘分区
前言
本文是视频教程韩顺平 一周学会Linux部分章节的归纳总结,内容补充和错误纠正。
概念
Linux的磁盘分区机制
Linux的磁盘分区机制是指将物理硬盘划分为多个逻辑部分的过程。每个分区都被视为独立的逻辑驱动器,并有自己的文件系统进行格式化和挂载。以下是Linux磁盘分区机制的核心概念:
主分区(Primary Partition):主分区是硬盘上最基本的分区类型,最多可以划分为4个主分区。每个主分区都可以被视为一个独立的逻辑驱动器。
扩展分区(Extended Partition):扩展分区是一种特殊类型的主分区,它可以容纳多个逻辑分区。只能有一个扩展分区存在,并且必须在4个主分区之中。
逻辑分区(Logical Partition):逻辑分区是在扩展分区内创建的分区。通过扩展分区,可以划分出多个逻辑分区来扩展硬盘上的分区数量。
文件系统(File System):每个分区都需要格式化为特定的文件系统以用于存储数据。常见的Linux文件系统包括ext4、XFS、Btrfs等。
挂载(Mounting):挂载是将一个分区与Linux文件系统中的目录进行关联的过程。挂载点是一个现有目录,在该目录中的文件和目录将与相应分区中的数据进行关联。
通过对硬盘进行适当的分区,可以将不同类型的数据和文件系统隔离开来,并提供更好的管理和数据保护。例如,可以将操作系统安装在一个分区上,用户数据放在另一个分区上,这样即使系统损坏,用户数据仍然可以保持安全。
简单说Linux系统可以把磁盘分区映射到目录上,例如把硬盘分区成C,D,E,F四个分区,分别挂载到/mnt/A
,/home
,/D
,/swap
目录下,就可以通过这些目录去访问这些分区了。
硬盘说明
Linux系统的常见驱动器标识符有hdx~
和sdx~
,如果在虚拟化环境下,可能还会有vdx~
hd
代表IDE硬盘,sd
代表一般块设备,包括SCSI、SATA、USB等,vd
则代表虚拟磁盘x
是按照字母排列代表是第几个硬盘,例如a是第1个,b是第2个,以此类推z是第26个硬盘~
是用数字表示分区,1-4是分区,5之后是扩展分区里的逻辑分区
例如:
hda1
就是第1个IDE硬盘的第1个分区sdb3
就是第2个SCSI、SATA硬盘的第3个分区vdc2
则表示第3块虚拟磁盘的第2 个分区
命令
查看磁盘分区挂载情况
lsblk
或lsblk -f
:list block的缩写,查看磁盘分区挂载情况,加上-f
可以看到文件系统的信息
操作磁盘分区
fdisk [-l] 设备名称
:fdisk 是 Linux 的磁盘分区表操作工具
fdisk -l [设备名称]
:输出后面接的装置所有的分区内容。若仅有fdisk -l
时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。fdisk [设备名称]
:使用fdisk修改磁盘分区,输入m
有更详细的说明,比较常用的有d
删除分区,n
新增分区,q
不保存离开,w
写入离开,p
显示分区情况
1 | (base) [root@VM-16-13-centos ~]# fdisk /dev/vda |
格式化磁盘分区
mkfs [-t 文件系统格式] 设备名称
:格式化分区,-t
用于指定文件系统格式,输入mkfs
后按下两次tab
来查看系统支持的文件系统格式
示例:mkfs -t ext4 /dev/sdc1
挂载磁盘分区
临时挂载
使用mount
挂载的分区在系统重启后就会失效,所以被称为临时挂载
mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 设备名称 挂载点
:将磁盘分区挂载到文件目录umount [-fn...] 设备名称或挂载点
:卸载分区,-f
:强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下;-n
:不升级/etc/mtab
情况下卸除。
示例:
mount /dev/sdc1 /mnt/sdc1
:将分区/dev/sdc1
挂载到目录/mnt/sdc1
umount /dev/sdc1
:卸载分区/dev/sdc1
永久挂载
修改/etc/fstab
文件之后执行mount -a
可以实现永久挂载
磁盘使用情况查询
查询整个磁盘分区的空间占用情况
df [-ahikHTm...] [目录或文件名]
:检查文件系统的磁盘空间占用情况。如果带目录或者文件名,则会显示这个目录所在的磁盘分区的磁盘空间占用情况。不带则会显示所有的磁盘分区的空间占用情况
部分选项与参数:
-a
:列出所有的文件系统,包括系统特有的 /proc 等文件系统;-k
:以 KBytes 的容量显示各文件系统;-m
:以 MBytes 的容量显示各文件系统;-h
:以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;-H
:以 M=1000K 取代 M=1024K 的进位方式;-T
:显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext4) 也列出;-i
:不用硬盘容量,而以 inode 的数量来显示
一般来说df -h [目录或文件名]
比较直观,用得比较多
查询指定目录的磁盘空间占用情况
du [-ahskmd...] 文件或目录名称
:和df
不同,du
是查询指定目录以及所有子目录的大小
部分选项与参数:
-a
:列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。-h
:以人们较易读的容量格式 (G/M) 显示;-s
:仅显示指定目录或文件的总大小,而不显示其子目录的大小。-S
:包括子目录下的总计,与 -s 有点差别。-k
:以 KBytes 列出容量显示;-m
:以 MBytes 列出容量显示;-d N
或--max-depth=N
:指定目录深度,不指定会查询所有子目录的大小
一般来说du -h --max-depth=1 文件或目录名称
比较直观,用得比较多
统计与显示
统计/opt
文件夹下的文件个数
命令:ls -l /opt | grep "^-" | wc -l
解释:
ls -l /opt
:列出指定目录下文件和子目录的详细内容| grep "^-"
:grep
正则表达式,过滤出-
开头的信息,-
开头是文件,d
开头是目录| wc -l
:word count是用于计数的命令行工具,wc
将计算指定文件的行数、字数,以及字节数,wc -l
是统计行数
统计/opt
文件夹下的目录个数
命令:ls -l /opt | grep "^d" | wc -l
解释参照上面
统计/opt
文件夹下的文件个数,包括子文目录下的
命令:ls -lR /opt | grep "^-" | wc -l
解释:-R
是递归,其余参照上文
统计/opt
文件夹下的目录个数,包括子目录下的
命令:ls -lR /opt | grep "^d" | wc -l
解释参照上文
树状显示文件目录结果
可以安装并使用tree
指令来实现