[关闭]
@mrz1 2017-12-11T13:09:10.000000Z 字数 12829 阅读 1038

2017-12-1课程笔记(文件系统 分区)

笔记


yum源制作的几种方式?

  1. 做一个repo文件,把baseurl改成国内的某个地址,例如阿里的yum源
  2. 不能连接外网的情况下,先在内网搭建一个yum源的服务器,然后按照第一个方案去做即可
    1、官网下载包自己制作
    2、程序包编译
    3、二进制安装,通常它是没有制作成rpm包
  3. 把CentOS-7-x86_64-DVD-1611.iso包拷贝到Docker中去,然后用mount本地挂载的方式在Docker里挂载目录,然后再使用yum命令安装软件包,这种方式要求宿主机的磁盘空间比较大,因为CentOS-7-x86_64-DVD-1611.iso这个文件有4.2G大小.
    链接:https://www.zybuluo.com/mrz1/note/967503#yum仓库
    注意:centos5 中如果是挂载光盘的话路径是/misc/cd/Server/

磁盘管理

设备文件

  1. I/O Ports: I/O设备地址
  2. 一切皆文件:
    open(), read(), write(), close()
  3. 设备类型:
    块设备:block,存取单位“块”,磁盘,随机访问
    字符设备:char,存取单位“字符”,键盘
  4. 设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信
  5. 设备号码:
    主设备号:major number, 标识设备类型
    次设备号:minor number, 标识同一类型下的不同设备
  1. [root@centos7 ~]#ll /dev/sda
  2. brw-rw----. 1 root disk 8, 0 Dec 2 10:17 /dev/sda //8主要编号大类别;0次设备号这个类别第几个

硬盘接口类型
并行:IDE: 133MB/s SCSI: 640MB/s【淘汰:速度受影响】
串口:SATA: 6Gbps SAS: 6Gbps USB: 480MB/s
rpm: rotations per minute(磁盘转速)

大写的B是字节 小写b代表位 一个字节八位
SATA家用电脑 SAS服务器上 火线接口是特别高速

机械硬盘和固态硬盘

  1. 机械硬盘(HDD): Hard Disk Drive,即是传统普通硬盘,主要由:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接 口,缓存等几个部分组成。机械硬盘中所有的盘片都装在一个旋转轴上,每张盘片之间是平行的,在每个盘片的存储面上有一个磁头,磁头与盘片之间的距离比头发丝的直径还小,所有的磁头联在一个磁头控制器上,由磁头控制器负责各个磁头的运动。磁头可沿盘片的半径方向运动,加上盘片每分钟几千转的高速旋转,磁头就可以定位在盘片的指定位置上进行数据的读写操作。数据通过磁头由电磁流来改变极性方式被电磁流写到磁盘上,也可以通过相反方式读取。硬盘为精密设备,进入硬盘的空气必须过滤
  2. 固态硬盘(SSD): Solid State Drive,用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)组成。固态硬盘在接口的规范和定义、功能及使用方法上与普通硬盘的完全相同,在产品外形和尺寸上也与普通硬盘一致
  3. 相较于HDD,SSD在防震抗摔、传输速率、功耗、重量、噪音上有明显优势,SSD传输速率性能是HDD的2倍
  4. 相较于SSD,HDD在价格、容量、使用寿命上占有绝对优势
  5. 硬盘有价,数据无价,目前SSD不能完全取代HHD

打开图形化分区centos7是gnome-disks;centos6是gnome-disks

机械硬盘结构

机械硬盘结构

固态与机械

固态与机械

设备文件

  1. 磁盘设备的设备文件命名:/dev/DEV_FILE
    SCSI, SATA, SAS, IDE,USB: centos6-7一统江湖/dev/sd
    注意:早期centos5后添加的硬盘是/dev/hda/;
  2. 虚拟磁盘:/dev/vd
  3. 不同磁盘标识:a-z,aa,ab…(磁盘阵列)
    /dev/sda, /dev/sdb, ...
  4. 同一设备上的不同分区:1,2, ...
    /dev/sda1, /dev/sda5
  5. 硬盘存储术语
    head:磁头 8个位表示磁头数;2^8共256个磁头
    track:磁道 是按10位来存的;2^10共(外圈-内圈)0-1023个(1024)磁道
    cylinder: 柱面 大小:256*63/512/1024=8064KB
    sector: 扇区,6位2^6=64个存放扇区;但是其实是63个扇区;每个扇区512bytes;
    硬盘存储早期:大小:256*1024*63*512/1024/1024/1024=7.875G

    机械硬盘结构

    机械硬盘结构

