由冯诺依曼在 1945 年提出的计算机五大组成部分:运算器,控制器,存储器,输入设 备,输出设备。
1. 硬盘结构:
(1)机械硬盘结构:
磁盘拆解图:
扇区,磁道,柱面示意图:
数据写入:**圆心以放射状的方式分割出磁盘的最小存储单位就是扇区,每个扇区大小 为 512bytes。**而扇区组成的圆就称为磁道,如果多盘片的情况下,在所有盘片的同一磁道就组成了一个柱面。 比较古老的 CHS (Cylinder/Head/Sector :磁头(Heads)、柱面(Cylinder)、扇区 (Sector))结构体系.也就是硬盘盘片的每一条磁道都具有相同的扇区数,由此产生了所谓 的 3D 参数,即是磁头数(Heads)、柱面数(Cylinders)、扇区数(Sectors)以及相应 的 3D 寻址方式。
现在硬盘都采用这种技术:ZBR(Zoned Bit Recording)区位记录。 Zoned-bit recording(ZBR 区位记录)是一种物理优化硬盘存储空间的方法,此方法 通过将更多的扇区放到磁盘的外部磁道而获取更多存储空间。 ZBR 磁盘扇区结构示意图:
转速:家用台式:7200rpm
家用笔记本:5400rpm
服务器:10000-15000rpm 影响读取速度快慢
机械硬盘转速和使用注意事项: 由于硬盘内部机械手臂上的磁头与盘片的接触是很细微的空间,如果有抖动或者脏物 在磁头与盘片之间的话就会造成数据的丢失或者整个硬盘的损坏。
(2)固态硬盘:
固态硬盘,使用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元组成。
特点:读写快,噪音低,防震,轻薄,有写入次数限制,容量较小,价格高。 在固态硬盘中,为了便于理解,也有逻辑上的磁道,扇区的概念。
2.硬盘使用流程:
1)对硬盘进行分区。
2)格式化指定文件系统。 文件系统元数据
3)挂载使用。
3.分区:MBR 与 GPT
MBR 分区方式:
主引导记录(MBR,Main Boot Record)是位于磁盘最前边的一段引导(Loader)代码:
- 主引导程序(boot loader)占用了 446byte
2. 分区表(Partition table)占用了 64byte,16byte 表示一个分区。
- 有效标志符(magic number)占用了 2byte,标记 MBR 是否有效。
只有4个分区原因
逻辑分区在扩展分区基础上划分。
1.划分扩展分区(2000-3000):注意扩展分区扇区范围。
不能写入数据只能包含逻辑分区
2.划分逻辑分区:注意逻辑分区扇区范围。
虚拟机进行 MBR 分区 步骤:
1.关机添加硬盘。
2.使用 fdisk+设备文件名进行分区。
在 fdisk 交互界面中,可用选项有: 分区: #fdisk /dev/sdb 划分 MBR 挂载分区
a:切换分区启动标记
b:编辑 bsd 磁盘标签
c:切换 dos 兼容模式
d:删除分区
n:新建分区
l:显示分区类型
p:显示分区表信息
q:不保存退出
w:保存并退出
t:修改分区 id,可以通过 l 查看 id
o:创建新的空分区表
u:修改容量单位,磁柱或扇区
m:显示帮助菜单
x:扩展功能
s:创建新的 Sun 磁盘标签
v:检验分区表
进行 GPT 分区 :
传统的 MBR 分区方式有诸多限制,比如只能有 4 个主分区,无法创建大于 2TB 的分区。而 GPT 分区方式则没有这样的限制,而且,GPT 分区提供了分区表的冗余以实现分区表的备份 与安全。但是 fdisk 命令不支持 GPT 分区方式,需要使用 parted 命令(非交互式分区)进 行分区。
GPT 分区表可分为三部分:
LBA0:GPT 分区的最开头,考虑兼容性问题,开头仍然存放 MBR 分区表,只是里面存放的 是指向 GPT 的指针。防止有一些系统不识别 GPT 分区表。 LBA1:储存了硬盘的总空间,以及 GPT 分区表的信息,定义最多能创建 128 个分区,每个 分区信息占用的空间是 128 个字节。
LBA2-33:每个分区信息存放的位置。
注:LBA(logica block address)中文名称为逻辑区块地址,即扇区,默认 512 字节。 创建新分区需要使用 gdisk 命令,使用方式与 fdisk 命令相似。
4.格式化与挂载:
硬盘分区后,需要格式化写入文件系统之后才可以正常使用。注意:扩展分区是不能格式化的。
文件系统原理图
名词解释: 而文件系统的最小存储单位是"块"(Block)。
super block:超级块,记录每个分区的 block 的大小、数量;
GDT:组描述符,用于描述组情况。每个组有不同的组描述符。
blockbitmap 块位图(已使用和未使用的 inode 和 block 的数量)。
inodebitmap:inode 位图。 inode 表:inode 表作用是用来快速搜索磁盘上索引节点。
**data block:数据块,保存真实数据的位置,block 的大小和数量在格式化成文件系统时 已经固定,**除非重新格式化,否则不能修改。
单个文件占用小于一个 block 的大小时,单 独占用一个 block,剩余空间不会被利用。
inode: i 节点,记录 inode 号、权限、属主属组、时间戳、大小、占了哪几个 block。
格式化: #mkfs.ext4 /dev/
mkfs:创建文件系统 格式:mkfs "-t 指定文件系统格式" 设备文件名 文件系统格式有:ext2、ext3、ext4、vfat 等。常用格式为 ext3 和 vfat。vfat 可以用在 Linux 和 Windows 共享 U 盘上。
用 mkfs 命令将/dev/sdb1 格式化为 ext3 文件系统
#在格式化完成之后就可以创建一个目录挂载,使用
创建一个空目录 作为挂载点
过载后的文件可以通过:查block情况**#df -h查inode号df -i来看资源使用情况**
永久挂载: 如果想要下次开机继续挂载还需要修改一下**/etc/fstab** 文件。此文件为开机自动挂载文件,重启生效
第一列:设备文件名(UUID)
第二列:挂载点
第三列:文件系统类型
第四列:挂载特殊选项
第五列:是否备份:0 不备份 1 每天备份2 不定期备份
第六列:是否检查磁盘状态:0 不检查 1 启动时检查 2 启动后检查
UUID:硬盘的唯一标识符,设备名称可能会重复但 UUID 不会重复。
查看 UUID 的方式:
1.dumpe2fs -h 分区设备名
2.ls -l /dev/disk/by-uuid/ 注意:在修改/etc/fstab 的过程中 UUID 一定要填写正确,
如果 UUID 出错会造成系统无法 启动。
3.查看分区文件系统:df -T、mount
4. lsblk -f
5.blkid # blkid | grep sdb1 >> /etc/fstab 再打开 /etc/fstab 留下 uuid ,不需要删除