第二部分 第八章 Linux磁盘与文件管理系统

第二部分 第八章 Linux磁盘与文件管理系统
        1) 磁盘的物理组成
        2)分区,分区的要点:记录每一个分区的起始点与结束柱面
           主引导区,MBR就是在一块硬盘的第0轨道上,计算机启动后要去使用硬盘时
           必须读取的第一个区域。这个去路记录了硬盘的所有分区信息,以及启动时
           可以写入引导程序的位置。
           MBR的最大限制,它的大小不能大到存储所有分区与引导程序的信息,因此
           MBR仅能提供最多四个分区的信息,这就是主分区与扩展分区最多只能有4个的
           原因
        3)文件系统
            一个扇区大小为512字节,为了提高效率,就有了逻辑块的概念,块的大小
            是以扇区的2n次方的倍数。划的大文件读取效率高,但是造成的浪费空间
            也大。
            进行分区时,每个分区就是一个文件系统,每个文件系统开始位置的那个块
            就称为超级块,超级块的作用是存储文件爱你系统的大小,空的和填满的快
            使用一个分区来访问数据时,第一个要经过的就是超级块。
        4)Linux的EXT2文件系统(inode)
            在标准的EXT2文件系统中,每个人文件的内容分为两个部分来存储,
            一个是文件的属性,一个是文件的内容。
            ext2规划出inode与块来分别存储文件的属性(放在inode中)与文件内容
            (放在block中),
            inode记录“该文件的相关属性,以及文件内容放置在哪个块内”的信息,
            1.该文件的拥有者与用户组(owner/group)
            2.该文件的访问模式(read/write/execute)
            3.该文件的类型(type)
            4.该文件建立或状态改变的时间(ctime),最近一次的读取时间(atime)
            最近修改的时间(mtime)
            5.该文件的大小
            6.定义文件属性的标志,如SetUID
            7.该文件真正内容的指针
            一个inode的大小是128字节,
        5)Linux读取文件内容
           1.目录,ext2会给该目录分贝一个inode与至少一个块,
             inode记录该目录的相关属性, 并指向分配到那个块,块记录这个目录
             下的相关文件的关联性
           2.文件, ext2会给该文件分配至少一个inode与该文件大小的块数量,
           例如一个块大小为4KB,要建立一个100KB的文件,Linux将分配一个inode
           与25个块来存储该文件。
           注意,inode本身并不记录文件名,而是记录文件的相关属性,文件名则记录
           在目录所属的块区域。文件的相关连接会记录在目录的块数据区域,
           操作系统读取/etc/crontab的流程
           1.操作系统根据根目录的相关数据获取/etc目录所在的inode,并读取/etc
           这个目录的所有相关属性.
           2.根据/etc的inode数据,可以获取/etc目录下所有文件的关联数据是放置在
           哪一个块中,并前往该块读取文件的关联性内容.
           3.由上一个步骤的快照那个,可以知道crontab文件的inode所在地,
           并前往该inode
           4.有上一个步骤的inode,俄可以获取crontab文件你的所有属性,
           前往inode所指向的块区域,顺利获取crontab的文件内容
           目录最大的功能在于提供文件的关联性,在关联性中就是"文件名
           与inode的对应数据",在ext2文件系统中,有几个要注意的事情:
           1)ext2与ext3文件在建立时,就已经设置好固定的inode数与块数目
           2)格式化ext2文件系统,可以使用mke2fs程序执行
           3)ext2允许块的大小为1024,2048,4096
           4)一个分区所能允许的最大文件数与inode的数量有关,因为有一个文件
           至少要占用一个inode
           5)目录下面的文件数如果太多,导致一个块无法容纳所有的数据,
           Linux会给予该目录多个块,来继续记录关联数据。
           6)通常inode数量设置为“分区的容量”/“一个inode预计想要控制的容量”。
           7)inode比块多是没有意义的
           8)块越小,inode数量越多,
           8)块越大,inode数量越少
          
           简单归纳,ext2有以下几种特性
           1)块与inodes在一开始格式化时就已经固定了
           2)一个分区能够容纳的文件数与inode有关
           3)一般,每4KB的硬盘空间分配一个inode
           4)一个inode的大小为128字节
           5)块为固定大小,当前支持1024/2048/4096
           6)块越大,则损耗的硬盘空间也越多
           7)对于单一文件,若块大小=1024,最大容量为16GB,
           若块大小=4096,容量最大为2TB
           8)对于整个分区,若块大小=1024,则容量为2TB,若块大小=4096,
           则容量为32TB。
           9)文件名最长大255,文件文件名长达4096
           另外,分区太大,文件碎片,会使效率太低,分区分散,数据读取性能也
           低下。
          
        6) ext2/ext3 文件的访问与日志文件系统的功能
            建立ext2时,它拥有超级块(superblock), 组描述(group description)
            / 块位图(block bitmap)/inode位图(inode bitmap)/
            inode表(inode table),数据块(data blocks)。
            1)SuperBlock(超级块):它是记录整个文件系统相关信息的地方
               记录的信息主要有:
               1.块与inode的总量
               2.未使用与已使用的inode/块数量
               3.文件系统的载入时间,最近一次写入数据的时间,
               最近一次检查磁盘文件的相关信息
               4.有效位数值,若已被载入,则为0,若未载入,则为1
            2)Group Description :记录此块由何处开始记录。
            3)Block bitmap :此处记录块是否使用
            4) inode bitmap :此处记录inode是否使用
            5)Inode table :为每个inode的数据存放区
            6)Data blocks :为每个块的数据存放区
            例如:dumpe2fs /dev/hda1
       
        当新增一个文件(目录)时:
            1)根据inode位图/块位图信息,找到尚未使用的inode与块,进而将
            文件的属性与数据写入inode与块
            2)将刚刚使用的inode与块的号码告知超级块,inode位图,块位图,
            让这些元数据更新信息。
            inode与块区域称为数据存放区,超级块,块位图,inode bitmap记录
            称为元数据(metadata)。
       
        数据的不一致
            系统中断时,会发生元数据与数据存放区不一致的情况。在ext2中会强制
            检查数据的一致性,不过会非常费时,以为要搜索整个分区。
            日志系统:
            1。写文件时,先在日志记录块中记录:要开始写入文件了
            2.开始吸入文件的权限与数据
            3.开始更新元数据与数据
            4.完成数据与元数据的更新后,在日志记录块中完成该文件的记录
            当发生问题时,系统只用去减产日志记录就可以了。可以通过ext3
            可以实现
       
        7) Linux文件系统的运行
            Linux采用异步方式读取文件, 系统将块数据加载到内存中,改动时需要
            回写到文件中
        8)载入点 载入点就是进入该文件系统的入口
        9)Linux支持的其他文件系统,常见的有:
            传统文件系统:ext2/ minix /MS-DOS/FAT/iso9660
            日志式文件系统:ext3/reiserFS/NTFS/JFS/XFS
            网络文件系统:NFS/SMBFS
        10) 文件系统的简单操作
            df :磁盘与目录的容量
            du :查看文件或目录
        11)连接文件 : In
            1,硬连接或实际连接
                硬连接只是在某个目录下新增了一个该文件的哦关联数据而已
                都是指向同一份数据块,硬连接不会同调inode与磁盘空间
            限制:不能块文件系统,不能连接目录
           
            2.符号链接(即快捷方式)
           
            指令:In [-sf] 源文件 目标文件
           
        12)磁盘的分区,格式化,检验与载入
            fdisk :分区(略,暂时不想了解)
            mke2fs :磁盘格式化
            fsck,badblocks:磁盘检验,
       
        13)磁盘的载入与卸载
            mount [-tonL] 设备号 载入点
            例如: mount -t ext3 /dev/hdb5 /mnt/hdb5
            载入光盘:mount -t iso9660 /dev/cdrom /mnt/cdrom
            列入所有已载入的分区数据:mount
           
            unmonut 设备号或载入点
        14)修改磁盘参数
            mknod
            e2label
            tune2fs 转化文件系统
            hdparm 启动DMA模式
        15)设置启动载入
            1.载入软盘 mount -t ext2 /dev/fd0 /media/floppy
            2.载入windows磁盘 mount -t vfat /dev/hda1 /mnt/win96
                mount -t vfat -o iocharset=cp950 /dev/hda1 /mnt/win98
            3.载入U盘 fdisk -l 查看所有的磁盘载入的情况
                mount -t vfat /dev/sda1 /mnt/usb
        16)启动载入/etc/fstab 和 /etc/mtab
            系统载入的一些限制:
            根目录是必须被载入的,一定要先于其他的载入点载入
            其他载入点必须是已建立的目录,但要遵守系统目录结构的原则
            所有载入点同一时间之内,只能载入一次
            所有分区在同一时间,只能载入一次
            若进行卸载,必须将工作目录移到载入点之外
            cat /etc/fstab
        17)建立虚拟内存容量
            1.fdisk /dev/hd[a-d][1-16] 建立一个新磁盘分区
            2.使用mkswap /dev/hd[a-d][1-16] 将分区格式化成swap的文件格式
            3.启动swap,swapon /dev/hd[a-d][1-16]
            4.关闭虚拟内容,使用swapoff即可
        18) 建立虚拟内存文件
            1.使用dd命令建立swap文件
            2.使用mkswap将swap文件格式化为虚拟内存的文件格式
            3.使用swapon来启动该文件,使其成为虚拟内存
            使用swapiff来关闭该文件
        习题:
            1) 如何在Linux系统中增加一个新硬盘,请详述流程
            答:插上硬盘
            fdisk进行分区
            mkfs 格式化
            mkdir建立目录
            mount进行磁盘挂载
            vi /etc/tstab
            最后一行加上 /dev/sdb1 /www ext3 defaults 1 2
               
            2) 假设条件:原来规划的/home只有1GB,但当前用户很多,
            所以容量不足,我想增加一个一个8GB硬盘,如何做
            答:分成多个区,mount到/home目录下的不同目录
               
            3) 如果分区/dev/hda3有问题,但它是被载入的,如何改变
            答:umount /dev/hda3 然后进行操作
               
            4) 我们常说,启动的时候“发现硬盘有问题”,请问,这个问题
            是指“文件系统的损坏”,还是指“硬盘的损坏”
            答:一般指的是“文件系统的损坏”
               
            5) 我有两个文件,分别是file1和file2,这两个文件互为硬连接文件,
            请问,若将file1删除,然后再以vi的方式建立一个名为file1的文件
            ,file2的内容是否会被更改
            答: 会被更改的。
                删除file1,但是file2还是包含file1的信息,删除后会找不到文件
                但是新建同名文件会造成file2会指向新的file1,所以内容会发生
                更改的

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值