硬盘存储术语

区位记录磁盘扇区结构

提高访问速度放到外圈

ZBR

  1. [root@centos6 ~]#fdisk -l //centos6提示警报
  2. Disk /dev/sda: 214.7 GB, 214748364800 bytes
  3. 255 heads, 63 sectors/track, 26108 cylinders
  4. Units = cylinders of 16065 * 512 = 8225280 bytes
  5. Sector size (logical/physical): 512 bytes / 512 bytes
  6. I/O size (minimum/optimal): 512 bytes / 512 bytes
  7. Disk identifier: 0x000b7f0c
  8. Device Boot Start End Blocks Id System
  9. /dev/sda1 * 1 131 1048576 83 Linux
  10. Partition 1 does not end on cylinder boundary. //提示
  11. /dev/sda2 131 6505 51200000 83 Linux
  12. /dev/sda3 6505 9055 20480000 83 Linux
  13. /dev/sda4 9055 26109 136985600 5 Extended
  14. /dev/sda5 9055 9316 2097152 82 Linux swap / Solaris

CHS和LBA

  1. CHS(淘汰)
    采用24bit位寻址
    其中前10位表示cylinder,中间8位表示head,后面6位表示sector。
    最大寻址空间8GB
  2. LBA(logical block addressing)
    LBA是一个整数,通过转换成CHS格式完成磁盘具体寻址
    LBA采用48个bit位寻址(2^48目前是)
    最大寻址空间128PB
  3. 由于CHS寻址方式的寻址空间在大概8GB以内,所以在磁盘容量小于大概8GB时,可以使用CHS寻址方式 或是LBA寻址方式;在磁盘容量大于大概8GB时,则只能使用LBA寻址方式

使用分区空间

  1. 设备识别
  2. 设备分区
  3. 创建文件系统
  4. 标记文件系统
  5. 在/etc/fstab文件中创建条目
  6. 挂载新的文件系统

为什么分区

  1. 优化I/O性能
  2. 实现磁盘空间配额限制
  3. 提高修复速度
  4. 隔离系统和程序
  5. 安装多个OS
  6. 采用不同文件系统

hexdump /dev/sda -C -n 512 二进制访问

分区

  1. 两种分区方式:MBR,GPT
  2. MBR: Master Boot Record,1982年,使用32位表示扇区数,2^32分区不超过2T
  3. 如何分区:按柱面
  4. 0磁道0扇区:512bytes
    446bytes: boot loader(主引导记录446/16=27转换为16进制为1B)
    64bytes:分区表(16bytes: 标识一个分区)
    2bytes: 55AA(标记位)
  5. 4个主分区;3主分区+1扩展(N个逻辑分区)
  6. 分区在内存(生效)和磁盘查看

MBR硬盘分区结构图
MBR硬盘分区结构图
MBR硬盘分区结构图

MBR分区结构

  1. 硬盘主引导记录MBR由4个部分组成
  2. 主引导程序(偏移地址0000H--0088H),它负责从活动分区中装载,并运行系统引导程序。
  3. 出错信息数据区,偏移地址0089H--00E1H为出错信息,00E2H--01BDH全为0字节。
  4. 分区表(DPT,Disk PartitionTable)含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字 节,共64字节为分区项1、分区项2、分区项3、分区项4
  5. 结束标志字,偏移地址01FE--01FF的2个字节值为结束标志55AA

实验:把前512bytes中64bytes:分区表删除后恢复启动?

