### 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文件