1.磁头(head):一个盘面对应一个磁头。
扇区(Sector):磁盘最小物理存储单元,通常512字节或4KB。
磁道(Track):磁盘旋转时磁头划出的圆形轨迹,盘面上的每一圈就是一个磁道。
柱面(Cylinder):所有盘面上相同半径的磁道组成的柱状结构。
分区(Partition):将物理磁盘划分为逻辑独立的区域,用于存储数据和安装操作系统。包括主分区、扩展分区和逻辑分区。主分区和逻辑分区都可以用于存储数据和安装操作系统;扩展分区则是一个指向下一个分区的指针,用于管理多个逻辑分区。
NVMe(Non-Volatile Memory Express):一种专门用于访问固态硬盘(SSD)和其他非易失性内存设备的通信协议和接口规范,提供比传统存储接口更快的性能,广泛应用于现代计算系统中。
IOPS(Input/Output Operations Per Second):每秒输入/输出操作次数,是衡量硬盘性能的重要指标之一。对于大量小数据量的随机读写应用,IOPS比带宽更为重要。
带宽(Bandwidth):硬盘数据传输的速率,通常以MB/s或GB/s为单位表示。对于大块顺序读写的应用,带宽是衡量硬盘性能的关键因素。
2. 区别:
寻址方式和空间不同:MBR使用32位的LBA寻址方式,其最大可寻址的存储空间只有2TB(2^32个扇区,每个扇区512字节);GPT使用64位LBA寻址方式,理论上可以支持最大容量为9.4ZB(1ZB=1024^7字节)的硬盘,远超MBR的2TB限制。
分区数:MBR最多只能有4个主分区(或3个主分区+1个扩展分区);GPT可以支持最多128个分区(在Windows系统中)。
数据冗余与校验:MBR无校验;GPT在硬盘两端各保存一份分区表副本,以及CRC32校验,有助于提高数据完整性和容错性。
兼容性:GPT不仅支持现代的操作系统和硬件平台(如Windows 10/11、macOS、Linux等),还提供了对UEFI(统一可扩展固件接口)的更好支持。
分区标识不同:GPT分区表中的每个分区项都有一个唯一的GUID(Globally Unique Identifier,全局唯一标识符),这有助于防止分区表被恶意篡改或误操作。GPT的分区表结构更加清晰和灵活,便于管理和维护。
3. 分区管理:
fdisk:MBR分区工具,用于操作管理分区。fdisk是一个创建和维护分区表的程序,它兼容DOS类型的分区表、BSD或者SUN类型的磁盘列表。它常被用于创建、删除、调整磁盘分区,以及更改分区类型等操作。主要使用传统的MBR(主引导记录)分区表格式。MBR分区表有一些限制,例如最多支持4个主分区或3个主分区和1个扩展分区。
lsblk:用于查看设备信息
gdisk :管理GPT分区
parted:高级分区操作,可以是交互或非交互方式
partprobe :我们对磁盘设置过之后,信息没有同步到内存,这条命令就是同步信息的作用
文件系统管理:
mkfs:格式化文件系统
mke2fs:ext系列文件系统专用管理工具
blkid :查看块设备属性信息
e2label 管理ext系列文件系统的LABEL
findfs :查找分区
tune2fs 重新设定ext系列文件系统可调整参数的值
dumpe2fs 显示ext文件系统信息,将磁盘块分组管理
xfs_info 显示已挂载的 xfs 文件系统信息
4. RAID:
RAID0 : 工作原理是条带化;利用率 100% ;没有冗余性;性能最高 ;最少1个硬盘
RAID1 :工作原理是镜像,利用率50% ;冗余性高;性能读提升,写同单盘;最少 2个硬盘
RAID5 :工作原理是条带化+分布式校验;利用率 (n-1)/n ;冗余性单盘容错;性能读高,写中等;最少3个硬盘
RAID10 : 工作原理是镜像+条带化 ;利用率50%;冗余性高;性能读高,写中等;最少4 个硬盘
RAID01 :工作原理是条带化+镜像;利用率 50% ;冗余性较低 ;性能读高,写中等;最少 4 个硬盘
5. LVM基本原理:物理卷(PV):将物理磁盘/分区初始化为LVM可用空间,是LVM存储管理的最底层,可以是整个物理硬盘或实际物理硬盘上的分区。物理卷在加入LVM之前需要经过特殊处理,以便LVM能够识别和管理。
卷组(VG):是建立在物理卷之上的一个逻辑层,它包含了一个或多个物理卷。卷组将多个物理卷组合在一起,形成一个可管理的单元,类似于非LVM系统中的物理硬盘。
逻辑卷(LV):是建立在卷组之上的一个逻辑层,它类似于非LVM系统中的硬盘分区。逻辑卷可以在其上建立文件系统,并挂载到不同的挂载点,用于存储数据。
物理区域(PE):是物理卷中可用于分配的最小存储单元。PE的大小是可配置的,默认为4MB。在建立卷组时,物理区域的大小会被指定,并且一旦确定就不能更改。同一卷组中的所有物理卷的物理区域大小必须一致。
LVM创建:
pvcreate /dev/sdb1 创建PV
vgcreate -s 16M testvg /dev/sdb1 /dev/sdc1 创建VG
lvcreate -l 100 -n lv1 testvg 创建LV
磁盘扩容:
vgextend testvg /dev/sdd1 扩展PV
lvextend -L +1G /dev/testvg/lv1 扩展LV
resize2fs /dev/testvg/lv1 扩展文件系统
或者采用 lvresize -r -l +100%FREE /dev/testvg/lv1 一步实现容量和文件系统的扩展



6. 命名规则:名称有意义。
名称细节:命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。中间不能有空格,可以使用下划线(_)。不能使用标点符号。不能使用bash里的关键字(可用help命令查看保留关键字)。
命名样式:大驼峰HelloWorld,每个单词的首字母是大写;小驼峰helloWorld,第一个单词的首字母小写,后续每个单词的首字母是大写;下划线: Hello_World;大小写字母: helloworld, HELLOWORLD
变量类型及使用:环境变量:对整个shell会话和子进程有效
export VAR=value 设置环境变量
env 查看所有环境变量
unset VAR 取消环境变量
位置变量:用于传递脚本参数
$0 # 脚本名
$1 # 第一个参数
$@ # 所有参数
只读变量:设置完成后不可修改
readonly VAR=value 设置只读变量
readonly -p 查看所有只读变量
局部变量:仅在函数内有效
local var=value
状态变量:特殊用途,由shell自动设置的特殊变量
$? 上条命令退出状态,0为成功,否则为失败
$$ 当前shell进程的PID
$! 最后一个shell进程的PID
$_ 上一条命令的最后一个参数
7.
#!/bin/bash
target=$RANDOM
echo "猜数字游戏开始!"
echo "猜猜看"
while true; do
read -p "请输入你的猜测: " guess
if (( guess < target )); then
echo "太小了"
elif (( guess > target )); then
echo "太大了"
else
echo "恭喜猜中数字 $target!"
break
fi
done
浙公网安备 33010602011771号