disk devices
一,首先了解下一些硬件的驱动所在。例如”CPU”和”内存” ,它们的驱动在内核中,而接下来要说到的硬盘它的驱动在哪里?答案是不再内核中,因为硬盘的种类太多了不可能给它集成在内核里,所以它的驱动是开机时加载的一个模块,随机启动的一个模块。
首先是找到我的硬盘驱动是哪个?
1. lsmod | grep pata_acpi
2. pata_acpi 就是我的硬盘驱动(不同硬盘有所不同)
先来看一个文件夹:/boot 。在boot中存放的是“内核紧急模块”。
initramfs-2.6.32-71.el6.x86_64.img 这个就是硬盘驱动的所在。拷贝到一个地方然后解开它(我是把它放在/root/Documents/ 下)。
1. mv initramfs-2.6.32-71.el6.x86_64.img initramfs-2.6.32-71.el6.x86_64.gz
2. gzip -d initramfs-2.6.32-71.el6.x86_64.gz
3. cpio -idmv < initramfs-2.6.32-71.el6.x86_64
已经解开了:会看到一个目录是lib,然后进入。
cd /root/Documents/lib/modules/2.6.32-71.el6.x86_64/kernel/drivers/
cd ata/ 就可以找到 ''pata_acpi.ko''
在这里必须注意的一点是:'' . ko'' 的文件是内核对象,必须和内核版本一一对应。
二,讲完硬盘驱动再来讲讲硬盘的分区和格式化。
在linux世界中,我们必须明白'' 分区 '' 和 '' 格式化 '' 是两件事,两者是分开的。
分区标志—>指导意义
分区的最小单位是:'' 柱面 '' 最小(7.8M)
格式化最小单位是: '' 块 '' 最小(1k)。Linux默认为4K块。
格式化完后有file system ,file system 是一个2维的数据库,是一个'' 链表 ''。
文件系统:是对一个存储设备上的数据和元数据进行组织的机制。
链表:是一级管一级,称之为 '' 目录 ''
格式化完会有第一个文件:那就是目录,即'' 根 '' 。
根:所有目录的目录。它是文件系统最顶层的唯一目录。
目录:目录也是一个文件,它是文件中的管理者,也就是管理下级文件的文件。它的格式是'' 多行两列 ''。第一列记录:文件位置。第二列记录:文件名字。引出一个问题:“ 文件名在哪里?” 答案一定是:文件名记在上级目录上。可以做一个实验来证明:
实验1.
1. cp /usr/share/dict/words ./
2. ln words wgggg
3. md5sum words wgggg
4. 结果:40c0825855792bd20e8a2d515fe9c3e3 words
40c0825855792bd20e8a2d515fe9c3e3 wgggg
5. 推论:因为md5sum是相同的,所以文件名不是记在文件上而是记在上级目录上。
硬盘——>分区——>格式化——>文件系统
文件系统的种类很多例如:微软的NTFS , linux的ext 。即一个操作系统一个文件系统。
File system 详细结构
超级块:描述位置。
内节点个数决定文件及文件夹个数。
内节点桶(备用):
RHEL6的ext4:每个内节点256字节。
RHEL5的ext3:每个内节点128字节。
块桶:放数据。
——————————————————————
实验2:
[root@station10 tmp]# echo 'xxx' >1.txt
[root@station10 tmp]# du -sh 1.txt
4.0K 1.txt
#'xxx' 不肯会这么大。
[root@station10 tmp]# ls -i 1.txt
788775 1.txt
——————————————————————————
移动文件不动数据块。
首块与内节点联系。
删除:剪断内节点和块的联系,并把内节点和块标记为无用状态。
MBR
首先来了解一些信息。
1. fdisk /dev/sda 然后按 p ,会看到如下信息。( fdisk -l /dev/sda )
Disk /dev/sda: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x23e023df
实际上硬盘不可能有255个磁头,而是靠着一个硬盘背后的一个芯片来映射的。每个盘片有63个扇区,每个扇区存512字节。了解完这些信息后,来了解硬盘的分区表。分区表是存在MBR(主引导记录)上的,而MBR是存在硬盘最靠圆心的第一扇区上,也就是用512字节存储MBR。而512字节又分为3段:446+64+2 。
446: 引导程序。(linux的引导头是grub)
64: 分区表
2: 5A(表示引导结束)
64字节中,每个分区16字节,也就是最多只能有4x16,4个主分区。总共可以有15-1(有一个是扩展分区标识)个分区。扩展分区也是主分区,然而它是一个特别的主分区。
如果分区表被破坏,那么所有数据也将全部丢失。
分区需要是连续的柱面。
:::::::::
————————————————————————————————————————
1. 分区-------文件系统 (老师称之为 1级文件系统)
2. 分区-------md------文件系统 (老师称之为2级文件系统)
转载于:https://blog.51cto.com/2928675/1114741