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 linuxext 。即一个操作系统一个文件系统。

File system 详细结构

 

超级块:描述位置。

内节点个数决定文件及文件夹个数。

内节点桶(备用):

RHEL6ext4:每个内节点256字节。

RHEL5ext3:每个内节点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字节,也就是最多只能有4x164个主分区。总共可以有15-1(有一个是扩展分区标识)个分区。扩展分区也是主分区,然而它是一个特别的主分区。

如果分区表被破坏,那么所有数据也将全部丢失。

 分区需要是连续的柱面。

 

 

:::::::::

————————————————————————————————————————

1.    分区-------文件系统    (老师称之为 1级文件系统)

2.    分区-------md------文件系统    (老师称之为2级文件系统)