linux磁盘盘快组成,linux磁盘管理

硬盘接口类型:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值