1.先把前512bytes中64bytes备份

  1. [root@centos6 ~]#dd if=/dev/sda of=/app/mbr bs=1 count=512
  2. 把/dev/sda/前512字节备份到/app/mbr/;bs=1是一个字节一个字节的读;conut=512是读512个字节
  3. [root@centos6 ~]#dd if=/dev/zero of=/dev/sda bs=1 count=64 skip=446 seek=446
  4. 把/dev/sda 64个字节删除掉 skip=446 seek=446是跳过前面446个字节
  5. [root@centos6 ~]#lsblk //内存中的分区表
  6. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
  7. sr0 11:0 1 3.7G 0 rom /media/CentOS_6.9_Final
  8. sda 8:0 0 200G 0 disk
  9. ├─sda1 8:1 0 1G 0 part /boot
  10. ├─sda2 8:2 0 48.8G 0 part /
  11. ├─sda3 8:3 0 19.5G 0 part /app
  12. ├─sda4 8:4 0 1K 0 part
  13. └─sda5 8:5 0 2G 0 part [SWAP]
  14. [root@centos6 ~]#fdisk -l /dev/sda // 磁盘上真正分区表
  15. Disk /dev/sda: 214.7 GB, 214748364800 bytes
  16. 255 heads, 63 sectors/track, 26108 cylinders
  17. Units = cylinders of 16065 * 512 = 8225280 bytes
  18. Sector size (logical/physical): 512 bytes / 512 bytes
  19. I/O size (minimum/optimal): 512 bytes / 512 bytes
  20. Disk identifier: 0x000b7f0c
  21. //空的
  22. Device Boot Start End Blocks Id System

2.再把mbr备份到到另一台服务器上 scp /app/mbr IP地址:/root
3.重启 光盘启动 之后配置下网络 再把mbr备份回来scp IP地址:/root/mbr/ / ok重启完成

添加硬盘 之后复制mbr到/dev/sdb/里面(实验可以这样做!)

仅供参考:

  1. [root@centos6 ~]#echo '- - -' > /sys/class/scsi_host/host2/scan //扫描硬盘
  2. [root@centos6 app]#dd if=/app/mbr of=/dev/sdb bs=1 count=66 skip=446 seek=446 //复制mbr512字节到/dev/sdb/里面
  3. 66+0 records in
  4. 66+0 records out
  5. 66 bytes (66 B) copied, 0.00123042 s, 53.6 kB/s
  6. [root@centos6 app]#lsblk //查看看不到
  7. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
  8. sr0 11:0 1 3.7G 0 rom /media/CentOS_6.9_Final
  9. sda 8:0 0 200G 0 disk
  10. ├─sda1 8:1 0 1G 0 part /boot
  11. ├─sda2 8:2 0 48.8G 0 part /
  12. ├─sda3 8:3 0 19.5G 0 part /app
  13. ├─sda4 8:4 0 1K 0 part
  14. └─sda5 8:5 0 2G 0 part [SWAP]
  15. sdb 8:16 0 100G 0 disk
  16. sdc 8:32 0 80G 0 disk
  17. [root@centos6 app]#fdisk -l /dev/sdb //这个能看到
  18. Warning: invalid flag 0x0000 of partition table 5 will be corrected by w(rite)
  19. Disk /dev/sdb: 107.4 GB, 107374182400 bytes
  20. 255 heads, 63 sectors/track, 13054 cylinders
  21. Units = cylinders of 16065 * 512 = 8225280 bytes
  22. Sector size (logical/physical): 512 bytes / 512 bytes
  23. I/O size (minimum/optimal): 512 bytes / 512 bytes
  24. Disk identifier: 0x00000000
  25. Device Boot Start End Blocks Id System
  26. /dev/sdb1 * 1 131 1048576 83 Linux
  27. Partition 1 does not end on cylinder boundary.
  28. /dev/sdb2 131 6505 51200000 83 Linux
  29. /dev/sdb3 6505 9055 20480000 83 Linux
  30. /dev/sdb4 9055 26109 136985600 5 Extended
  31. [root@centos6 app]#dd if=/dev/sda of=/dev/sdb bs=1 count=66 skip=446 seek=446 //复制/dev/sda512字节到/dev/sdb/里面

GPT分区

