Liunx-- 总结
磁盘存储和文件系统
磁盘存储
机械硬盘: 盘片, 磁头, 盘片转轴及控制电机, 磁头控制器, 数据转换器, 接口, 缓存等几个部分组成
固态硬盘: 用固态电子存储芯片阵列而制成的硬盘, 由控制单元和存储单元 (FLASH 芯片, DRAM 芯片) 组成
一, 硬盘存储术语
head: 磁头
track: 磁道
cylinder: 柱面 -- 同一磁道称为柱
sector: 扇区, 512bytes
fdisk -l /dev/sd#-- 观察硬盘指标
CHS 用 24bit 位寻址
其中前 10 位表示 cylinder 柱面, 中间 8 位表示 head, 后面 6 位表示 sector 扇区
早期用 chs 方式寻址最大寻址空间 8GB 512 2^62^8*2^10
LBA(logical block addressing)
?LBA 是一个整数, 通过转换成 CHS 格式完成磁盘具体寻址
?ATA-1 规范中定义了 28 位寻址模式, 以每扇区 512 位组来计算, ATA-1 所定义的 28 位 LBA 上限达到 128 GiB.2002 年 ATA-6 规范采用 48 位 LBA, 同样以每扇区 512 位组计算容量上限可达 128 Petabytes
二, 磁盘两种分区方式: MBR,GPT
MBR 分区中一块硬盘最多有 4 个主分区, 也可以 3 主分区 + 1 扩展(N 个逻辑分区)
MBR 分区结构
硬盘主引导记录 MBR 由 4 个部分组成(0 磁道 0 扇区 512byte)
1. 主引导程序(偏移地址 0000H--0088H), 它负责从活动分区中装载, 并运行系统引导程序
出错信息数据区, 偏移地址 0089H--00E1H 为出错信息, 00E2H--01BDH 全为 0 字节
2. 分区表 (DPT,Disk|Partition|Table) 含 4 个分区项, 偏移地址 01BEH--01FDH, 每个分区表项长 16 个字节, 共 64 字节为分区项 1, 分区项 2, 分区项 3, 分区项 4
3. 结束标志字, 偏移地址 01FE--01FF 的 2 个字节值为结束标志 55AA
GPT 分区: GPT:GUID(Globals Unique Identifiers) partition|table(分区表)支持 128 个分区, 使用 64 位, 支持 8Z( 512Byte/block )64Z ( 4096Byte/block)
使用 128 位 UUID(Universally Unique Identifier) 表示磁盘和分区, GPT 分区表自动备份在头和尾两份, 并有 CRC 校验位
hexdump -C -n 512 /dev/sd#-- 查看硬盘前 512 字节
dd if=/dev/sda of=/data/mbr bs=1 count=64--dd 备份分区表(分区表放在它处)
... 分区工具
parted 命令的操作都是实时生效的, 小心使用
用法: parted [选项]... [设备 [命令 [参数]...]...]
parted /dev/sdb mklabel gpt|msdos-- 打标记然后进行分区 gpt|msdos
parted -l 查看 partition Table:gpt 列出分区信息
parted /dev/sdb print 打印分区信息
parted /dev/sdb mkpart primary 1 200 (默认 M)-- 分区连续分区不要跳着分
parted /dev/sdb rm 1 删除分区
fdisk mbr 和 gdisk gpt-- 命令格式基本相同不做赘述
fdisk /dev/sd# 交互式管理分区
p 分区列表
t 更改分区类型改 id
n 创建新分区 - p 主(1-4)e 扩展 默认 1 开始自设 + 2M\G\K
-- 分区需要注意连续分区, 不要跳着分
d 删除分区 对应分区数字 分区数字易改变
v 校验分区
u 转换单位
w 保存并退出 出去立马执行才会更改
q 不保存并退出
.. 分过区可能会出现内存中未加载新分区的信息
- lsblk
- ll /dev/sdb*
cat /proc/partitions-- 到这都是看内存中的硬盘信息
fdisk -l /dev/sd#-- 看到某硬盘的所有分区状态
partprobe 同步硬盘信息 entOS 5,7
....
centos6 partx -a /dev/DEVICE 创建时同步
partx -d --nr 6-7 /dev/DEVICE 删除时同步
文件系统
文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构; 即在存储设备上组织文件的方法. 操作系统中负责管理和存储文件信息的软件结构称为文件管理系统, 简称文件系统
查看系统支持的文件系统:/lib/modules/uname -r/kernel/fs
各种文件系统:
ext4: 是 ext 文件系统的最新版. 提供了很多新的特性, 包括纳秒级时间戳, 创建和使用巨型文件(16TB), 最大 1EB 的文件系统, 以及速度的提升
xfs:SGI, 支持最大 8EB 的文件系统
btrfs(Oracle), reiserfs, jfs(AIX), swap
光盘: iso9660
- Windows:FAT32, exFAT,NTFS
- Unix: FFS(fast), UFS(unix), JFS2
网络文件系统: NFS, CIFS
集群文件系统: GFS2, OCFS2(oracle)
分布式文件系统: fastdfs,ceph, moosefs,mogilefs, glusterfs, Lustre
RAW: 未经处理或者未经格式化产生的文件系统
lsblk -f 查看文件系统
一, 创建文件系统命令 (下面命令两两一组, 每组的选项基本通用)
mkfs 命令
- (1) mkfs.FS_TYPE /dev/DEVICE
- ext4-xfs-btrfs-vfat
- (2) mkfs -t FS_TYPE /dev/DEVICE
-L 'LABEL' 设定卷标
-f 强制对已经存在 xfs 重装
mkfs -b 设置快大小以快为单位
mke2fs:ext 系列文件系统专用管理工具
-t {ext2|ext3|ext4} 指定文件系统类型
-b {1024|2048|4096} 指定块大小
-L 'LABEL' 设置卷标
-j 相当于 -t ext3
- mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
- -i# 为数据空间中每多少个字节创建一个 inode; 不应该小于 block 大小
- -N # 指定分区中创建多少个 inode
-I 一个 inode 记录占用的磁盘空间大小, 128---4096
-m # 默认 5%, 为管理人员预留空间占总空间的百分比
-O FEATURE[,...] 启用指定特性
-O ^FEATURE 关闭指定特性
tune2fs 设定 ext 系列文本系统可调整参数的值
-l 查看指定文件系统超级块信息; super block
-L 'LABEL' 修改卷标
-m # 修预留给管理员的空间百分比
-j 将 ext2 升级为 ext3
-O 文件系统属性启用或禁用, -O ^has_journal
-o 调整文件系统的默认挂载选项,-o ^acl
-U UUID 修改 UUID 号
dumpe2fs: 将磁盘块分组管理
-h: 查看超级块信息, 不显示分组信息
文件系统检测和修复: 常发生于死机或者非正常关机之后
挂载为文件系统标记为 "no clean"
注意: 一定不要在挂载状态下修复
fsck: File System Check--fsck /dev/sdb3 -y(自动回答)修复数据任然丢失
- fsck.FS_TYPE
- fsck -t FS_TYPE
-p 自动修复错误
-r 交互式修复错误
FS_TYPE 一定要与分区上已经文件类型相同
e2fsck:ext 系列文件专用的检测修复工具
-y 自动回答为 yes
-f 强制修复
...
centos6 etx4 后续添加硬盘分区没有 acl 权限
- fdisk n e +100M
- mkfs.etx4 /dev/sda6
- tune2fs -l /de/sda6
挂载 进入磁盘设置 acl 权限
tune2fs -o acl /dev/sdb6 添加 acl 权限
tune2fs -o ^acl /dev/sdb6 去
- --max-depth=# 指定最大目录层级
- ...
- dd if=/dev/zero of=/data/bigfile bs=1M count=1023 seek=2048
- mkfs.ext4 /data/bigfile
- losetup -a
- losetup -d
- ....
- ...
- /dev/sdr6 /mnt/sda6 ext4 defaults 0 3
- dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
- dd if=/dev/zero of=/root/1Gb.file bs=2048 count=500000
- dd if=/dev/zero of=/root/1Gb.file bs=4096 count=250000
来源: http://www.bubuko.com/infodetail-3002611.html