
阻止设备: 阻止访问单元“阻止”磁盘
字符设备: 字符访问单元“字符”键盘
设备文件: 与设备驱动程序关联,然后能够与相应的硬件设备通信
仅元数据,无数据
设备号
主要设备: 主要数字标识设备的类型
次设备: 次编号标识相同类型的不同设备
硬盘接口类型: 数据交换功能
并行端口:
IDE: 33MB / S(接口速率)
SCSI: 640MB /秒
串行端口:
SATA: 6Gbps
SAS: 6Gbps
USB: 480MB /秒
磁盘设备的设备文件命名:
IDE: / dev / hd
SCSI,SATA,SAS,USB: / dev / sd
不同的设备: a-z
/ dev / sda,/ dev / sdb ....
同一设备上的不同分区: 1、2、3 ...
/ dev / sda1,/ dev / sda5
1. 磁盘的基本知识1.1机械硬盘(HDD: 硬盘驱动器)
机械硬盘由多个磁盘组成,所有磁盘都围绕主轴旋转. 每张光盘的上方和下方都有读写头,它们之间的距离非常小. 每次读取和写入数据时,磁盘都会旋转,并且读写头由磁臂控制以连续移动以读取数据.
所有盘子同步旋转,所有磁头同步移动.


磁盘在物理上分为扇区,磁道和柱面. 如果划分了分区,则分区是圆柱体的逻辑分隔边界.
当读写头处于停止状态时,磁盘旋转时磁头扫过的磁道称为磁道,所有磁道均为同心圆. 从光盘的外圈到内圈,轨道号从0开始增加.
每个轨道均等分为512字节的弧. 因此,来标识,例如373-768,这意味着最外面的磁道有768个扇区,最内层的圆圈中有373个扇区,可以计算字节数. 每首曲目.
每个扇区为512字节,并且该扇区是磁盘控制器的最小读写单元.

光盘同步旋转并成一定角度旋转. 外圈的线速度比内圈快,并且磁头可以扫描的扇区数更多. 因此,在外圈磁道中读写数据要比内圈快.
将数据写入磁盘是从外圆柱到内圆柱,并且仅在写入圆柱之后才写入圆柱. 因此,磁盘的存储速度会在一段时间后变慢,因为外部圆柱体已用完.


