Linux 磁盘管理
发布时间:2022-11-05 12:47:14 所属栏目:Linux 来源:
导读: 磁盘管理
Linux思想一切皆文件:
open(),read(),write(),close()
I/O 设备地址
设备类型:
块设备:block,存取单位“块”,磁盘 (随机访问)
字符
Linux思想一切皆文件:
open(),read(),write(),close()
I/O 设备地址
设备类型:
块设备:block,存取单位“块”,磁盘 (随机访问)
字符
|
磁盘管理 Linux思想一切皆文件: open(),read(),write(),close() I/O 设备地址 设备类型: 块设备:block,存取单位“块”,磁盘 (随机访问) 字符设备:char,存取单位“字符”,键盘 (逻辑访问) 设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通讯。 设备编号: ll /dev/sda* root disk 8.0 root disk 8.1 每一个设备都拥有一个主要号码,代表设备的类型,第二个是同一类型的唯一编号。 硬盘接口类型: 并行: IDE:133MB/s (家用) SCSI:640MB/s (服务器) 串口: SATA:6Gbps (家用) SAS:6Gbps (服务器) USB:480MB/s rpm:rotations per minute 每分钟的转速 磁盘设备的设备文件命名:/dev/DEV_FILE IDE: /dev/hd SCSI, SATA, SAS, USB: /dev/sd 不同设备:a-z /dev/sda, /dev/sdb, … 同一设备上的不同分区:1,2, … /dev/sda1, /dev/sda5 磁头 head 2磁头数 =1盘片 磁道 track 扇区 sector (512字节) head 256 磁头 track 1024 磁道 secror 63 扇区 CHS(culinder柱面) culinder=track*head=512*63*256=8M (centos6版本之后就不用整个柱面分区) LBA 逻辑寻址(6版本之后就使用) 分区 两种分区方式:MBR ,GPT MBR: Master Boot Record,1982年,使用32位表示扇区数,分区不超过2T 如何分区:按柱面 0磁道0扇区:512bytes 446bytes:boot loader 64bytes:分区表 16bytes:标识一个分区 2bytes:55AA (识别是否有分区) 4个主分区;3主分区+1扩展(N个逻辑分区) GPT:GUID(Globals Unique Identifiers)partition table 支持128个分区,使用64位,支持8Z(512Byte/block )64Z (4096Byte/block) 使用128位UUID 表示磁盘和分区GPT分区表自动备份在头和尾两份,并有CRC校验位 UEFI (统一扩展固件接口)硬件支持GPT,使操作系统启动 EFI部分又可以分为4个区域:EFI信息区(GPT头)、分区表、GPT分区、备份区域 linux 使用的分区方式 lilo grub (5,6版本) grub2(7版本之后使用) echo "- – -"> /sys/class/scsi_host/host0/scan 扫描新添加的硬盘 (查看分区) lsblk 查看硬盘信息 (读取内存中的信息) fdisk -l /dev/sdd 查看硬盘信息 hexdump -C -n 512 /dev/sda 查看磁盘前512字节的信息 dd if=/dev/sda of=/testdir/mbrbak bs=1 count=512 备份mbr dd if=/testdir/mbrbak of=/dev/sdd 将磁盘中备份的磁盘信息放到sdd dd if=/dev/zero of=/dev/sdd bs=1 count=446 将前446字节用0替代 dd if=/dev/zero of/=dev/sdd bs=1 count=2 skip=510 seek=510 用0代替最后两个字节的分区标识55AA。 最后两位字节存储标识的55 AA变成00 00 dd if=/testdir/mbrbak of=/dev/sdd bs=1 count=2 skip=510 seek=510 恢复分区标识 管理分区 列出块设备 lsblk 创建分区使用: fdisk创建MBR分区,也支持GPT,对于一块硬盘,最多只能管理15分区 fdisk /dev/sdc w:存盘退出 n:添加一个新的分区、柱面为单位, p:显示 d:删除 q:不保存退出 t:更改分区类型 gdisk创建GPT分区 查看内核是否已经识别新的分区: cat /proc/partations partx -a /dev/sda (6使用这个指令) partprobe 同步 GNU parted高级分区操作(创建、复制、调整大小等等) parted /dev/sdc mklabel msdos 创建新的磁盘格式为MBR parted /dev/sdc mklabel gpt 创建新的磁盘格式为GPT fdisk -l /dev/sdc 查看分区的起始到结束点,块的数量,ID parted /dev/sdc/mkpart primary 1 1024 起始点 终止点 ? ? ?创建一个分区 parted /dev/sdc/ rm 1 删除/dev/sdc 第一个分区 partprobe-重新设置内存中的内核分区表版本 文件系统 文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构; 即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统。 从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件Linux 磁盘管理,控制文件的存取,安全控制,日志,压缩,加密等。 ext3(centos5) ext4(centos6) xfs(centos7) 光盘:iso9660 网络文件系统:NFS,CIFS (Linux包 samba) 集群文件系统: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 lsmod 可以查看设备的驱动是否安装成功 创建文件系统 mkfs. mkfs -t ext4 mke2fs mke2fs /dev/sdc1 建立ext文件系统 一个块=4k tune2fs -l /dev/sd* 超级块是存储关于块的数据,块的大小,块的元数据。 组超级块,存储块的大小,和每个组有多少块,块的元数据。 超级块会自动备份。 blkid 查看盘的文件系统 tun2fs -o ^has_journal /dev/sd* 移除 日志功能,ext3变ext2 创建ext文件系统 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 tune2fs -m 0 /dev/sda5 -i#: 为数据空间中每多少个字节创建一个inode;此大小不应该小于block的大小 -N#:为数据空间创建个多少个inode -I 一个inode记录大小128—4096 -m #: 默认5%,为管理人员预留空间占总空间的百分比 -O FEATURE[,…]:启用指定特性 -O ^FEATURE:关闭指定特性 文件系统标签 blkid:块设备属性信息查看 -U UUID: 根据指定的UUID来查找对应的设备 -L LABEL:根据指定的LABEL来查找对应的设备 e2label /dev/sdc2 /mnt/sdc2 加卷标 tune2fs tune2fs:重新设定ext系列文件系统可调整参数的值 -l:查看指定文件系统超级块信息;super block -L 'LABEL':修改卷标 -m #:修预留给管理员的空间百分比 -j: 将ext2升级为ext3 -O: 文件系统属性启用或禁用,–O ^has_journal -o: 调整文件系统的默认挂载选项,–o ^acl -U UUID: 修改UUID号 ecntos6 手动分区格式化ext 没有acl功能 tune2fs -o acl /dev/sd* ACL: 具有能再添加局限权限的能力,实现灵活的权限管理 Centos 7 默认创建xfs 和ext4 文件系统有ACL功能。 Centos 7 版本之前,默认手工创建的ext4文件系统无ACL功能。 手动添加: tune2fs -o acl /dve/sdb1 mount -o acl /dve/sbd1 /mnt ACL 生效顺序:所有者,自定义用户,自定义组,其他人。 tune2fs -l /dev/sd* 文件系统检测和修复 常发生于死机或者非正常关机之后 挂载为文件系统标记为“dirty” fsck: File System Check fsck.FS_TYPE fsck-t FS_TYPE -a: 自动修复错误 -r: 交互式修复错误 fsck -y /dev/sd* 默认在yes的选项下修复 不要在挂载的情况下修复,不然修复会破坏元数据。 注意: FS_TYPE一定要与分区上已经文件类型相同; fsck -a /dev/sd* 文件修复 fsck 通常用来检查并适当修复一个或多个Linux文件系统. filesys 可以是一个设备名(例如: /dev/hdc1 , /dev/sdb2 ), 一个挂载点(例如: / , /usr , /home ), 或一个ext2文件系统的磁盘标签, 也可以是UUID指定符(例如: UUID=8868abf6-88c5-4a83-98b8-bfc24057f7bd 或 LABEL=root). 通常, fsck 会试着以并行的方式同时在不同的物理磁盘上运行文件系统检查,这样可以减少对所有文件系统进行检查的时间。 如果没有在命令行指定文件系统,并且没有指定 -A 选项, fsck 将默认顺序地检查 /etc/fstab 中登记的文件系统。这和使用 -As 选项是相同的。 fsck 退出的返回值是下列情况之和: 0 - 没有错误 1 - 文件系统有错但已修复 2 - 系统应当重启 4 - 文件系统错误没有修复 8 - 运行错误 16 - 用法或语法错误 32 - 用户撤销了fsck 操作 128 - 共享库出错 当检测多个文件系统时,退出的返回值是对每个文件系统检查的返回值按位或的结果。 e2fsck:ext系列文件专用的检测修复工具 -y:自动回答为yes -f:强制修复 最大挂载次数和时间间隔会触发fsck检查命令。 fuser -v /mnt/sdb1 查看谁在挂载使用用 fuser -km /mnt/sdb1 强行T出挂载 挂载点目录一般为空 mount 查看挂载 cat /etc/mounts(特殊项都能看到) 挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其它文件访问入口的行为 卸载:为解除此关联关系的过程 把设备关联挂载点:mount Point mount 卸载时:可使用设备,也可以使用挂载点 umount 挂载点下原有文件在挂载完成后会被临时隐藏 挂载点目录一般为空 mount常用命令选项 -t vsftype:指定要挂载的设备上的文件系统类型 -r: readonly,只读挂载 -w: read and write, 读写挂载 -n: 不更新/etc/mtab,相当于#mount -a:自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能) -L 'LABEL': 以卷标指定挂载设备 -U 'UUID': 以UUID指定要挂载的设备 -B, –bind: 绑定目录到另一个目录上 查看内核追踪到的已挂载的所有设备: cat /proc/mounts mount -o remount,noatime /mnt/ 取消挂载再重新挂载,不使用atime mount -o noexec,noatime /mnt/ 取消挂载再重新挂载,不使用执行文件 不要轻易将挂载权限比普通用户 创建了一个新的文件夹/mnt/sdd 将硬盘/dev/sdd 挂载在/mnt/sdd中 -o options:(挂载文件系统的选项),多个选项使用逗号分隔 async:异步模式 sync:同步模式,内存更改时,同时写磁盘 atime/noatime:包含目录和文件 diratime/nodiratime:目录的访问时间戳 auto/noauto:是否支持自动挂载,是否支持-a选项 exec/noexec:是否支持将文件系统上运行应用程序 dev/nodev:是否支持在此文件系统上使用设备文件 suid/nosuid:不否支持suid和sgid权限 remount:重新挂载 ro:只读 rw:读写 user/nouser:是否允许普通用户挂载此设备,默认管理员才能挂载 acl:启用此文件系统上的acl功能 Defaults:相当于rw, suid, dev, exec, auto, nouser, async (编辑:云计算网_汕头站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐


浙公网安备 33038102330478号