磁盘与文件系统管理

df 显示系统上的文件系统磁盘使用情况统计

useState和useRef的区别_文件系统

Filesystem:表示该文件系统位于哪个分区,因此该列显示的是设备名称;
1K-blocks:此列表示文件系统的总大小,默认以 KB 为单位;
Used:表示用掉的硬盘空间大小;
Available:表示剩余的硬盘空间大小;
Use%:硬盘空间使用率。如果使用率高达 90% 以上,就需要额外注意,因为容量不足,会严重影响系统的正常运行;
Mounted on:文件系统的挂载点,也就是硬盘挂载的目录位置。

观察磁盘分区状态

磁盘分区主要有 MBR 以及 GPT 两种格式,不同格式使用的分区工具不同
lsblk列出系统上的所有磁盘列表
NAME:就是设备的文件名会省略 /dev 等前导目录!
MAJ:MIN:分别是主要:次要设备
代码!
RM:是否为可卸载设备 (removable device),如光盘、USB 磁盘等等
SIZE:当然就是容量
RO:是否为只读设备的意思
TYPE:是磁盘 (disk)、分区 (partition) 还是只读存储器 (rom) 等输出
MOUTPOINT:挂载点!

lsblk   [-dfimpt] [device]  列出系统上的所有磁盘列表
选项与参数:
-d :仅列出磁盘本身,并不会列出该磁盘的分区数据
-f :同时列出该磁盘内的文件系统名称
-i :使用 ASCII 的线段输出,不要使用复杂的编码 (再某些环境下很有用)
-m :同时输出该设备在 /dev 下面的权限数据 (rwx 的数据)
-p :列出该设备的完整文件名!而不是仅列出最后的名字而已。
-t :列出该磁盘设备的详细数据,包括磁盘伫列机制、预读写的数据量大小等
parted 列出磁盘的分区表类型与分区信息

useState和useRef的区别_useState和useRef的区别_02

磁盘分区 

MBR 分区表请使用 fdisk 分区, GPT 分区表请使用 gdisk 分区

useState和useRef的区别_运维_03

 

增加/删除磁盘分区操作 百度即可,流程两个指令的流程是相同的 

 

磁盘格式化即创建文件系统,make filesystem 
mkfs.xfs [-b bsize] [-d parms] [-i parms] [-l parms] [-L label] [-f] \
[-r parms] 设备名称
-b :后面接的是 block 容量,可由 512 到 64k,不过最大容量限制为 Linux 的 4k 喔!
-d :后面接的是重要的 data section 的相关参数值,主要的值有:
agcount=数值 :设置需要几个储存群组的意思(AG),通常与 CPU 有关
agsize=数值 :每个 AG 设置为多少容量的意思,通常 agcount/agsize 只选一个设置即可
file :指的是“格式化的设备是个文件而不是个设备”的意思!(例如虚拟磁盘)
size=数值 :data section 的容量,亦即你可以不将全部的设备容量用完的意思
su=数值 :当有 RAID 时,那个 stripe 数值的意思,与下面的 sw 搭配使用
sw=数值 :当有 RAID 时,用于储存数据的磁盘数量(须扣除备份碟与备用碟)
sunit=数值 :与 su 相当,不过单位使用的是“几个 sector(512Bytes大小)”的意思
swidth=数值 :就是 su*sw 的数值,但是以“几个 sector(512Bytes大小)”来设置
-f :如果设备内已经有文件系统,则需要使用这个 -f 来强制格式化才行!
-i :与 inode 有较相关的设置,主要的设置值有:
size=数值 :最小是 256Bytes 最大是 2k,一般保留 256 就足够使用了!
internal=[0|1]:log 设备是否为内置?默认为 1 内置,如果要用外部设备,使用下面设置
logdev=device :log 设备为后面接的那个设备上头的意思,需设置 internal=0 才可!
size=数值 :指定这块登录区的容量,通常最小得要有 512 个 block,大约 2M 以上才行!
-L :后面接这个文件系统的标头名称 Label name 的意思!
-r :指定 realtime section 的相关设置值,常见的有:
extsize=数值 :就是那个重要的 extent 数值,一般不须设置,但有 RAID 时,
最好设置与 swidth 的数值相同较佳!最小为 4K 最大为 1G 
mkfs.xfs /dev/vda4 格式化磁盘分区/dev/vda4
mkfs.ext4

