Linux学习—磁盘管理知识点总结
发布时间:2022-10-22 11:28:33 所属栏目:Linux 来源:
导读: 磁盘管理
目录
一、设备文件
设备文件关联至设备驱动程序,用户通过操作这些设备文件间接管理对应的硬件设备
一个设备的名称表示整个磁盘,而分区则用设备名加上一个分区号来表
目录
一、设备文件
设备文件关联至设备驱动程序,用户通过操作这些设备文件间接管理对应的硬件设备
一个设备的名称表示整个磁盘,而分区则用设备名加上一个分区号来表
|
磁盘管理 目录 一、设备文件 设备文件关联至设备驱动程序,用户通过操作这些设备文件间接管理对应的硬件设备 一个设备的名称表示整个磁盘,而分区则用设备名加上一个分区号来表示 设备文件类型: 块设备 存取单位是块,如磁盘 字符设备 存取单位是字符,如键盘 为了方便管理这些设备,系统设置了主设备号和次设备号用来区分 看如下示例: 8 代表主设备号 后边的数字代表次设备号 重点在于后边的次设备号,该数字与分区槽所在的位置有关 创建设备文件: mknod 文件名 b 主设备号 次设备号创建块设备文件 mknod 文件名 c 主设备号 次设备号 创建字符设备文件 二、磁盘介绍 (针对机械硬盘) 磁盘的结构图如下: CHS(柱面/磁头/扇区) C:一个柱面号即磁道号,通常由外向内依次编号,通常作为文件系统的最小单位 H:一个磁头号即盘面号,一个盘面仅有一个磁头 S:一个磁道可以有多个扇区,通常一个扇区512字节,一个扇区包含三个字段 标识字段校验字段数据字段 磁盘的存储容量=磁头数*磁道数*扇区数*512(字节) 磁盘的编址方式: ①CHS方式 #柱面,#磁头,#扇区的方式绝对寻址 ②LBA方式 以0柱面,0磁头,1扇区表示整个磁盘的第一个扇区,后面的扇区相对依次编号 三、磁盘分区 在虚拟机界面新创建创建一个磁盘 可是现在远程终端并不能同步新加的磁盘 需要输入 echo '- - -' > /sys/class/scsi_host/host0/scan 同步磁盘信息 fdisk -l 查看新创建的磁盘 每个磁盘的第一个扇区存放的是分区信息(MBR—Master Boot Record),包括三部分: 1、boot loader(446字节) Linux下为grub 2、硬盘分区表(16字节*4=64字节) 3、结束位(2字节) 十六进制的55 aa hexdump命令可以查看二进制的文件,-C表示16进制输出 hexdump -C -n 512 /dev/sda -v 查看分区信息有数据(16进制) hexdump -C -n 512 /dev/sdb -v 查看分区信息全为0 现在来做这样一个实验(对分区表) dd if=/dev/sda of=/dev/sdb bs=1 count=512 将/dev/sda的磁盘前512字节信息复制给/dev/sdb 再次执行hexdump -C -n 512 /dev/sdb -v,分区表信息和结束位信息如下: 结果两张磁盘的分区信息一样,唯一不同的是/dev/sdb没有第五个分区的信息(原因是分区表只有16字节*4=64字节,只能保存四张分区表的信息,即不能保存逻辑分区的信息),效果图如下: dd if=/dev/zero of=/dev/sdb bs=1 count=512 破坏/dev/sdb的分区信息 fdisk -l 发现/dev/sdb的分区消失 总结:MBR中的分区表就是存放着整个磁盘的分区信息,并且最多只能划分三个分区加一个扩展分区 继续实验(对结束位) dd if=/dev/sda of=/dev/sdb bs=1 count=512 dd if=/dev/zero of=/dev/sdb bs=1 count=2 seek=510 (破坏分区信息的结束位) hexdump -C -n 512 /dev/sdb -v,结果结束位的55 aa变为了00 00 fdisk -l 显示/dev/sdb没有分区 dd if=/dev/sda of=/dev/sdb bs=1 count=2 skip=510 seek=510 hexdump -C -n 512 /dev/sdb -v fdisk -l 显示/dev/sdb又有分区 总结:结束位用来区分MBR的结束,如果没有该结束位,则系统无法识别出分区表的结束,即没有分区 四、创建磁盘分区 fdisk——磁盘分区 -l 列出指定外围设备的分区表状况(以柱面为单位) -u 搭配-l选项,用扇区数目代替柱面数目(以扇区为单位,一个扇区512字节) 子命令: a 在当前分区设定一个可启动标志 b 编辑一个BSD磁盘标识 c 切换为DOS兼容磁盘配额 d 删除当前分区 l 列出所有分区的类型 m 主菜单 n 创建一个新分区 o 创建一个DOS分区 p 输出所有分区列表和每个分区的信息 q 退出,不保存 s 创建一个空的Sun磁盘标识 t 替换当前分区的类型 u 修改分区表中的条目的显示的单位(柱面和扇区) v 检测错误,显示为分配扇区数的总和 w 保存修改退出 x 进入高级操作模式Linux 磁盘管理,专家级操作命令 在子命令模式下Ctrl+backspace为删除键 用fdisk命令完成对磁盘的分区工作之后,该磁盘仍然不具备存储功能,还需要对所需的文件系统格式化 fdisk是一个比较面相底层的系统工具,因此在使用的时候最好预先对数据进行备份,以免误操作造成数据丢失 gdisk命令--该命令默认没有安装,使用yum -y install gdisk安装 (和fdisk极其类似) parted 命令(实时生效,使用的时候注意) 格式:parted + [选项] + 设备文件 [命令 + 参数] [选项] -l 显示所有磁盘的分区信息 [命令 + 参数] (子命令模式下可以使用tab键补齐) mklabel 创建分区表结构(gpt结构不能使用fdisk -l查看) print 显示分区信息 mkpart primary 创建分区(默认单位为M) rm 删除分区 quit 退出子命令模式 实例: parted?/dev/sdb mklabel?gpt? mkpart?primary?1?200 mkpart?primary?200?300 quit parted?-l 五、同步分区表 操作系统所在盘不会及时更新分区表信息 查看内核是否同步分区表信息方法: ls 设备文件名* cat /proc/partitions lsblk 命令不会即时显示,该命令读取的是内存中的磁盘分区信息(树状结构) 同步分区表信息的方法:(只是修改显示的信息,实际对硬盘没有操作) partprobe 设备文件名(centos6仅对非系统所在盘有效) partx-a /dev/sdb 更新增加的分区 partx -d /dev/sdb --nr NUM1-NUM2 更新删除的分区 六、文件系统 存储设备或分区上的文件的方法和数据结构,一个硬盘想要存放数据,必须先创建文件系统 查看当前操作系统支持的文件系统: ls /lib/modules/$(uname -r)/kernel/fs/ cat /proc/filesystems 创建文件系统: mkfs 创建文件系统 mkfs.FS TYPE + 设备文件 mkfs -t FS TYPE + 设备文件 mkfs -L label + 设备文件 设定卷标 mke2fs——创建ext系列文件系统 -j 相当于-t ext3 文件系统类型 blkid 查看文件系统信息 (mount列出所有设备的格式类型) tune2fs + 分区 重新设定ext系列文件系统的参数 -l 显示指定分区的超级块信息 -L 修改label -U 设置UUID dumpe2fs + 分区 导出分区的文件系统详细信息(包含超级块信息) -h 效果和tune2fs -l一样 超级块 :存储整个文件系统信息的一个块 一个磁盘有MBR和四个分区, 一个分区有boot sector和文件系统, 一个文件系统有多个block group, 一个block group有超级块,块位图,inode位图,inode表和数据块等 dumpe2fs?/dev/sda1 dumpe2fs?1.41.12?(17-May-2010) Filesystem?volume?name:??? Last?mounted?on:??????????/boot Filesystem?UUID:??????????051c003c-2cef-4115-bc1c-525759174a77 Default?mount?options:????user_xattr?acl Filesystem?state:?????????clean Errors?behavior:??????????Continue Filesystem?OS?type:???????Linux Inode?count:??????????????51200 Block?count:??????????????204800 Reserved?block?count:?????10240 Free?blocks:??????????????153675 Free?inodes:??????????????51161 First?block:??????????????1 Block?size:???????????????1024 Fragment?size:????????????1024 Reserved?GDT?blocks:??????256 Blocks?per?group:?????????8192 Fragments?per?group:??????8192 Inodes?per?group:?????????2048 Inode?blocks?per?group:???256 Flex?block?group?size:????16 Filesystem?created:???????Tue?Jan??9?04:48:06?2018 Last?mount?time:??????????Tue?Feb?13?06:48:50?2018 Last?write?time:??????????Tue?Feb?13?06:48:50?2018 First?inode:??????????????11 Inode?size:??????????128 Group?0:?(Blocks?1-8192)?[ITABLE_ZEROED] ??Checksum?0x4512,?unused?inodes?2008 ??Primary?superblock?at?1,?Group?descriptors?at?2-2 ??Reserved?GDT?blocks?at?3-258 ??Block?bitmap?at?259?(+258),?Inode?bitmap?at?275?(+274) ??Inode?table?at?291-546?(+290) ??3785?free?blocks,?2009?free?inodes,?6?directories,?2008?unused?inodes ??Free?blocks:?4408-8192 ??Free?inodes:?24,?41-2048 上为执行dumper2fs /dev/sda1 命令的部分执行结果,Group 0之前是超级块的内容,之后是每个块组的一些信息 通常将超级块、块位图、inode位图成为文件的元数据,而inode表和数据块成为数据。 文件系统检测和修复 当对数据修改并将文件写入磁盘时,发生在非正常关机和死机,就会发生数据不一致的问题,为此需要对文件系统进行检查。 (编辑:我爱制作网_沈阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐


浙公网安备 33038102330576号