第三周作业

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

posted on 2025-05-03 14:38  Healingcl  阅读(24)  评论(0)    收藏  举报