加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 财气网 (https://www.caiqiwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux 文件系统及磁盘管理

发布时间:2022-10-22 11:33:20 所属栏目:Linux 来源:
导读:  一个新的磁盘盘需要经过分区、格式化(创建文件系统),挂载之后才能正常使用。关于磁盘的分区表有两种格式:MBR(Master Boot Record)和GPT(GUID Partition Table)

  MBR:

  也称为主引导扇区,是计
  一个新的磁盘盘需要经过分区、格式化(创建文件系统),挂载之后才能正常使用。关于磁盘的分区表有两种格式:MBR(Master Boot Record)和GPT(GUID Partition Table)
 
  MBR:
 
  也称为主引导扇区,是计算机开机后访问硬盘时必须读取的首个扇区,也就是0柱面0磁头1扇区,MBR由bootload(446字节)、分区表(64字节)、MBR结束标志(2字节)共512字节组成。最大支持2TB的分区。MBR格式的分区表支持3个主分区和1个扩展分区。
 
  GPT:
 
  为了支持容量大于2TB的分区,引入了GPT分区表格式,最大支持18EB
 
  fdisk: 磁盘分区工具
 
  fdisk
 
  d: 删除一个分区
 
  l: 列出系统支持的分区类型
 
  m:打印帮助
 
  n: 增加一个新分区
 
  p: 打印分区表
 
  q: 不保存退出
 
  w:保存退出
 
  t: 改变分区ID
 
  2.partprobe(centos 5),kpartx,partx(centos 6):
 
  partprobe :通知OS系统磁盘分区表改变
 
  partx -a : 增加磁盘分区或读取所有磁盘分区
 
  partx -l : 列出磁盘所有分区
 
  kpartx -af :强制增加磁盘分区映射
 
  kpartx -l :列出增加的磁盘分区映射
 
  3. mke2fs , mkfs: 格式化磁盘(创建文件系统ext2,ext3,ext4)
 
  mke2fs的配置文件/etc/mke2fs.conf,使用用此命令加载的默认参数。
 
  mke2fs = mkfs -t ext2 = mkfs.ext2
 
  mke2fs:
 
  -t : 文件系统类型(ext2 | ext3 | ext4 )
 
  -j : 相当于 -t ext3
 
  -L Label: 设置卷标
 
  -b ( 1024 | 2048 | 4096): 指定块大小
 
  -i num: num个字节预留一个inode
 
  -N num: 直接指定预留多少个inode
 
  -n:不创建文件系统,但是显示创建过程中执行的操作
 
  -I num:Inode大小
 
  -m num: 预留管理员的空间的百分比,默认为5
 
  -U UUID: 使用自定义的UUID
 
  -c:在创建文件系统之前,检查磁盘上坏的block
 
  -F:强制创建文件系统
 
  -g:自定义每个block-group有多少个blocks
 
  -G:自定义block-group的数量
 
  -O [^]feature:指定分区特性
 
  feature:(默认sparse_super,filetype,resize_inode,dir_index,ext_attr)
 
  dir_index:使用b-trees hash加速大目录查询速度。
 
  extend:加速大文件系统访问(large file)
 
  filetype:存储文件类型信息
 
  flex_bg:允许block-group信息放置在block的任意位置
 
  has_journal:创建ext3日志(同-j)
 
  journal_dev:创建外部的ext3日志替代ext2文件系统
 
  large_file:文件系统支持大于2G的文件
 
  resize_inode:为block-group增长提供预留空间
 
  sparse_super:创建包含super-block备份的文件系统
 
  uninit_bg:加速文件系统创建(仅在ext4下支持)
 
  -q:用于在脚本中静默执行格式化
 
  # mke2fs /dev/sdb1
 
  mke2fs 1.41.12 (17-May-2010)
 
  warning: 252 blocks unused.
 
  Filesystem label=
 
  OS type: Linux
 
  Block size=4096 (log=2)
 
  Fragment size=4096 (log=2)
 
  Stride=0 blocks, Stripe width=0 blocks
 
  328320 inodes, 1310720 blocks
 
  65548 blocks (5.00%) reserved for the super user
 
  First data block=0
 
  Maximum filesystem blocks=1342177280
 
  40 block groups
 
  32768 blocks per group, 32768 fragments per group
 
  8208 inodes per group
 
  Superblock backups stored on blocks:
 
  32768, 98304, 163840, 229376, 294912, 819200, 884736
 
  Writing inode tables: done
 
  Writing superblocks and filesystem accounting information: done
 
  This filesystem will be automatically checked every 39 mounts or
 
  180 days, whichever comes first. Use tune2fs -c or -i to override.
 
  4. e2label
 
  e2label
 
  : 查看卷标
 
  e2label
 
  Label: 设置定卷标
 
  # e2label /dev/sdb1 data
 
  5. blkid
 
  blkid
 
  :查看分区类型和UUID
 
  # blkid /dev/sdb1
 
  /dev/sdb1: UUID="85ea6a34-0de2-47e8-83ee-589f79adb88a" TYPE="ext2"
 
  6. dumpe2fs: 查看文件系统(ext2 , ext3 , ext4)信息
 
  -h:仅显示super-block信息
 
  #dumpe2fs -h /dev/sdb1
 
  dumpe2fs 1.41.12 (17-May-2010)
 
  Usage: dumpe2fs [-bfhixV] [-o superblock=] [-o blocksize=] device
 
  [root@test ~]# dumpe2fs -h /dev/sdb1
 
  dumpe2fs 1.41.12 (17-May-2010)
 
  Filesystem volume name:
 
  Last mounted on:
 
  Filesystem UUID: a9771ea8-9719-4ecf-a6f2-c8b417a4878f
 
  Filesystem magic number: 0xEF53
 
  Filesystem revision #: 1 (dynamic)
 
  Filesystem features: ext_attr resize_inode dir_index filetype sparse_super large_file
 
  Filesystem flags: signed_directory_hash
 
  Default mount options: (none)
 
  Filesystem state: clean
 
  Errors behavior: Continue
 
  Filesystem OS type: Linux
 
  Inode count: 328320
 
  Block count: 1310720
 
  Reserved block count: 65548
 
  Free blocks: 1287546
 
  Free inodes: 328309
 
  First block: 0
 
  Block size: 4096
 
  Fragment size: 4096
 
  Reserved GDT blocks: 319
 
  Blocks per group: 32768
 
  Fragments per group: 32768
 
  Inodes per group: 8208
 
  Inode blocks per group: 513
 
  Filesystem created: Fri Aug 22 13:35:10 2014
 
  Last mount time: n/a
 
  Last write time: Fri Aug 22 13:35:11 2014
 
  Mount count: 0
 
  Maximum mount count: 20
 
  Last checked: Fri Aug 22 13:35:10 2014
 
  Check interval: 15552000 (6 months)
 
  Next check after: Wed Feb 18 13:35:10 2015
 
  Reserved blocks uid: 0 (user root)
 
  Reserved blocks gid: 0 (group root)
 
  First inode: 11
 
  Inode size: 256
 
  Required extra isize: 28
 
  Desired extra isize: 28
 
  Default directory hash: half_md4
 
  Directory Hash Seed: a46fce3a-c1f4-417c-941b-c23c01a3f555
 
  7.tune2fs:调整文件系统参数(针对ext2,ext3,ext4)
 
  -f:强制tune2fs完成操作,即使有错误出现。
 
  -l:列出super-block信息
 
  -L label:设定卷标
 
  -m:预留管理员的空间百分比,默认为5%
 
  -j:如果原来的文件系统类型为ext2,可以通过-j提升为ext3
 
  -o [^]mount-options[...]: 设定其默认挂载选项
 
  mount-options:(tune2fs支持的mout-options)
 
  debug:对文件系统启用debug code.
 
  bsdgroups:
 
  user_xattr: 启用用户定义的扩展属性
 
  acl: 启用POSIX访问控制列表
 
  uid16:禁用32位UID和GID,用于兼容老的内核
 
  journal_data: 在启用了日志的分区上,元数据写入日志区优先于数据写入文件系统
 
  journal_data_ordered: 在启用了日志的分区上,数据写入文件系统优先于元写入日志区
 
  journal_data_writeback: 在启用了日志的分区上,当元数据写入日志区后,数据 可能被写入文件系统,it may allow old data to appear in files after a crash and journal recovery
 
  nobarrier:仅ext4分区支持
 
  block_validity: 读写文件系统时,额外的检查被执行,仅ext4分区支持
 
  discard: 仅ext4分区支持
 
  nodelalloc: 仅ext4分区支持
 
  -O [^]feature[...]: 调整分区特性,同mke2fs -O选项
 
  8.fsck:用于检查和修复linux文件系统
 
  -t: 要检查的文件系统类型
 
  -A: 尝试检查所有/etc/fstab文件中所有文件系统
 
  -C: 显示检查和修复进度条
 
  -M: 不检查已挂载的文件系统
 
  -N:不执行,只显示将要做什么
 
  -P: 当使用了-A时,同时检查根文件系统和其它文件系统
 
  -R:当使用了-A时,跳过根文件系统检查
 
  -a: 自动修复文件系统
 
  -r: 交互式修复文件系统
 
  9.e2fsck:用于检查ext2,ext3,ext4文件系统
 
  -f:强制检查
 
  -F: 在开始检查之前,刷新分区的buffer cache
 
  -y:自动回答yes
 
  10.mount:挂载文件系统
 
  -r:只读挂载
 
  -w:读写挂载
 
  -L: 挂载有些卷标的分区
 
  -u:挂载有些uuid的分区
 
  -t:挂载的文件系统类型
 
  -a:自动挂载所有
 
  -n: 不更新/etc/mtab文件
 
  --bind dir1 dir2: 绑定dir1到dir2,可以从dir2访问dir1的文件
 
  -o options: 指定挂载选项
 
  async: 异步I/O
 
  sync: 同步I/O
 
  atime/noatime: 更新访问时间
 
  auto/noauto: 可以使用-a选项
 
  defaults: 默认选项包括(rw,suid,dev,exec,auto,nouser,aysnc,relatime)
 
  dev/nodev: 允许使用字符和块设备
 
  diratime/nodiratime: 更新目录inode访问次数
 
  dirsync:
 
  exec/noexec: 允许执行二进制文件
 
  group: 允许普通用户挂载文件系统,如果这个用户属于group
 
  user/nouser: 允许普通用户挂载文件系统,此选项隐含(noexec,nodev,nosuid)
 
  users: 允许每个用户挂载文件系统,此选项隐含(noexec,nodev,nosuid)
 
  iversion/noiversion: 每次inode被修改,i_version域被增加
 
  mand/nomand: 允许强制锁
 
  _netdev: 阻止系统尝试挂载网络文件系统,直到系统的网络准备就绪
 
  nofail: 如果设备不存在,不报告错误
 
  relatime/norelatime: 类似于atime/noatime
 
  strictatime/nostrictatime:
 
  suid/nosuid: 允许设置suid sgid
 
  owner: 如果用户是设备的owner,允许他挂载文件系统
 
  remount: 重新挂载文件系统
 
  ro: 只读挂载
 
  _rnewdev:和_netdev一样,除了在执行rc.sysinit时通过“fsck -a"检查文件系统
 
  rw: 读写挂载
 
  mount执行后的退出状态码:
 
  0: success
 
  1:incorrect invocation or permission
 
  2:system error(out of memory,cannot fork,no more loop devices)
 
  4:internal mount bug
 
  8:user interrupt
 
  16:problems writing or locking /etc/mtab
 
  32:mount failure
 
  64:some mount succeeded
 
  umount /dev/sdb1卸载文件系统
 
  umount /media
 
  11.fuser:查看占用文件或socket的进程:
 
  # fuser -v /media
 
  USER PID ACCESS COMMAND
 
  /media: root 13156 ..c.. bash
 
  ACCESS列:表示访问此进程的类型
 
  c: 当前目录
 
  e: 可执行程序正在执行
 
  f: 打开文件
 
  F: 打开文件写模式
 
  r: root目录
 
  m: mmap'ed file or shared library
 
  # fuser -km /media 杀死占用/media的进程
 
  12.df:查看文件系统空间使用率
 
  -h: 以K,M,G形式显示
 
  -i:显示inode使用率
 
  -P:以POSIX格式显示
 
  # df -h
 
  Filesystem Size Used Avail Use% Mounted on
 
  /dev/mapper/vg_test-lv_root 36G 1.8G 32G 6% /
 
  36G 1.8G 32G 6% /
 
  tmpfs 939M 0 939M 0% /dev/shm
 
  /dev/sda1 485M 37M 423M 9% /boot
 
  /dev/sdb1 5.0G 10M 4.7G 1% /media
 
  13.du:评估文件文件占用的磁盘空间
 
  # du -hs /root
 
  55M /var
 
  14.开机自动挂载文件/etc/fstab
 
  # /etc/fstab
 
  # Created by anaconda on Wed Jul 23 15:22:36 2014
 
  #
 
  # Accessible filesystems, by reference, are maintained under '/dev/disk'
 
  # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
 
  #
 
  /dev/mapper/vg_test-lv_root / ext4 defaults 1 1
 
  UUID=590c416b-9d27-4fe1-af01-fc802a7a200c /boot ext4 defaults 1 2
 
  /dev/mapper/vg_test-lv_swap swap swap defaults 0 0
 
  tmpfs /dev/shm tmpfs defaults 0 0
 
  devpts /dev/pts devpts gid=5,mode=620 0 0
 
  sysfs /sys sysfs defaults 0 0
 
  proc /proc proc defaults 0 0
 
  第一列:要挂载的设备(设备文件,卷标,UUID)
 
  第二列:挂载点
 
  第三列:文件系统类型
 
  第四列:挂载选项
 
  第五列:转储频率
 
  0:从不备份
 
  1:每日备份
 
  2:每隔一日备份
 
  第六列:自检次序
 
  0:不自检
 
  1: 首先自检,通常只被/使用
 
  2:/自检之后自检
 
  15. dd: convert and copy a file
 
  dd if=input_file of=output_file
 
  dd if=input_file of=output_file bs=#[b|k|m|g] count=#
 
  dd if=/dev/cdrom of=/tmp/centos.iso
 
  制作ISO文件
 
  dd if=/dev/sdb of=/tmp/outfile bs=512 count=1
 
  复制整个硬盘
 
  dd if=/dev/zero of=/dev/sdb bs=500 count=1
 
  删除磁盘前500个字节
 
  16. ln: 创建链接文件
 
  硬链接:
 
  不能跨分区
 
  不能对目录创建硬链接
 
  会改变文件被链接的次数
 
  与原文件指向同一个inode
 
  符号链接:
 
  可以跨分区
 
  可以和原文件不同一个inode
 
  可以对目录创建符号链接
 
  不会改变文件的被链接次数
 
  17. 压缩工具: zip/unzip , gzip/gunzip , bzip2/bunzip2 , xz/unxz
 
  zip: zip用于压缩文件、节省磁盘空间、把目录打包成.zip文件;对于文本文件压缩比例为2:1到3:1,zip默认使用的压缩算法是deflation
 
  命令格式:
 
  zip options archive inpath inpath ...
 
  archive:压缩之后的目的文件,格式为xxx.zip
 
  inpath: 目录或是文件路径
 
  options:
 
  -r: 递归查找子目录
 
  -u: 更新archive中已存在的文件,增加新的文件
 
  -f:更新archive中已存在的文件,但是不增加新文件
 
  -d: 删除已存在的archive,创建新的archive文件
 
  -U: 创建新的archive文件,结合-O选项,复制老的archive文件作为副本
 
  -z: 增加备注信息
 
  zip结合管道使用:
 
  find /root/ -name "*.sh" -print | zip -r bash.zip -@
 
  查找/root目录下所有以sh为后缀的文件,归档为bash.zip文件(-@代表inpath)
 
  zip -r - . | ls -l
 
  -作为代替archive文件用于将archive文件写到标准输出stdout
 
  tar cf - . | zip backup -
 
  -也可以作为inpath,tar备份当前目录Linux 磁盘管理,把输出结果传递给zip作归档
 
  tar cf - . | zip | dd of=/dev/nrst0 obs=16k
 
  等同于
 
  tar cf - . | zip - - | dd of=/dev/nrst0 obs=16k
 
  tar归档当前目录,zip使用tar归档之的文件作为输入,然后把压缩结果写入到磁带
 
  unzip :解压缩zip格式的文件
 
  -d: 指定解缩目录
 
  -l: 列出archive文件中的所有文件清单
 
  -v: 类似于-l,显示更详细的信息
 
  -f: 仅解压比磁盘上的文件更新的文件
 
  -u: 类似于-f,并创建磁盘上没有文件
 
  -p:解压文件作为标准输出stdout
 
  -t: 解压缩文件测试
 
  -z: 查看压缩文件备注信息
 
  gzip:压缩文件之后会删除原文件,压缩后的格式为xx.gz
 
  -c: 压缩文件作为标准输出stdout,可以使用重定向保留原文件
 
  -d: 相当于gunzip,zcat解压
 
  -f: 强制压缩和解压
 
  -l: 查看压缩文件列表
 
  -q: 静默模式,常用于脚本
 
  -t: 检查压缩文件的完整性
 
  -#: 1-9指定压缩比
 
  bzip2: 压缩文件之后会删除原来的文件,压缩后的格式为xx.bz2
 
  -c: 压缩或解压缩到标准输出stdout
 
  -d: 相当于bunzip2,bzcat
 
  -t: 检查压缩文件的完整性
 
  -f: 强制覆盖输出文件
 
  -k:压缩后保留原文件
 
  -s: 压缩、解压缩、检查完整性时减少内存使用率
 
  xz:
 
  -z: 缺省选项,压缩
 
  -d: 相当于unxz,xzcat解压
 
  -t: 检查压缩文件完整性
 
  -l: 查看压缩文件列表
 
  -k: 压缩后保留原文件
 
  -c: 压缩或解压到标准输出stdout
 
  -#: 0-9指定压缩比例
 
  18.归档工具: tar
 
  tar命令格式:
 
  tar [options] [file]
 
  options:
 
  -c: 创建归档文件
 
  -x: 提取归档文件
 
  -t: 列出归档文件内容
 
  -C: 改变目录
 
  -f: 指定归档文件名
 
  -j: 使用bzip2
 
  -J:使用xz
 
  -z: 使用gzip
 
  tar -jcf file.tar.bz2 file
 
  把文件file归档成bz2格式
 
  tar -jxf file.tar.bz2
 
  展开bz2文件
 
  tar -Jcf file.tar.xz file
 
  把文件file归档成xz格式
 
  tar -Jxf file.tar.xz
 
  展开xz文件
 
  tar -zcf file.tar.gz file
 
  把文件file归档成gz格式
 
  tar -zxf file.tar.gz
 
  展开gz文件
 

(编辑:财气旺网 - 财气网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!