1.2分区
分区是在逻辑上分隔某些圆柱以形成边界. 它以圆柱体为单位进行划分. 首先,将外圆柱分割,然后向内连续分割.
由于在外部磁道中读取和写入数据的速度比在内部磁道中读取数据的速度快,因此第一个分区的读写性能要好于后续分区. 因此,在Windows操作系统上,C驱动器是最快的,而后面的区域则是C驱动器.
在磁盘数据量很大的情况下,分区具有扫描块位图等优点,例如: 无需扫描整个磁盘的块位图,只需扫描相应磁盘的块位图即可. 分区.
1.3 MBR分区方法
MBR: 主引导记录(Master Boot Record),也称为主引导扇区,是在打开计算机以访问硬盘驱动器时必须读取的第一个扇区. 由于此扇区不同,其他普通存储空间的特殊管理功能作为管理整个磁盘空间的特殊空间,不属于磁盘上的任何分区,因此该分区空间中的format命令无法清除磁盘上的任何信息. 主引导记录. 主引导扇区由三部分组成(共512字节):
在Linux中,MBR格式磁盘的主分区号是1-4,扩展分区号是2-4,逻辑分区是5 +;
MBR最多支持2T(32位表示扇区,2 ^ 32 * 512).
hexdump -C /dev/sda -n512 # 查看sda硬盘的前512个字节 dd if=/dev/sda of=/data/MBR_bak bs=1 count=512 # 备份sda这块银盘的前512字节至/data/MBR_bak文件
1.4 GPT分区
GPT: GUID(全局唯一标识符)分区表支持128个分区,使用64位,支持8Z(512字节/块)64Z(4096字节/块)
2. 分区命令:
提示: 对于直接在vmare下添加的硬盘,如果不重新启动计算机,则fdisk -l或lsblk无法识别新添加的硬盘. 我们可以使用此命令来标识新添加的硬盘;
第一步: ls /sys/class/scsi_host/ host0host1host2 第二步: echo "- - -" > /sys/class/scsi_host/host0/scan echo "- - -" > /sys/class/scsi_host/host1/scan echo "- - -" > /sys/class/scsi_host/host2/scan 第三步: lsblk fdisk -l # 即可看到刚刚添加的硬盘
用于MBR分区的2.1 fdisk
fdisk-manipulate磁盘分区表: 对于硬盘,最多只能管理15个分区
如果存储设备已分区,则可能是mbr格式或gpt格式. 如果它已经是mbr格式,则只能继续使用fdisk进行分区.
如果已经是gpt格式,则只能使用gdisk进行分区.
使用fdisk分区,只能实现MBR格式分区
fdisk [option]设备
[root@CentOS7 ~]#fdisk /dev/sda Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. # 改变将只保存在内存中,直到你作出决定 Command (m for help): m # m获取帮助 Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition # 删除分区 g create a new empty GPT partition table # 创建一个新的GPT分区表 G create an IRIX (SGI) partition table l list known partition types # 罗列各种分区类型(82 代表swap) m print this menu # 显示帮助信息 n add a new partition # 添加一个新分区 o create a new empty DOS partition table p print the partition table # 显示现有分区信息 q quit without saving changes # 仅退出,不保存 s create a new empty Sun disklabel t change a partition's system id # 修改分区id u change display/entry units v verify the partition table w write table to disk and exit # 保存并退出 x extra functionality (experts only) # 额外功能(仅限专家)
2.1.1创建一个新的逻辑分区: (相同的操作可以创建一个新的主分区)
[root@CentOS7 ~]#fdisk /dev/sda Command (m for help): n # 新建分区 All primary partitions are in use Adding logical partition 7 # 此处显示所有的主分区都在使用中,只能添加逻辑分区7 First sector (220209152-419430399, default 220209152): +5G # 一般直接回车,表示新建的分区从磁盘220209152-419430399哪个data block开始 Partition 7 of type Linux and of size 5 GiB is set Command (m for help): w The partition table has been altered!
通过fdisk -l命令检查分区是否已建立

分区已结束,请保存并退出. 如果您不保存,请按q退出.
由于上面的fdisk操作在保存并退出后在内存中执行,
2.1.2,系统内核是否已识别新分区: cat / proc / partition

2.1.3,因此内核需要通过命令对其进行格式化以识别分区:
CentOS 5: partprobe [设备]
CentOS 6,7:
partx,kpartx
partx -a [设备]
-n M: N: 指定从哪个分区号终止到哪个分区

kpartx -af [设备]

