linux中,任何硬件设备都是文件,各有各的一套文件系统(文件目录结构),如图
df命令统计空间(面向磁盘)
命令使用
- 格式 df [选线] [文件名]
- 显示指定磁盘文件的使用情况。没有指定文件,则显示所有挂载的文件系统的磁盘使用情况
-a:全部文件系统列表,包含虚拟文件系统
-B:指定显示scale size,比如以M,G为单位显示, df -BM
-h:方便人阅读方式显示。
-H:和-h相似,但换算单位不同,1k = 1000byte, 1M=1000k
-i:列出inode的信息
-k :区块为1024字节
-l :显示本地文件系统
-p:使用POSIX规范输出
-t:打印指定的文件系统类型
-T:显示文件系统类型
-x:不打印指定的文件系统类型
filesystem文件系统对应的设备文件的路径名(一般是硬件上的分区)
1K-blocks分区包含的数据块(1024byte)的数目
mounted on文件系统的挂载点,硬盘挂载的目录位置
tmpfs一种基于内存的临时文件系统,类似不需要用mkfs来格式化的虚拟磁盘ramdisk一样,可以使用RAM,但它也可以使用swap分区来存储,而且它并不是块设备,只需安装不需格式化即可使用
du命令统计空间使用(面向文件)
du命令和df命令的区别
有时用 du 和 df 命令统计分区使用情况时,得到数据不一样。
那是因为df命令结果=文件系统占用总空间-文件系统剩余空间,通过文件系统中未分配的空间来确定文件系统中已经分配的空间大小。也就是说,在使用 df 命令统计分区时,不仅要考虑文件占用的空间,还要统计被命令或程序占用的空间(最常见的就是文件已经删除,但是程序并没有释放空间)。
而 du 命令是面向文件的,只会计算文件或目录占用的磁盘空间。也就是说,df 命令统计的分区更准确,是真正的空闲空间。
mount命令挂载
-
硬件设备必须挂载之后才能使用,硬盘分区在每次系统启动时会自动挂载,U 盘、光盘需要手动进行挂载。
-
挂载:把设备文件中的顶级目录连接到 Linux 根目录下的某一目录,访问此目录就等同于访问设备文件
-
根目录以及系统原有目录都不要作为挂载点(挂载操作会使得原有目录中文件被隐藏)
参数说明
mount -a 自动检查 /etc/fstab 文件中有无疏漏被挂载的设备文件,如有,则进行自动挂载操作。(系统开机时会主动读取 /etc/fstab 这个文件中的内容,根据该文件的配置挂载)
mount -l 显示系统中已挂载的设备信息;
- mount [-t 系统类型] [-L 卷标名] [-o 特殊选项] [-n] 设备文件名 挂载点,高阶用法选项可参考这里
查看硬盘分区与逻辑卷
挂载硬盘后,方可对其分区操作,使用lsblk查看系统能检测到的磁盘
sudo fdisk -l 查看硬盘分区
/dev/sda表示第一块硬盘,sdb第二块;
/dev/sda1表示第一个分区;
/dev/mapper/ubuntu–vg-ubuntu–lv表示逻辑卷(Logical Volume)
扩大ubuntu–vg-ubuntu–lv空间
lvextend -L 20G /dev/mapper/ubuntu–vg-ubuntu–lv //增大或减小至20G
lvextend -L +20G /dev/mapper/ubuntu–vg-ubuntu–lv //增加20G
lvreduce -L -20G /dev/mapper/ubuntu–vg-ubuntu–lv //减小20G
lvresize -l +100%FREE /dev/mapper/ubuntu–vg-ubuntu–lv //按百分比扩容
resize2fs /dev/mapper/ubuntu–vg-ubuntu–lv //执行调整,老版本使用xdp相关的命令
记一次磁盘配置开机自动挂载
mawangchi 磁盘挂载
df -h 查看当前挂载状态,挂载路径
fdisk -l 查看当前安装了几个硬件磁盘,磁盘大小
sda sdb,a,b两个硬件磁盘
sda1,sda2,sda3,三个分区,每个分区对应一个文件系统,每个文件系统有自己的UUID,使用blkid /dev/sda1查看UUID和文件系统ext4,其中sda2的block分区512且为EFI分区(类似于windows上的小分区存储磁盘结构信息的)
GUI界面可以手动点击实现自动挂载
之后需要在/etc/fstab中添加开机时自动挂载配置参考如下:
UUID=901dfbce-d983-4637-9cf5-508af6265b93 /media/mnt/mydisk[] ext4 defaults 0[备份什么的] 0[跳过开机对文件系统的检查节省10min,1是用于根目录,通常设置为2检查]