Linux磁盘与文件系统管理笔记
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | ### Linux磁盘与文件系统管理 linux 最传统的文件系统格式是EXT2,centos7 默认文件系统是xfs(日志式文件系统) 磁盘的组成: 盘片 机械手臂 主轴马达 (机械硬盘) 磁盘格式化:由于每种os所设置的文件的属性/权限不同,为了存放所需数据,所以要进行格式化供os利用 LVM将一个分区格式化为多个文件系统 superblock 文件系统的整体信息 (inode block总量 使用量 剩余量 文件系统格式等) inode 记录文件的属性(权限和文件属性) 一个文件一个inode,同时记录此文件的数据所在的block号码 block 记录实际文件内容,文件太大会占用多个block,每个block只能放一个文件,所以当文件太小也会浪费磁盘空间 ll -sh 最前面的值代表每个block大小,比如是4kb,当文件大小比如1Bytes,也会占用1个block,超出1Bytes的空间被浪费 ext2文件格式是索引式文件系统 fat文件系统,没有inode,每一个block号码保存在前一个block中,所有只能依次读取 1->3->5->7 整个文件系统的文件通常无法连续写在一起,就是block不是连续的 block如果过于离散,就需要磁盘重组,将同一个文件的的blocks汇聚在一起 ll -i 最前面是inode号 日期之后是该文件占用了多少个block 磁盘与目录的容量 df -h 以易读的格式显示容量 或者-m -k 代表G M Kb显示 df -h /opt df . -T 列出分区文件系统格式 df . -i 用inode来数量显示磁盘情况 实体链接(hard link)与符号链接(symbolic link) ln 不带参数是硬链接 -s 软连接 -f 强制 hard link 通过inode号码关联到一个文件,他们是同一个文件,相当于对象引用 不能跨文件系统 不能link 目录 ln 1.txt hd_link 创建1.txt 的硬链接 ll -i 可以看到1.txt 和 hd_link 有相同的inode号码 ,链接数变为2, 增加硬链接不会消耗inode和block数量,删掉其中一个链接或文件,若连接数为1,那么文件都会存在的 symbolic link ln -s 1.txt s_link ll -i 可以看到文件和链接本身的inode号不一样,表示是两个独立文件, s_link会写上目标文件的文件名,占用的大小即这个文件名的大小, 如果删除了文件本身,s_link就无法访问到源文件了 lsblk 列出系统上的所有磁盘列表 MBR分区表使用 fdisk 分区 GPT分区表使用gdisk分区 fdisk /dev/sda 分区操作 n 增加分区 文件系统的挂载与卸载 挂载是指将一个设备(通常是存储设备)挂接到一个已存在的目录上。 要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的 目录上, 然后通过访问这个目录来访问存储设备。 要挂载的目录通常应该是空目录 blkid主要用来对系统的块设备(包括交换分区)所使用的文件系统类型、LABEL、UUID等信息进行查询 mount UUID= "" 挂载的目录 blkid 查看设备的UUID或者LABEL或者设备文件名 mkdir -p /opt/leyi mount UUID= "xxx" /opt/leyi df /opt/leyi -h cd /opt/leyi ll 文件系统的卸载 注( umount 不是unmount) mount : less /leyi 搜索可以看到刚才挂载的文件 umount /opt/leyi 用挂载点来卸载或者设备文件名,最好用挂载点 umount /opt/leyi /opt/leyi2 将这两个挂载的文件系统卸载 cd /opt/leyi ll 内存交换空间(虚拟内存) swap ,当内存够大时,用不到swap 通常Swap空间的大小应是物理内存的2-2.5倍 内存不够时,会占用部分硬盘空间,即暂时将内存的程序拿到硬盘中 /dev/zero ,是一个输入设备,你可你用它来初始化文件。该设备无穷尽地提供0 使用大文件创建swap空间 free 查看内存情况 dd if = /dev/zero of= /opt/newswap bs=1M count=1024 创建大文件 if (输入文件input file ) of(输出文件output file ) bs 每个block大小 count 代表多少个block 最终生成的文件容量是bs*count ll -h /opt/newswap 查看这个文件大小 mkswap /opt/newswap 转化为swap格式 swapon /opt/newswap 启动该swap swapon -s 查看有哪些swap swapoff 关闭swap文件 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
· 程序员常用高效实用工具推荐,办公效率提升利器!