1.GPT:GUID(Globals Unique Identifiers) partition table 支持128个分区,使用64位,支持8Z(512Byte/block )64Z ( 4096Byte/block)

数据大小 B KB M G T P E Z Y B N D

2.使用128位UUID(Universally Unique Identifier)表示磁盘和分区GPT分区表自动备份在头和尾两份,并有CRC校验位

  1. [root@centos6 ~]#uuidgen //生成uuid
  2. aec90c53-efa6-4f11-8ed8-b810792ce889

3.UEFI (统一扩展固件接口)硬件支持GPT,使操作系统启动

GPT分区结构
GPT分区结构

GPT结构,头和分区表项

GPT分区结构

列出可用的磁盘设备

GPT分区结构

BIOS+MBR与UEFI+GPT

GPT分区结构

查看现在linux中应用的是MBR还是GPT的几种方式?

  1. 1. 打开图形化分区centos7gnome-disks;centos6gnome-disks
  2. 2.[root@centos6 ~]#ls /dev/sd* //看的是内存
  3. /dev/sda /dev/sda2 /dev/sda4 /dev/sdb /dev/sdb2 /dev/sdb4
  4. /dev/sda1 /dev/sda3 /dev/sda5 /dev/sdb1 /dev/sdb3 /dev/sdc
  5. 3.[root@centos6 ~]#cat /proc/partitions //看的是内存
  6. major minor #blocks name
  7. 8 0 209715200 sda
  8. .....省略
  9. 4.[root@centos6 ~]#lsblk //看的是内存
  10. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
  11. .....省略
  12. 5.[root@centos6 ~]#fdisk -l //看的是磁盘
  13. Disk /dev/sda: 214.7 GB, 214748364800 bytes
  14. 255 heads, 63 sectors/track, 26108 cylinders //看到这些
  15. Units = cylinders of 16065 * 512 = 8225280 bytes//看到这些
  16. Sector size (logical/physical): 512 bytes / 512 bytes//看到这些
  17. I/O size (minimum/optimal): 512 bytes / 512 bytes//看到这些
  18. Disk identifier: 0x000b7f0c
  19. .....省略

