设备类型分为字符设备和块设备
主设备号用来标识设备类型,次设备号标识同一类型下的不同设备
硬盘设备命名:
scsi,sata,sas,usb:/dev/sd
不同设备/dev/sda /dev/sdb
同一设备不同分区:/dev/sda1,/dev/sdb2……
硬盘:
一片磁盘的一面叫做盘面,一张盘片有两个盘面
每个盘面有一个磁头,最多有256个,即256个盘面
硬盘以扇区为最小单位,一个扇区的大小为512字节
由扇区组成的圆环称为磁道,一个盘面有1024个磁道
柱面是由不同盘面上的同一磁道组成
CHS:早期的寻址方式,以柱面为单位划分,不同磁道扇区数相同
LBA:现在的寻址方式,以扇区为单位划分,不同磁道的扇区数不同
两种分区方式:MBR,GPT
MBR以32位表示扇区数,分区最大不超过2T
0磁道0扇区为MBR共512字节,前446字节为bootloader(版本分为grub,grub2),接下来64个字节为分区表,用16字节表示一个分区,所以最多可以分4个分区(主分区+扩展分区),最后两个字节为55aa的mbr标识位
16字节的分区表:第一个字节标识是否为活动分区,2-4字节标识chs的开始位置,5字节标识是否使用此分区,6-8字节标识chs结束位置,9-12字节标识lba起始位置,13-16标识lba结束位置
扩展分区的前512字节ebr:前446字节未使用,后64字节为分区表,最后两位为标识位
扩展分区64位分区表:前16字节记录当前分区信息,17-32字节记录下一分区ebr位置,剩下的则未使用,格式与mbr分区表相同
GPT:使用128位表示扇区数,支持128个主分区,分区支持8z(块大小为512字节),64z(块大小为4k),使用128位表示UUID表示磁盘,UUId和GPT分区表自动备份在头尾两份,并有CRC校验位
一个块组有32768个块
dd命令复制 if=输入的文件 of=输出的文件 bs:块大小 count:块的数量
skip:输入时跳过的块数,总大小bs*count
seek:输出时跳过的块数,若不加conv=notrunc原文件后面的数据会被删除,总大小为bs*count+bs*seek
hedump:二进制查看工具 -n:查看字节数
新加硬盘后要触发硬盘:echo” – – – ”>/sys/class/scsi_host/host2/scan
查看块设备的三种方法:lsblk、/dev/sd*、/proc/partitions
fdisk:创建mbr分区,也支持gpt,一块硬盘最多管理15个分区
gdisk:创建gpt分区
parted /dev/#:非交互式创建分区,要先选择分成gpt还是msdos后再分区
mklable gpt|msdos 选择创建mbr分区还是gpt分区
mkpart primary 创建基本分区
rm# 删除分区
print显示信息
-l 显示全部硬盘信息
分区后如果出现警告要使用partprobe重读分区表
在centos 6上增加使用partx –a命令重读分区表,删除时使用partx –d –nr 命令重读分区表
文件系统是设备上组织文件的方法
raw是未经处理或未经格式化的文件系统
文件系统按照是否有日志系统分为日志性文件系统和日志性文件系统
日志性文件系统:ext2,vfat
日志性文件系统:ext3,ext4,xfs
ext2与ext3本质上是相同的只是差了一个日志系统
vfat文件系统内文件默认有执行权限,不区分大小写
linux通过虚拟文件系统vfs弥合不同文件系统的差异
一个块只能存储一个文件的信息
调用设备时可以使用设备名,卷标或UUID
mkfs:文件系统管理工具
mke2fs:ext系列文件系统管理工具
-t:指定文件系统 -b:块大小 -L:卷标 -j :创建ext3文件系统 -i:多少字节分配一个inode号 -N:指定多少个inode -I:每个innode的大小 -m:为管理员预留的空间百分比 -O :启用指定特性 -O ^#: 关闭指定特性
blkid:块设备属性查看器
-U:按UUID查找设备
-L:按照卷标查找设备
e2lable:ext系统卷标管理器
findfs:查找分区
tune2fs:重新设定ext文件系统参数(有些参数在格式化后不能更改)
-l:查看指定文件系统超级块信息 -L:修改卷标 -m:修改留给管理员空间百分比
-O:文件系统属性起禁用 -o:默认挂载选项 -U:修改UUID -j:将ext2转化为ext3
dumpe2fs:查看超级块及分组详细信息
uuidgen:生成UUID
fsck:文件系统检测修复工具(使用时要在非挂载情况下进行,不然会破坏分区)
-a:自动修复错误 -r:交互式修复错误
e2fsck:ext系列专用文件系统检测修复工具
-y:自动回答yes -f:强制修复
fuser:查看当前挂载点进程信息
-km:将所有使用此挂载点进程结束
lsof也可以查看挂载点进程
mount:挂载
-t:指定文件系统(一般可以自动识别) -r:只读挂载 –w:读写挂载
-a:自动挂载所有支持自动挂载的设备(定义在/etc/fstab中且挂载选项为auto)
-l:以指定卷标挂载 -U:以指定UUID挂载设备 -B:绑定目录到另一个目录
mount –o:默认挂载选项 sdync:异步 sync:同步 atime/noatime 是否更新atime(包含目录及文件) diratime/nodiratime是否更新atime auto/noauto是否自动挂载 exec/noexec是否在该文件系统上运行程序 dev/nodev是否支持在该文件系统上使用设备文件 suid/nosuid是否支持suid和sgid ro只读 rw读写 user /nouser是否允许普通用户挂载该设备 acl /noacl:是否开启acl remount:重新挂载
分完区要立即进行同步,不能多次分区后再同步
/etc/fstab文件格式:
设备 挂载点 文件系统类型 挂载选项 转储频率 自检次序(0为不检测)
自检次序最好写0,不然设备出问题会导致系统不能启动
当设备名写错后进入系统只能识别根目录的挂载,并且是只读模式,要用rw重新挂载才能修改fstab
光盘的文件系统是iso9660,设备名为/dev/sr0或/dev/cdrom
用文件做分区时,不用创建分区,直接创建文件系统,用blkid看不到,但是加上设备名能够查到信息,挂载时要用-o loop选项,写fsstab时选项要写loop
目录挂载目录时fstab的文件系统要写none,默认选项要写bind
losetup /dev/loop# #/#/#将目录与loop设备关联起来
查看生效的swap分区cat /proc/swaps
新增swap分区
1.分区,并将格式改为swap
2.创建swap文件系统 mkswap
3.写入fstab,在默认选项写pri=#为指定优先级,值越大优先级越高,最大为32767
4.swapon –a 自动挂载写入fstab的swap分区
swapon:开启swap设备
-s:查看当前生效的swap分区 -p指定优先级
swapoff:禁用swap设备
注:swapon –a和mount –a会读取fstab文件,直接使用命令则不会读取该文件
lsmod查看当前生效的模块
使用u盘时要用sync命令进行同步,防止异步写入
eject弹出光驱 -t:弹回光驱
制作iso镜像: cp /#/# /#/#.iso
把目录制作成iso镜像 mkisofs -r –o #.iso /#/#
刻录光盘: wodim –v –eject #.iso
free:查看内存,默认以k为单位 -m:以M为单位 -g:以G为单位 -h:以易读格式显示
butters:元数据缓存 cache:数据缓存
df:查看文件系统的挂载信息,默认以k为单位(只能查看文件系统,文件夹查看不到) -H:以1000位单位 -T:文件系统类型 -h:以易读格式显示 –i:以inode显示
-P:以与posix兼容格式输出
inide用完会显示空间满
du:显示大小 -s:只显示汇总信息 -h:以易读格式显示
备份并压缩:dd if=/#/#|gzip>/#/#
解压恢复:gzip –dc /#/#|dd of=/#/#
销毁数据:dd if=/dev/urandom of=/#/#
dd命令也可以用来测试磁盘的读写速度,找出适合的块大小
修复磁盘: dd if=/#/# of=原文件
磁盘配额:以文件系统为单位,对不同的组或用户策略不同,根据块或节点进行限制
初始化:分局挂载选项 userquota grpquota
初始化数据库quotacheck
quotacheck -c:创建 -u:创建用户数据库 –g:创建组数据库
quotaon:启用数据库 -p:查看状态
edquota:编辑数据以k为单位
系统根据文件所有者计算配额
edquota –p #1 #2 把#1的磁盘配额复制给#2
直接在命令行完成配置setquota 用户名 块软限制 块硬限制 inode软限制 inode硬限制 文件系统目录名
过了宽限期软限制就和硬限制相同
创建quota数据库出错执行 setenforce 0
用getenforce检查是否关闭
raid实现方式:
外接式磁盘阵列、
内接式raid:主板集成raid控制器
软件raid:通过os实现
做raid的硬盘或分区要一样大,设备名为/dev/md#
raid将文件分为chunk
raid级别:
raid0: 读、写性能提升, 可用空间n*s无容错能力 最少磁盘数:2
raid1: 读性能提升、写性能略有下降,可用空间:n*s/2,有冗余能力 最少磁盘数:2
raid4: 多块数据盘异或运算值,存于专用校验盘,可用空间:n-1/n,有冗余能力 最少磁盘数:3
raid5: 多块数据盘异或运算值分散存于各盘,可用空间:n-1/n,有冗余能力 最少磁盘数:3
raid6: 多块数据盘异或运算值计算两次分散存于各盘,可用空间:n-2/n,有冗余能力 最少磁盘数:4
raid7: 自身带有处理器和管理工具,可以独立运行,理论性能最高
raid10: 读、写性能提升 可用空间n*s/2 有容错能力:每组镜像最多只能坏一块 最少磁盘数:4
raid01: 读、写性能提升 可用空间n*s/2 有容错能力:每组镜像最多只能坏一块 最少磁盘数:4
JBOD:将多块磁盘组合成一个大的空间
创建软件raid:mdadm[mode]<raiddevice>
支持级别:0,1,4,5,6,10
使用分区创建raid需要改格式
mdadm :
-C 创建: -a:自动创建raid设备的设备文件 -n:创建raid的设备个数 -x:空闲设备的个数 -l:raid的级别 -c:指定块的大小
-D:显示raid的详细信息
查看md#的状态 cat/proc/mdstat
管理模式: -f:模拟磁盘损坏 -a:增加磁盘 -r:移除磁盘
-G:增加raid新成员
ps:mdadm –G –n(加上原来成员的总数) -a /dev/#
生成配置文件:mdadm –Ds >/etc/mdadm.conf(若无配置文件则raid关闭后不能再启动)
mdadm –S停止raid
mdadm –A激活raid
mdadm –R 强制启动raid
raid的删除:
mdadm – -zero-superblock删除raid成员分区内信息
1. 停止raid服务
2. 取消挂载
3. 删除raid成员分区
4. 删除raid成员分区信息
原创文章,作者:zzzzz1357x1,如若转载,请注明出处:http://www.178linux.com/41774
评论列表(1条)
文章理论多于实践,对于理论部分可以通过图片来展示磁盘结构会更形象,同时更需要通过实践来加深自己的理解。