文件系统检验 

xfs_repair 处理 XFS 文件系统
# xfs_repair [-fnd] 设备名称
选项与参数:
-f :后面的设备其实是个文件而不是实体设备
-n :单纯检查并不修改文件系统的任何数据 (检查而已)
-d :通常用在单人维护模式下面,针对根目录 (/) 进行检查与修复的动作!很危险!不要随便使用
fsck.ext4 处理 EXT4 文件系统
fsck.ext4 [-pf] [-b superblock] 设备名称
选项与参数:
-p :当文件系统在修复时,若有需要回复 y 的动作时,自动回复 y 来继续进行修复动作。
-f :强制检查!一般来说,如果 fsck 没有发现任何 unclean 的旗标,不会主动进入
细部检查的,如果您想要强制 fsck 进入细部检查,就得加上 -f 旗标啰!
-D :针对文件系统下的目录进行最优化配置。
-b :后面接 superblock 的位置!一般来说这个选项用不到。但是如果你的 superblock 因故损毁时,
通过这个参数即可利用文件系统内备份的 superblock 来尝试救援。一般来说,superblock 备份在:
1K block 放在 8193, 2K block 放在 16384, 4K block 放在 32768
fsck.ext4 -b 32768 /dev/vda5
fsck.ext4 /dev/vda5
fsck.ext4 -f /dev/vda5

文件系统挂载与卸载 

文件系统查看命令 df
df [选项] [挂载点]
-a 显示所有的文件系统信息,包括特殊文件系统,如 /proc、/sysfs
-h 使用习惯单位显示容量,如KB,MB或GB等
-T 显示文件系统类型
-m 以MB为单位显示容量
-k 以KB为单位显示容量。默认就是以KB为单位

useState和useRef的区别_useState和useRef的区别_04

 

统计目录或文件大小
du [选项] [目录或文件名]
-a 显示每个子文件的磁盘占用量。默认只统计 子目录的磁盘占用量
-h 使用习惯单位显示磁盘占用量,如KB,MB 或GB等
-s 统计总占用量,而不列出子目录和子文件的 占用量
df命令是从文件系统考虑的,不光要考虑 文件占用的空间,还要统计被命令或程序占用的空间(最常见的就是文件已经删除 ,但是程序并没有释放空间)
du命令是面向文件的,只会计算文件或目录占用的空间

 挂载命令

 

单一目录不应该重复挂载多个文件系统;
要作为挂载点的目录,理论上应该都是空目录才是。
mount 查询系统中已经挂载的设备
mount -l 查询系统中已经挂载的设备并会显示卷标名称
mount –a 依据配置文件/etc/fstab的内容,自动挂载

mount [-t 文件系统] [-L 卷标名] [-o 特殊选项] 设备文件名 挂载点

-t 文件系统:加入文件系统类型来指定挂载的类型,如果文件系统是硬盘,分区就写ext3、ext4 ,如果是光盘,就写iso9660
-L 卷标名: 挂载指定卷标的分区,而不是安装设备文件名挂载
-o 特殊选项:可以指定挂载的额外选项
UUID为系统中的存储设备提供唯一的标识字符串,不管这个设备是什么类型的

 查看设备UUID的两种方法及命令

useState和useRef的区别_linux_05

unmount [-fn] 设备文件名或挂载点
-f:强制卸载
-l 立刻卸载,作用比f强
-n 不更新 /etc/mtab 情况下卸载
unmount /data/cdrom 卸载光驱

 挂载优盘例子

useState和useRef的区别_useState和useRef的区别_06