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