linux磁盘管理
磁盘
设备文件:关联至一个设备驱动程序,进而能够跟与之对应的硬件设备进行通信
设备号码:major number,标识设备类型
次设备号:minor number,表示同一类型下的不同设备
设备类型:块设备:block,字符设备:char。
磁盘空间的管理,使用硬盘的三个步骤
1.分区
2.安装文件系统=格式化
3.挂载
硬盘接口类型:sata sas 6GB传输速度
服务器硬盘大小LFF:3.5寸,SFF:2.5寸
windows当中可以不分区,linux当中一定要分区才能使用硬盘
为什么要分区?
优化I/O性能,读写
实现磁盘空间配额限制
提高修复速度
隔离系统和程序
安装多个OS
采用不同文件系统
分区技术
1.mbr分区(老的技术)2T以下的硬盘 fdisk
2.gpt分区(新技术)可以支持2T以上的硬盘 gdisk
mbr:主引导记录,是硬盘上的第一个扇区,想要读数据得从这个扇区开始
mbr一个512字节,前446字节是开机引导程序,硬件引导找到我们的操作系统
后64字节是分区表,表明了分区的范围,分区从哪开始到哪里结束,最后2字节代表了mbr的结束位。
mbr分区只可以分4个分区,一个分区16字节
分区分类:
主分区:可以直接使用,安装操作系统,存储文件等
扩展分区:不可以直接使用,用来存储逻辑分区,可以让分区超过4个
逻辑分区:可以直接使用,存储文件
主分区的序号为1-4,逻辑分区的序号从5开始
文件系统
文件系统的组成
内核中的模块:ext4,xfs,vfat
Linux的虚拟文件系统:VFS
用户空间的管理工具:mkfs.ext4,mkfs.xfs,mksf.vfat
RAW:裸文件系统,未经处理或者未经格式化产生的文件系统
文件系统的修复
fsck.FS_TYPE
fsck -t FS_TYPE
-a 自动修复,-r 交互式修复错误
分区工具
lsblk 列出块设备
fdisk 管理MBR分区
gdisk 管理GPT分区
parted 高级分区操作,可以是交互或非交互方式
partprobe 重新设置内存中的内核分区表版本,适合除了Centos 6以外的5,7,8版本
fdisk
格式:fdisk -l [磁盘设备]
例:
选项
m 打印出菜单
p 打印出当前分区表
n 新建一个分区
d 删除一个分区
t 改变分区的属性,系统ID
w 保存
q 不保存退出
创建后分区如果分区未出现可以使用 partprobe 刷新检测分区表。
例:
blkid
可以查看块设备属性信息
例:
mkfs
创建文件系统(格式化)常用选项
t {ext2|ext3|ext4|xfs} 指定文件系统类型
b {1024|2048|4096} 指定块 block 大小
L ‘LABEL’ 设置卷标
j 相当于-t ext3, mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs t ext3-i
i # 为数据空间中每多少个字节创建一个inode;不应该小于block大小
N # 指定分区中创建多少个inode
I 一个inode记录占用的磁盘空间大小,128---4096
m # 默认5%,为管理人员预留空间占总空间的百分比
O FEATURE[,...]启用指定特性-O ^FEATURE 关闭指定
例:
mkfs.xfs [磁盘设备]
mkswap
swap
特殊的文件系统,缓解内存不足,为了个别应为程序加内存有点浪费
添加交换分区的空间
mkswap + 分区
swapon +分区 开启 -a 全部
swapoff +分区 关闭 -a 全部
lsblk
查看当前硬盘是什么模式
挂载与解挂载
mount,umount
格式mount [磁盘设备] 挂载点目录
例:
findmnt 查看 设备的详细信息
例:
挂载规则
一个挂载点同一时间只能挂载一个设备
一个挂载点同一时间挂载了多个设备,只能看到最后一个设备的数据,其它设上的数据将被隐藏
一个设备可以同时挂载到多个挂载点
通常挂载点一般是已存在空的目录
remount
mount -o 重新挂载
永久挂载
需要将文件写入/etc/fstab
UUID 可以确保唯一
例:
df -Th
例:
不同于lsblk的递归显示,df -Th更详细
lsusb
查看USB设备是否识别
例:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构