硬盘接口类型:
IDE:并口,133M/s;100个IO/s
SCSI:并口,UltraSCSI320,320M/s UltraSCSI640 640M/s 150-200IO/s
SATA:串口,6Gbps/8=750M/s 100IO/s
SAS:串口,6Gpbs
USB:串口 480M/s
注意:上述速度指的是接口定义的最快速度,但实际传输可能到不到上面所述的速度。
lops:每秒能完成多少个IO,每个IO就是一次存取操作,机械硬盘 400IO/s。
设备类型:
块设备:随机访问,数据交换单位是“块”
字符设备:线性访问,数据交换单位是“字符”
设备文件:存储数据指针的空间当中存储的是设备号,位图索引,关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信。
设备号:
major:主设备号,区分设备类型,用于标明设备所需要的驱动程序
minor:次设备号,区分同种类型下的不同设备,是特定设备的访问入口
引用设备的方式:
设备文件名
卷标
UUID:可以唯一标识一个设备
磁盘的基础知识:
盘面最外侧是0磁道,依次往里递增(0磁道存放MBR)
扇区固定大小512个字节
磁道一圈最多63个扇区
磁道最多1024个
磁头数等同于盘面数最多256个
柱面的大小=扇区大小*扇区数*盘面数=512字节*63个*256个=7.875M
磁盘的三维:CHS —cylinder 柱面 head 磁头 secotr 扇区
磁盘分区:
两种分区方式:
MBR:Master Boot Record, 使用32位表示扇区,分区不能超过2T数, 分区不超过2T,cenots6 按照柱面分区,cenots7按照扇区分区,0磁道0扇区主引导分区MBR 512字节,446引导程序,64分区表,16B引导一个分区,最多4个分区,2bytes,55AA,用于标识硬盘是否分区,且最多4个主分区或3个主分区+1扩展(N个逻辑分区)。
注意:MBR位于0磁道0扇区的主活动分区,每块逻辑分区都有自己的EBR,当我们备份主分区的MBR时:dd if=/dev/sda of=/testdir/mbrbak bs=1 count=512 , 要求还原的硬盘与备份的硬盘大小一致,此时恢复只能恢复主分区的,不能恢复逻辑分区。
dd if=/dev/zero of=/dev/sdd bs=1 count=2 skip=510 seek=510 覆盖55AA
hexdump -C -n 512 /dev/sda 以二进制形式查看/sda设备的前512个字节
-v 显示所有信息
-C 以二进制形式显示
有一个大与2K的二进制文件fileA。 现在想从第64个字节位置开始读取,需要读取的大小是128Byts。又有fileB, 想把上面读取到的128Bytes写到第32个字节开始的位置,替换128Bytes,请问如何实现?
dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc
GPT: Globals Unique Identifiers,partition table 支持128个分区,使用64位,支持8Z(512Byte/block ) 64Z (4096Byte/block)
使用128位UUID 表示磁盘和分区 GPT分区表自动备份在头和尾两份,并有CRC校验位
UEFI (统一扩展固件接口)硬件支持GPT,使操作系统启动
磁盘的组成部分:
1、MBR:主引导分区512bytes,446引导程序,64分区表,16B引导一个分区,最多4个分区,2bytes,55AA,用于标识硬盘是否分区。
2、super block: 存放块组信息,记录的是inode和block 应该有多少个block,已用多少,剩余多少。
3、inode:有文件存储在block的时候,在inode的位置都会有该文件相关的记录,记录该文件的属性信息,user、group等,也会指明该文件存放在那个block里,相当与目录,内容存在block中。
4、block:存储内容的,每一个block成为一个块,默认是4k,block是真正存储文件的地方,当一个block存储数据后,如果有剩余也不 能存储其他文件了,文件1k,block4k,该block也不能用了,划分分区的时候可以指定block的大小,如存储12k的文件,会占用3个 block,如果说一个block1k那么会占用12个block,那么读取的block会比价多,寻到时间会比较长,效率比较低。
Block group的组成部分:
第一部分:存储的是super block
第二部分:文件系统的描述信息,比如每个block group是从第几个开始到第几个block结束。
第三部分:块位图/块对照表 那些block没有被使用,哪些被使用了
第四部分:inode位图 哪些inode被使用,哪些剩余
第五部分:inode表 每记录一个文件都会在inode写相应的条目,保存文件的属性信息,每记录将消耗128B的空间,每次指向一个block块将消耗4B,一共可指向32个块。
磁盘管理相关命令:
列出设备:
lsblk
cat /proc/partitions
ls /dev/sd*
注意:上述三种方法列出内存中的设备信息,可能会存在不同步的问题。
系统添加硬盘后让其识别的方法:
echo "- – -" > /sys/class/scsi_host/host2/scan centos6 上添加硬盘之后,让系统识别
echo "- – -" > /sys/class/scsi_host/host0/scan centos7
创建、编辑分区:
fdisk:
1、查看磁盘的分区信息
fdisk -l device:查看指定磁盘的设备的分区信息
fdisk -lcu 以扇区的形式显示 centos6 默认是以柱面单位显示分区的
2、管理分区
fdisk提供了一个交互式接口来管理分区,它有许多子命令,分别用于不同的管理功能,所有操作都在内存中完整,没有直接同步到磁盘,只有当执行保存w命令时才同步到磁盘。
常用命令:
d: 删除
n: 新建
p: 列出
t: 调整分区ID
l: 列出内核支持的分区ID
w: 保存退出
q: 不保存退出
注意:在已有的分区或者已经创建挂载的分区上面创建新的分区,内核可能无法立即识别,需要重新通知内核识别。
parted:
parted的操作都是实时生效的,小心使用
用法: parted [选项]… [设备 [命令 [参数]…]…]
parted /dev/sdb mklabel gpt|msdos 将磁盘类型转换为gpt 或msdos形式
parted /dev/sdb print 打印当前分区
parted /dev/sdb mkpart primary 1 200 (默认M) 划分一个起始位置为1,大小为200M的分区
parted /dev/sdb rm 1 删除第一个分区
通知内核重新识别新的分区:
新增分区用
partx -a -n M:N /dev/DEVICE
kpartx -a /dev/DEVICE -f: force
删除分区用
partx -d -n M:N /dev/DEVICE
centos6: –nr N-M
CentOS 5, 7: 使用partprobe(此命令在centos6中不起作用)
partprobe [/dev/DEVICE]
文件系统:
文件系统类型:
Linux文件系统: : ext2(Extended file system), ext3,ext4, xfs( SGI) , btrfs( Oracle) , reiserfs, jfs(AIX) , swap
光盘: iso9660
Windows: fat32, ntfs
网络文件系统: NFS, CIFS
集群文件系统: GFS2, OCFS2( oracle)
分布式文件系统: ceph, moosefs, mogilefs, glusterfs,Lustre
RAW:未经处理或者未经格式化产生的文件系统
文件系统分类:
根据其是否支持"journal"功能:
日志型文件系统: ext3, ext4, xfs, …
非日志型文件系统: ext2, vfat
文件系统的组成部分:
内核中的模块: ext4, xfs, vfat
用户空间的管理工具: mkfs.ext4, mkfs.xfs,mkfs.vfat
Linux的虚拟文件系统: VFS
查前支持的文件系统: cat /proc/filesystems
文件系统的管理工具:
创建文件系统的工具:mkfs mke2fs
检测及修复文件系统的工具:fsck e2fsck(ext文件系统专用)
查看文件系统的属性的工具:tune2fs dumpe2fs
查看或设定卷标的工具:e2label
查看文件系统的UUID和文件系统类型、卷标:blkid
查看磁盘的使用情况:df
查看目录的大小:du
查找分区:findfs
查看当前系统上挂载的设备:mount | cat /etc/mtab | cat /proc/mounts
查看挂载点被哪个程序或进程所占用:lsof | fuser -v
终止所有正在被访问的挂载点进程:fuser -km
mke2fs:
mke2fs [option] device
-t{ext2|ext3|ext4}:指明要创建的文件系统类型。
-L LABEL:指明卷标
-b{1024|2048|4096}:指明块大小
-j:创建有日志功能的文件系统ext3
mke2fs -j = mke2fs -t ext3 = mkfs.ext3
-i#:bytes-per-inode,每多少个字节一个inode,指明inode与字节的比例,此大小不应该小于block的大小。
-I :一个inode记录大小128—4096
-N#:直接指明要给此文件系统创建的inode数量
-m#:指定预留空间的百分比,默认5%
-O FEATURE[,…]:启用指定特性
-O ^FEATURE:关闭指定特性
e2label:
e2label device:查看卷标
e2label device LABEL 设定卷标
findfs:
findfs [options] LABEL=labelname
findfs [options] UUID=uuid
tune2fs:
-l device:查看超级快的属性信息
-L LABEL:指明卷标
-m#:指定预留给管理员的空间百分比
-O[^]feather:开启或关闭某中特性
tune2fs -O ^has_journal /dev/sda3 关闭日志功能
tune2fs -O has_journal /dev/sda3 开启日志功能
-o[^]mount_options:开启或关闭某种挂载选项
tune2fs -o acl /dev/sda3 默认挂载到acl
-j: 将ext2升级为ext3
-U UUID: 修改UUID号
dumpe2fs命令:显示ext文件系统的属性信息(超级快和块组的信息)
dumpe2fs [-h] /dev/sda5
e2fsck:
-y:对所有问题自动回答为yes
-f:及时文件系统处于clean状态,也要强制进程检测
fsck:
-t:指明文件系统类型
-a:无需交互自动修复错误
-r:交互式修复
因进程意外终止,或者系统崩溃等原因导致正常操作终止,可能造成文件系统损坏,此时应该检测并修复文件系统,建议离线进行,不要挂载。
blkid:
-L LABEL:根据LABEL定位设备
-U UUID:根据UUID定位设备
df:
-T:显示系统类型
-l:显示本地文件的信息
-h:human-readable
-i:显示inode的状态而非block
du:
du -sh /etc 查看/etc/目录的大小
swap交换分区:
创建交换分区:mkswap
-L LABEL:指明卷标
启用/禁用:swapon/swapoff
挂载mount
根文件系统之外的文件系统要想能够被访问,都必须通过“关联”至根文件系统上面的某个目录来实现,此关联操作即为挂载,目录即为挂载点。
挂载点:用于作为另外一个文件系统的访问入口
1、事先存在,
2、应该未被使用或不被其他进程使用到的目录
3、挂载之后原有的文件将会被隐藏
mount的常用选项:
-r:只读挂载,光驱
mount -r /dev/cdrom /media/media
-w:读写挂载
-n:默认情况下,设备挂载或卸载的操作会同步更新至/etc/mtab中,-n禁用此特性
-t vfstype:指明要挂载的设备上文件系统的类型,可省略,此时mount会自动通过blkid自动识别文件系统的类型、
-a:自动挂载所有/etc/fstab文件中支持自动挂载的设备
-L LABEL:挂载时以卷标的方式指明设备
mount -L LABEL /media
-U UUID:挂载以UUID的方式指明设备
mount -U UUID dir
-B, –bind: 绑定目录到另一个目录上
-o option选项:
sync/async:同步(内存更改时,同时写磁盘)/异步操作
atime/noatime:文件或目录被访问的时候是否更改其时间戳
diratime/nodirname:目录被访问的时候是否更改时间戳
remount:重新挂载
acl:支持使用facl功能
ro:只读
rw:读写
uto/noauto: 是否能够被mount -a选项自动挂载
dev/nodev:此设备上面是否允许创建设备文件
exec/noexec:是否允许运行此设备上面的程序文件
user/nouser:是否允许普通用户挂载此文件系统
suid/nosuid:是否允许程序文件上面的suid生效
default:rw nosuid exec auto nouser async reatime
查看挂载情况:
mount
cat /etc/mtab
cat /proc/mounts (最全)
查看正在访问指定文件系统的进程:
lsof MOUNT_POINT
fuser -v MOUNT_POINT
终止所有在正访问指定的文件系统的进程:
fuser -km MOUNT_POINT
取消挂载:
umount DEVICE
umount MOUNT_POINT
补充:centos7 添加misc 文件夹的方法
yum install autofs -y
systemctl start autofs
原创文章,作者:Naruto,如若转载,请注明出处:http://www.178linux.com/40448