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 进入高级操作模式,专家级操作命令

在子命令模式下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:   <none>
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表和数据块成为数据。

文件系统检测和修复

当对数据修改并将文件写入磁盘时,发生在非正常关机和死机,就会发生数据不一致的问题,为此需要对文件系统进行检查。

非正常会有标记 no clean

fsck -p 自动修复

fsck -r 交互式修复



Linux学习—磁盘管理知识点总结

原文地址:http://blog.51cto.com/13570193/2071510

时间: 2024-10-11 11:27:51

Linux学习—磁盘管理知识点总结的相关文章

linux学习—shell脚本知识点总结

Shell脚本 --Shell脚本有点像早期的批处理文件,将一些命令汇总起来一次执行,但Shell有更强大的功能,可以类似于程序的编写,不需要编译就能执行,使用起来很方便,可以简化我们日常的管理工作. 目录 什么是Shell 脚本的运行方法 #!(读shabang)的作用详解 结合案例分析变量类型 特殊变量及其[email protected] $*的区别 退出状态 算数运算 test和[ expression ]判断 一.什么是Shell 我们知道管理整个计算机硬件的其实是核心(kernel)

Linux学习—磁盘配额工具quota

磁盘配额--Linux作为一个多用户的操作系统,实际生活中会发生多人共同使用一个磁盘的情况,,为了保证一个磁盘的有效利用,必须对磁盘进行使用率的限制,因此磁盘配额(quota)会是一个非常有用的工具 目录 quota的使用限制 quota的设置内容(xfs) 使用quota的案例(重点) 一.quota的使用限制 对EXT系列文件系统,quota仅能针对整个文件系统进行设计,无法对单一的目录进行磁盘配额:而在xfs的文件系统中,可以使用quota对目录进行磁盘配额,因此在进行磁盘配额前,一定要对

linux下磁盘管理机制--LVM

当我们用传统分区方法使用磁盘时,当出现分区大小不够用的时候,通常只能添加添加一个更大的磁盘,重新创建分区来扩展空间.但是,这样只能是将原来的磁盘下线,换上新的磁盘,在将原始数据写入,在实际的生产过程中是不允许的.此时就需要使用逻辑卷LVM这种磁盘分区管理了. 逻辑卷是将硬盘空间重新"分割"成大小相等的块(PE)组成的PV放到一个容器(VG)中,当需要可以随时向这个容器中取出这样的块,来实现动态调整磁盘空间大小.当然新添加的块不会改变原来的文件系统,而且原磁盘也不用下线. 下面说明逻辑卷

linux下磁盘管理机制--RAID

RAID(Redundant Array Of Independent Disks):独立磁盘冗余阵列.RAID的最初出现的目的是为了解决中小型企业因经费原因使用不起SCSCI硬盘,而不得不使用像IDE较廉价的磁盘情况下,将多块IDE磁盘通过某种机制组合起来,使得IDE磁盘在一定程度上提高读写性能的一种机制.当然,现在也可以将SCSCI类的磁盘也可以做成RAID来提高磁盘的读写性能. 一.RAID的级别 RAID机制通过级别来RAID级别来定义磁盘的组合方式.常见的级别有:RAID0,RAID1

linux之磁盘管理(五)

swap分区 交换空间,正是因为交换空间的存在,使我们的内存可以过载使用. 在物理买内存不足的情况下,拿swap来应急. free:查看当前系统上物理内存和交换空间的使用情况. -m [[email protected] ~]# free total       used       free     shared    buffers     cached Mem:       1026868     419232     607636          0      23704     28

Linux基础-----磁盘管理

文件系统 Windows NTFS FAT32 Linux VFS:虚拟文件系统:将底层文件系统的不同,通过统一的接口,输出给上层应用 ext2 ext3 ext4 xfs 文件系统:对分区文件就行组织管理,并建立索引表,文件系统有内核提供 格式化:创建文件系统 低级格式化:创建磁道.扇区 高级格式化:创建文件系统 分区是按柱面来划分 磁道:数据存储在磁道上 扇区:将磁道划分成扇状用于管理 柱面:多个盘片,相同位置的扇区,形成柱面 0磁道的0扇区:(不属于任何分区)MBR 512字节   主引导

linux之磁盘管理(三)

用户模式:用户空间 内核模式:内核空间 cpu的运行等级 ring 0   内核  (特权,和硬件打交道) ring 1 ring 2 ring 3   应用程序 文件系统是有特权的.属于内核提供的功能. VFS也是内核的功能,完成转换. inode:记录文件的属性,一个文件占用一个inode,同时记录此数据的block号. block:实际记录文件内容,若文件太大时,会占用多个block. superblock:记录此文件系统的整体信息.包含:inode.block的总量.使用量.剩余量.以及

linux之磁盘管理(四)

文件系统管理 重新创建文件系统会损坏原有文件. 创建某个分区上的文件系统 使用 mkfs :make file system -t  FSTYPE   指定文件系统类型 mkfs命令比较特殊 [[email protected] ~]# which mkfs.ext2 /sbin/mkfs.ext2 [[email protected] ~]# ls -l /sbin/mkfs.ext2 -rwxr-xr-x 3 root root 47312 Sep  4  2009 /sbin/mkfs.e

Linux 红帽 &nbsp; 磁盘管理~~~~RAID5+LVM

Linux  红帽    磁盘管理~~~~RAID5+LVM 实验环境: 在Linux 操作系统的PC机上添加3块20G大小的磁盘 实验步骤: 一.  创建RAID5: 1. 准备工作: [[email protected] ~]# uname -a              //查看基本信息 [[email protected] ~]# cat /etc/redhat-release        //查看红帽的发行版本 为添加好的三个磁盘进行分区, 分区的类型:FD(全称:)    为了节省