管理分区

  1. 列出块设备
    lsblk
  2. 创建分区使用:
    fdisk 创建MBR分区(man fdisk)
    gdisk 创建GPT分区
    parted 高级分区操作
  1. 用法:parted [选项]... [设备 [命令 [参数]...]...]
  2. parted /dev/sdb mklabel gpt|msdos //创建
  3. parted /dev/sdb print //查看(gdisk /dev/sdb 也可以查看有提示详细)
  4. parted /dev/sdb mkpart primary 1 1000(实际999M) (默认M//创建容量
  5. parted /dev/sdb rm 1 //删除
  6. parted -l
  1. partprobe-重新设置内存中的内核分区表版本
  1. [root@centos6 ~]#dd if=/dev/zero of=/dev/sdb bs=1 count=512 //删除分区
  2. 512+0 records in
  3. 512+0 records out
  4. 512 bytes (512 B) copied, 0.0519818 s, 9.8 kB/s

分区工具fdisk和gdisk 和 parted

  1. gdisk /dev/sdb 类fdisk 的GPT分区工具
  2. fdisk -l [-u] [device...] 查看分区
    fdisk /dev/sdb 管理分区;有报警是以柱面分
    centos7没有柱面了直接就是扇区;如果非要看柱面fdisk -u=cylinders /dev/sda
    fdisk /dev/sdb -c 不出现报警;还是以柱面分
    fdisk /dev/sdb -c 不出现报警;以扇区分
    子命令:
    p 分区列表
    t 更改分区类型
    n 创建新分区
    d 删除分区
    v 校验分区
    u 转换单位
    w 保存并退出
    q 不保存并退出
  3. parted 高级分区操作(操作都是实时生效的,小心使用)
  1. 用法:parted [选项]... [设备 [命令 [参数]...]...]
  2. parted /dev/sdb mklabel gpt|msdos //创建
  3. parted /dev/sdb print //查看(gdisk /dev/sdb 也可以查看有提示详细)
  4. parted /dev/sdb mkpart primary 1 1000(实际999M) (默认M//创建容量
  5. parted /dev/sdb rm 1 //删除
  6. parted -l
  7. perted /dev/sdb mklabel msdos //删除所有

同步分区表

  1. 查看内核是否已经识别新的分区:
    cat /proc/partations
  2. centos6通知内核重新读取硬盘分区表
    新增分区用:
    partx -a /dev/DEVICE(报提示错误不用管)
    kpartx -a /dev/DEVICE -f: force()
    删除分区用:partx -d --nr M-N /dev/DEVICE
  3. CentOS 5,7: 使用partprobe
    partprobe [/dev/DEVICE]
  4. 新硬盘会自动同步

分区设备名不稳定 还有注意夹缝问题 (视频:3分区管理)

  1. echo -e "n\np\nl\n\n+10G\nw\n" | fdisk /dev/sdc //新硬盘自动创建分区
  2. [root@centos7 ~]#fdisk /dev/sdc <<EOF //新硬盘自动创建分区
  3. > n
  4. > p
  5. > 2
  6. >
  7. > +6G
  8. > w
  9. > EOF
  10. 老硬盘自动创建分区 最后需要加同步
  11. 老硬盘创建分区$?=1 因为有警报没同步
  12. 新硬盘创建分区$?=0

文件系统

  1. 文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件 的方法。操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统
  2. 从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件 进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文 件的存取,安全控制,日志(数据库重点),压缩,加密等
  3. 支持的文件系统:/lib/modules/uname –r/kernel/fs
    [root@centos7 ~]#ls /lib/modules/3.10.0-693.el7.x86_64/kernel/fs/
    [root@centos6 ~]#ls /lib/modules/2.6.32-696.el6.x86_64/kernel/fs/
    /lib/modules/2.6.32-696.el6.x86_64/kernel/fs/fat/vfat.ko

文件系统类型

  1. Linux文件系统:ext2(Extended file system)[淘汰], ext3,[淘汰]
    ext4(现在都是,最大16T),xfs(SGI(这个公司有泰克尼克号 )), btrfs(Oracle), reiserfs, jfs(AIX), swap
  2. 光盘:iso9660
    [root@centos7 ~]#blkid /dev/sr0 /dev/sr0: UUID="2017-09-06-10-53-42-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
  3. Windows:FAT32, exFAT,NTFS【U盘格式化可以看到】
  4. Unix: FFS(fast), UFS(unix), JFS2
  5. 网络文件系统:NFS, CIFS(参考:远程共享资源 挂载到本地)
  6. 集群文件系统:GFS2, OCFS2(oracle)(参考:总统与副总统关系)
  7. 分布式文件系统: fastdfs,ceph, moosefs, mogilefs,
    glusterfs, Lustre
  8. RAW:未经处理或者未经格式化产生的文件系统(光分区不创建文件系统;直接读入二进制;
    追求高性能;牺牲可管理性太麻烦)

文件系统分类

  1. 根据其是否支持"journal"功能:
    日志型文件系统: ext3, ext4, xfs, ...
    非日志型文件系统: ext2, vfat
  2. 文件系统的组成部分:
    内核中的模块:ext4, xfs, vfat
    用户空间的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat
  3. Linux的虚拟文件系统:VFS
  4. 查前支持的文件系统:cat /proc/filesystems

vfs

文件系统选择

文件系统选择

创建文件系统

  1. mkfs命令:
    (1) mkfs.FS_TYPE /dev/DEVICE
    ext4(centos6)
    xfs(centos7)
    btrfs
    vfat
    (2) mkfs -t FS_TYPE /dev/DEVICE
    -L 'LABEL': 设定卷标(centos5 有)
    e2label /dev/sdb1 //查看卷标
    tune2fs -l /dev/sdb1 //也可以查看卷标;但只能看ext系列
    e2label /dev/sdb1 /mut/sdb1 //设置卷标为/mut/sdb1

建系统是后面可以加卷标

(3) mke2fs /dev/sdb3 //ext2 没有日志功能
(3) mke2fs -j /dev/sdb3  //ext3  -j 是加上日志功能

2. blkid 查看文件系统
3. tune2fs -l /dev/sdb1 //查看日志功能 有这个has_journal代表有日志功能
tune2fs -O has_journal /dev/sdb2 //给ext2 添加日志功能变成ext3
tune2fs -O ^has_journal /dev/sdb2 //给ext3 删除日志功能变成ext2

在centos6 /dev/sdb1 上建ext2系统之后再建系统会覆盖没提示
在centos7 /dev/sdb1 上建xft系统之后再建系统会提示您

  1. [root@centos6 ~]#tune2fs -l /dev/sdb1
  2. tune2fs 1.41.12 (17-May-2010)
  3. Filesystem volume name: <none>
  4. Last mounted on: <not available>
  5. Filesystem UUID: 8d328e36-97ec-4bee-9511-e6ed54344db5 //UUID
  6. Filesystem magic number: 0xEF53 //文件类型
  7. Filesystem revision #: 1 (dynamic)
  8. Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize //文件系统属性
  9. Filesystem flags: signed_directory_hash
  10. Default mount options: (none) //挂载选项 安装操作系统时有ACL 后期安装操作系统是没有ACL tune2fs -o acl /dev/sdb2 这个是添加acl 添加^acl 是删除 没有acl,之后设置acl就会失败 centos7默认有acl功能 centos6默认没有acl功能
  11. Filesystem state: clean //文件系统状态:干净;出现故障后 fsck /dev/sdb1 检查文件系统并修复 数据有可能丢失
  12. Errors behavior: Continue
  13. Filesystem OS type: Linux
  14. Inode count: 2000 //节点数 修改Inode大小 mkfs.ext4 -N 20000 /dev/sdb1
  15. Block count: 8000 //块数 Inode节点数超过块数没意义 浪费节点数 mkfs.ext4 -i 40960 /dev/sdb1 这个命令是为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小
  16. Reserved block count: 400 //保留块数 是给root 用的 设置保留块大小 mkfs.ext4 -m 1 /dev/sdb1 1:保留1% 不能太小 整理磁盘
  17. Free blocks: 6676
  18. Free inodes: 1989
  19. First block: 1
  20. Block size: 1024 //块数:一块大小 文件在小 假如:内容1字节 空间占用1024字节 设置块占用大小 mkfs.ext4 -b 2048 /dev/sdb1
  21. Fragment size: 1024
  22. Reserved GDT blocks: 31
  23. Blocks per group: 8192
  24. Fragments per group: 8192
  25. Inodes per group: 2000
  26. Inode blocks per group: 250
  27. Flex block group size: 16
  28. Filesystem created: Sun Dec 3 10:42:32 2017 //文件系统创建时间
  29. Last mount time: n/a //最后挂载时间
  30. Last write time: Sun Dec 3 10:42:32 2017 //最后一次写时间
  31. Mount count: 0 //挂载次数
  32. Maximum mount count: 34 //达到最大挂载数 执行系统检查 fsck /dev/sdb1 检查文件系统
  33. Last checked: Sun Dec 3 10:42:32 2017
  34. Check interval: 15552000 (6 months) //达到六个月 执行系统检查 fsck /dev/sdb1 检查文件系统
  35. Next check after: Fri Jun 1 10:42:32 2018
  36. Lifetime writes: 1401 kB
  37. Reserved blocks uid: 0 (user root) //保留块
  38. Reserved blocks gid: 0 (group root) //保留块
  39. First inode: 11
  40. Inode size: 128 //一个inode记录占用磁盘的空间大小 默认128---4096
  41. Journal inode: 8
  42. Default directory hash: half_md4
  43. Directory Hash Seed: 4ddeddea-581d-455d-af1d-645f589699b9
  44. Journal backup: inode blocks

创建ext文件系统

  1. mke2fsext系列文件系统专用管理工具
  2. -t {ext2|ext3|ext4}
  3. -b {1024|2048|4096}
  4. -L 'LABEL'
  5. -j: 相当于 -t ext3
  6. mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
  7. -i #: 为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小
  8. -N #:指定分区中创建多少个inode
  9. -I 一个inode记录占用的磁盘空间大小,128---4096
  10. -m #: 默认5%,为管理人员预留空间占总空间的百分比
  11. -O FEATURE[,...]:启用指定特性
  12. -O ^FEATURE:关闭指定特性

文件系统标签

  1. 指向设备的另一种方法
  2. 与设备无关
  3. blkid:块设备属性信息查看
    blkid [OPTION]... [DEVICE]
    -U UUID: 根据指定的UUID来查找对应的设备
    -L LABEL:根据指定的LABEL来查找对应的设备
  4. e2label:管理ext系列文件系统的LABEL
    e2label DEVICE [LABEL]
  5. findfs :查找分区
    findfs [options] LABEL=
    findfs [options] UUID=
  1. [root@centos6 ~]#blkid -U `sed -rn 's#^UUID=(.*) /app .*#\1#p' /etc/fstab` //查找设备名
  2. /dev/sda3

tune2fs

  1. tune2fs:重新设定ext系列文件系统可调整参数的值
  2. -l:查看指定文件系统超级块信息;super block
  3. -L 'LABEL':修改卷标
  4. -m #:修预留给管理员的空间百分比
  5. -j: ext2升级为ext3
  6. -O: 文件系统属性启用或禁用, O ^has_journal
  7. -o: 调整文件系统的默认挂载选项,–o ^acl
  8. -U UUID: 修改UUID
  9. dumpe2fs
  10. 块分组管理,32768
  11. -h:查看超级块信息,不显示分组信息

超级块和inode table

文件系统选择

超级块:

  1. 1. 前面都有一个MBR
  2. 2. 在第二个主分区,
  3. 3. 有一个所谓第一个扇区Boot Sector;如果是EXT2文件系统EXT2 File System
  4. 4. 做了分组叫块组第一个Block Group 0 .....Block Group N
  5. 5. 每个块库自己的:
  6. Super Block :超级块 所谓的分组;从哪到哪一个分组块组;每个文件系统元数据;超级块会默认备份,每个分组(块组)前面都有,但不全的都有
  7. GDT :组的描述信息
  8. Block Bitmap:位映射 记录所有块占用还是没占用0没占用1占用
  9. iNode Bitmap:记录节点编号用了还是没用
  10. inode Table:书的目录;包括节点号,节点类型,属性,链接号,UIDGID...还有个指针(记录书的内容在哪里那个块)
  11. Data Blocks:数据块;书的内容

dumpe2fs /dev/sdb2 //查看分区的分组情况 记录里面一个分组几个块,还有超级块的位置;超级块的备份

  1. [root@centos6 ~]#mkfs.ext3 /dev/sdb1 创建块的也可以看到超级块的备份在哪里
  2. mke2fs 1.41.12 (17-May-2010)
  3. ......
  4. Superblock backups stored on blocks:
  5. 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632 //超级块的备份在哪里
  6. ......

破坏超级块

  1. [root@centos6 ~]#dd if=/dev/zero of=/dev/sdb2 bs=1M count=10
  2. 10+0 records in
  3. 10+0 records out
  4. 10485760 bytes (10 MB) copied, 0.107903 s, 97.2 MB/s
  5. [root@centos6 ~]#dumpe2fs /dev/sdb3
  6. dumpe2fs 1.41.12 (17-May-2010)
  7. dumpe2fs: Bad magic number in super-block while trying to open /dev/sdb3
  8. Couldn't find valid filesystem superblock.
  9. [root@centos6 ~]#fsck -a /dev/sdb2 //自动修复

文件系统检测和修复

  1. 常发生于死机或者非正常关机之后
  2. 挂载为文件系统标记为“no clean”
  3. 注意:一定不要在挂载状态下修复
  4. fsck: File System Check
    fsck.FS_TYPE
    fsck -t FS_TYPE
    -p: 自动修复错误
    -r: 交互式修复错误
    FS_TYPE一定要与分区上已经文件类型相同
  5. e2fsck:ext系列文件专用的检测修复工具
    -y:自动回答为yes
    -f:强制修复
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注