注意: 如果要删除分区,我们还需要同步,命令是:
partx -d --nr 1-2 /dev/sdb 表示同步删除/dev/sdb里的1-2分区
注意: 通常,如果为“正在同步磁盘”. 出现在分区的末尾,同步已完成,不再需要partprobe.
补充:
如何在shell中编写脚本的过程中创建新分区:
echo -e "n\np\n\n\n+1G\nw\n" | fdisk /dev/sdc # 利用echo管道 在sdc建立一个1G的主分区; # 第二种方法; fdisk /dev/sdc << EOF #利用多行重定向输入
2.2分区工具
parted-一个分区操作程序
分开[选项] [设备[命令[选项...] ...]]
Parted支持mbr格式和gpt格式的磁盘分区. 它的强大之处在于它可以一步完成,而无需持续不断的交互式输入
parted [options] [device [command [options...]...]] # option: -l lists partition layout on all block devices ,显示全部块设备 # command [options...]... print Display the partition table. mkpart part-type [fs-type] start end # Make a part-type partition for filesystem fs-type (if specified), beginning at start and ending at end (by default in megabytes). fs-type can be one of "btrfs", "ext2", "ext3", "ext4", "fat16", "fat32", "hfs", "hfs+", "linux-swap", "ntfs", "reiserfs", or "xfs". part-type should be one of "primary", "logical", or "extended". 示例: parted /dev/sdc mkpart extended ext4 9666 12000 #表示将
3. 文件系统,格式
文件系统是操作系统用来标识存储设备或分区上的文件的一种方法和数据结构;即一种在存储设备上组织文件的方法. 操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统;
从系统角度看,文件系统是一个组织和分配文件存储设备空间,负责文件存储以及保护和检索已存储文件的系统. 具体来说,它负责为用户创建文件,存储,读取,修改,转储文件,控制文件访问,安全控制,日志记录,压缩,加密等;
各种类型的文件系统:
Linux文件系统: ext2(扩展文件系统),ext3,ext4,xfs(SGI),btrfs(Oracle),reiserfs,jfs(AIX),交换
CD: iso9660
Windows: FAT32,exFAT,NTFS
Unix: FFS(快速),UFS(unix),JFS2
网络文件系统: NFS,CIFS
集群文件系统: GFS2,OCFS2(oracle)
分布式文件系统: fastdfs,ceph,moosefs,mogilefs,glusterfs,Lustre
RAW: 未处理或未格式化的文件系统
文件系统的一部分:
内核中的模块: ext4,xfs,vfat </ p>
用户空间管理工具: mkfs,ext4,mkfs,xfs,mkfs
格式化过程是创建文件系统的过程. 您可以使用mkfs(制作文件系统)工具进行格式化,也可以使用工具家族中的其他工具,例如mkfs.ext4 / mkfs.xfs以及其他专门用于文件系统的工具.
查看当前系统支持的文件系统: cat / proc / filesystems
补充:
3.1 mkfs命令
mkfs-构建Linux文件系统
制作外部系统文件格式时,此命令将调用mke2fs命令.
mkfs [选项] [-t类型] [fs-options]设备[大小]

创建文件系统:
mkfs命令:
(1)mkfs.FS_TYPE / dev / DEVICE
FS_TYPE: ext4,xfs,brtfs,vfat </ p>
例如mkfs.ext4 / dev / sda5
(2)mkfs -t FS_TYPE -f -L / dev / device
-L'Lable': 指定卷标名称

要查看受支持的文件系统类型,只需输入mkfs并按两次Tab键即可列出与每个文件系统相对应的格式化命令. 这些是受支持的文件系统类型:
CentOS 6: [root@CentOS6 ~]#mkfs mkfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.ext4dev mkfs.msdos mkfs.vfat # # # CentOS 7: [root@CentOS7 ~]#mkfs mkfs mkfs.btrfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.fat mkfs.minix mkfs.msdos mkfs.vfat mkfs.xfs
也可以直接 mkfs -t FS_TYPE /device # 确定格式化的文件类型

blkid分区名称: 显示分区属性信息(如果输入名称不响应,则表明还没有文件系统)

