首页 > 代码库 > 磁盘分区需要知道的概念

磁盘分区需要知道的概念

首先分区有两种分区方式
MBR
现在主流的分区方式 分区不超过2T
0磁道0扇区
该区的大小为512bytes,专门用来存放MBR ,MBR又分为三类:
  446bytes :存储boot loader 引导加载器
  64bytes  :存储分区表,有多少个分区,每个分区从哪里开始从哪里结束,其中设16bytse标识为一个分区,所以一块硬盘最多只能有四个主分区,如果需要超出四个分区可以分为三个主分区一个扩展分区,一个扩展分区里可以分N个逻辑分区。
  2bytes   :前面信息的有效标识(结束符),用四个16进制来表示55AA,表示前面的510bytes是有效的,很重要。
 
GPT
将来的主流分,主要针对大容量硬盘分区。支持128个分区,最大可支持64Z大小的分区。
管理分区的三种方式
  fdisk:创建MBR分区
  gdisk:创建GPT分区
  parted:高级分区操作(创建、复制、调整大小等等)分区是实时的 就是说你执行了一个分区的命令那就真的分区了,而不会像fdisk那样需要执行w命令写入所做的修改,所以parted的测试千万注意不能再生产环境中!
 
文件系统分为
  日志型文件系统:ext3、ext4、xfs.....
  非日志型文件系统:ext2、vfat
 
创建ext文件系统
  mkfs.文件系统名 /设备路径
 
mke2fs :创建文件系统 ext系列文件专用工具
  -t :{ext2|ext3|ext4}
  -b :指定块大小 有三种形式1024,2048,4096.一般默认
  -N :为数据空间创建多少个inode 一般默认
  -m :为管理人员预留空间占用的百分比 默认5% 修改支持小数点
  -O : 启用指定特性
  -O ^FEATURE : 关闭指定特性
  tune2fs -l /dev/sdb1 查看系统支持的特性
      tune2fs -O ^has_journal /dev/sda9 移除特性
     tune2fs -O +has_journal /dev/sda9 添加特性
   -o:修改ACL   
     tune2fs -o acl /dev/sda9
     tune2fs -o ^acl /dev/sda9
 
tune2fs : 重新设定ext系列文件系统可调整参数的值
  -l : 查看指定文件系统超级块信息 super block
  -L :修改卷标
  -m:预留给管理员的空间百分比
  -o :调整文件系统的默认挂载选项
  -U :修改UUID号
 
fsck 文件系统检测和修复 (只能修复系统 数据很有可能不能修复)
  -p :自动修复错误
  -r :交互式修复错误
 
e2fsck ext系列文件专用的检测修复工具
  -y :自动回答为yes
  -f :强制修复
 
mount 挂载
注意事项
***挂载点进程正在被使用无法卸载
***事先存在 并使用空目录挂载 如果使用已挂载的文件重复挂载那之前的文件会隐藏 卸载后才可看到
 
挂载
mount /dev/sda1 /mnt/sda1
把/dev/sda1 挂载到/mnt/sda1
 
文件挂载
findmnt 检查已挂载的文件的系统
losetup -a 查看centos6的 loop挂载关系 7以上不用加-a
 
umount /dev/sda1
卸载挂载 (卸载时有别人在进程里是不能卸载的)
fuser 专门看挂载点的进程
  -v 查看谁在进程里
  -km 把所有进程踢出去
  (不到万不得已不要踢别人出去,这样别人会丢失数据。如果需要卸载可以提前发通知维护系统)
  -r :只读挂载 挂载的文件只能读 任何人没有权限修改 对一些特殊设备使用这种方式t
  -w :读写挂载
  -n :隐藏挂载 只有用“cat /proc/mounts”才能显示出来
  -B :把一个目录挂载到另一个目录上    
    例:mount -B /APPS /etc/APPS1
 
mount常用挂载选项
  mount :查看所有挂载点 mnt专门存放挂载点
  async : 异步模式 内存日志是定时更新 效率高
  tail 查看文件日志 /var/log/messages 目录
  sync :同步模式 内存更改时 同时写磁盘 效率慢 有保障
  atime/noatime: 是否更新访问时间
    atime 延迟时间 在两种情况下会修改
      时间超过一天以上未被访问 下次访问时会修改
      mtime时间比atime时间新 在下次访问时会修改
  touch 创建文件 如果文件已经已经存在 则修改文件的三个时间
  auto/noauto : 是否支持自动挂载
  exec/noexec : 是否支持将文件系统上运行应用程序
  dev/nodev :是否支持在此文件系统上使用设备文件
  suid/nosuid:是否支持suid和sgid权限
  remount :重新挂载 一般很少会卸载在挂载 会直接从新挂载
  ro:只读
  rw:读写
  user/nouser:是否允许普通用户挂载此设备,默认管理员才能挂载  
  acl:启用此文件系统上的访问控制列表功能
  Defaults:相当于rw、nosuid、dev、exec、auto、nouser、async 。
 
以上所有的挂载都是临时的 服务器重启之后就会自动取消挂载,需要把文件写入/etc/fstab 这个配置文件中
UUID=57a90ed6-abbc-4873-929c-1474b19ca32d swap swap defaults 0 0
分区类型 文件系统类型 默认值
挂载之后使用mount -a 生效所有挂载
 
uuidgen 生成新的UUID
 
lsblk:查看内存中的分区表 不会实时同步
blkid :UUID分区
disk -l /dev/sda :真实硬盘分区表 实时生效
 
swap分区
用硬盘分区创建swap分区 如果特殊情况下可以用文件创建 ,一般大小为内存的两倍,高性能磁盘存放。
swap一些选项
  swapon -a 激活新安装的swap
  swapon -s 谁提供了swap
  swapoff 关闭swap
 
lsof命令用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所以需要root用户执行
 

磁盘分区需要知道的概念