3.2 mke2fs工具
mke2fs是用于ext系列文件系统的专用管理工具. 该工具创建文件系统时,将从/etc/mke2fs.conf配置中读取默认配置项.
mke2fs-创建ext2 / ext3 / ext4文件系统
mke2fs [ -c | -l filename ] [ -b block-size ] [ -D ] [ -f fragment-size ] [ -g blocks-per-group ] [ -G number-of-groups ] [ -i bytes-per-inode ] [ -I inode-size ] [ -j ] [ -J journal-options ] [ -N number-of-inodes ] [ -n ] [ -m reserved-blocks-percentage ] [ -o creator-os ] [ -O feature[,...] ] [ -q ] [ -r fs-revision-level ] [ -E extended-options ] [ -v ] [ -F ] [ -L volume-label ] [ -M last-mounted-directory ] [ -S ] [ -t fs-type ] [ -T usage-type ] [ -U UUID ] [ -V ] device [ blocks-count ] mke2fs -O journal_dev [ -b block-size ] [ -L volume-label ] [ -n ] [ -q ] [ -v ] external-journal [ blocks-count ] ### # option: -t fs-type # 指定要创建的文件系统类型(ext2,ext3 ext4),若不指定,则从/etc/mke2fs.conf中获取默认的文件系统类型。 -b block-size # 指定每个block的大小,有效值有1024、2048和4096,单位是字节。 -I inode-size # 指定inode大小,单位为字节。一般128或256字节 -i bytes-per-inode # 指定每多少个字节就为其分配一个inode号。值越大,说明一个文件系统中分配的inode号越少,更适用于存储大量大文件,值越小,inode号越多,更适用于存储大量小文件。
该值不能小于一个block的大小,因为这样会造成inode多余。注意,创建文件系统后该值就不能再改变了。 -c # 创建文件系统前先检查设备是否有bad blocks。 -f fragment-size # 指定fragments的大小,单位字节。 -g blocks-per-group # 指定每个块组中的block数量。不建议修改此项。 -G number-of-groups # 该选项用于ext4文件系统(严格地说是启用了flex_bg特性),指定虚拟块组(即一个extent)中包含的块组个数,必须为2的幂次方。对于ext4文件系统来说,使用extent的功能能极大提升其性能。 -j # 创建带有日志功能的文件系统,即ext3。如果要指定关于日志方面的设置,在-j的基础上再使用-J指定,不过一般默认即可,具体可指定的选项看man文档。 -L new-volume-label # 指定卷标名称,名称不得超出16字节。一般设定为挂载点的名字 -m reserved-blocks-percentage # 指定文件系统保留block数量的比例,保留一部分block,可以降低物理碎片。默认比例为5%。 -N number-of-inodes # 强制指定该文件系统应该分配多少个inode号,它会覆盖通过计算得出inode数量的结果(根据block大小、数量和每多少字节分配一个inode得出Inode数量),但是不建议这么做。 -q # 安静模式,可用于脚本中 -S # 重建superblock和group descriptions。在所有的superblock和备份的superblock都损坏时有用。它会重新初始化superblock和group descriptions,但不会改变inode table、bmap和imap(若真的改变,该分区数据就全丢了,还不如重新格式化)。在重建superblock后,应该执行e2fsck来保证文件系统的一致性。但要注意,应该完全正确地指定block的大小,其改选项并不能完全保证数据不丢失。 -v # 输出详细执行过程 -O FEATURE[,...] # 启用指定特性 -O ^FEATURE # 关闭指定特性
上面的mke2fs命令的常用选项是:
-b: 每个块的大小
-L: 创建卷标
-i: 为每个块分配一个索引节点
-t: 创建的文件类型
-m: 保留块数
示例:
CentOS 6:
[root@CentOS7 ~]#mke2fs -t ext4 -b 4096 -L hahahaha /dev/sda6 mke2fs 1.42.9 (28-Dec-2013) Filesystem label=hahahaha OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 327680 inodes, 1310720 blocks 65536 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=1342177280 40 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done CentOS 6 [root@CentOS6 ~]#mke2fs -t ext4 -b 4096 -L mydata /dev/sda6 mke2fs 1.41.12 (17-May-2010) Filesystem label=mydata OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 328656 inodes, 1312604 blocks 65630 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=1346371584 41 block groups 32768 blocks per group, 32768 fragments per group 8016 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 38 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
3.3 e2label视图并设置卷标
查看: e2label设备
设置: e2label设备标签
> tune2fs -L NEWLABEL / device也可以修改卷标

注意: 此命令仅用于ext文件系统制作卷标,并且只能在格式化后设置卷标
3.4 tune2fs工具
查看或修改ext系列文件系统的某些属性
tune2fs调整ext2 / ext3 / ext4文件系统上的可调文件系统参数

tune2fs [OPTIONS] device # option: -l # 查看指定文件系统超级块的内容:super block -j:ext2 --> ext3; (ext2不带日志系统,ext3带日志系统) -L LABEL:修改卷标; -m # 调整预留空间百分比; -U UUID: 修改UUID号 tune2fs -U `uuidgen` # 以随机生成的uuid作为修改的uuid号 -O [^]FEATHER:开启或关闭某种特性: acl :开启acl功能 ^acl:关闭acl功能 (acl(access control list,访问控制列表)功能详见文件权限管理) tune2fs -l /dev/sda1 # 查看该分区超级块内容 Default mount options: user_xattr acl # 其中的这一项含有acl表示开了acl功能 tune2fs -o ^acl /dev/sda1 # 表示关闭acl功能
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/dianqi/article-310195-1.html
不管是外在的软实力还是内在的硬实力
只能打出尊严来