`

磁盘文件系统管理

 
阅读更多

Ext2: Linux second extended file system, ext2fs

 

文件储存: 

1) 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector),每个扇区储存512字节

2) 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。

3) 文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,"索引节点"。

4) 硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。

 

文件系统数据存储:

superblock: 记录此filesystem的整体信息,包含inode/block的总量、使用量、剩余量,以及文件系统的格式与相关信息等

inode: 记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的block号码

block: 数据记录文件的内容,若文件太大,会占用多个block

 

1. inode table

1). 文件权限(read/write/execute)

2). 文件拥有者和群组(owner/group)

3). 文件大小

4). 时间戳:ctime文件创建和权限变更的时间,mtime文件内容变动的时间,atime最后一次读取时间

5). 文件特性(flag), SetUID, SetGID

6). 链接数,即有多少文件名指向这个inode

7). 文件数据指向(poniter)block的位置

 

查看文件的inode信息:

stat myfile.txt

 

inode大小:

1) 每个inode 128bytes

2) 每个文件一个inode

3) 没1KB设置一个inode. 1G硬盘, inode table的大小为128bytes/inode * 1inode * 1000=128M

 

inode也会消耗硬盘空间,

节点的大小,一般是128字节或256字节。inode节点的总数,在格式化时就给定,一般是每1KB或每2KB就设置一个inode。

假定在一块1GB的硬盘中,每个inode节点的大小为128字节,每1KB就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘的12.8%。

 

查看inode总数和已使用量,可以使用df命令。

df -i

 

2. data block

ext2支持的block大小有1K, 2K, 4K三种

格式化时,block大小就固定了,且每个block都有编号,以方便inode记录

block大小对最大文件的限制:1K(16G), 2K(256G), 4K(2T)

 

Ext2文件系统,block的限制

1) block的大小和数量在格式化时已确定,需要修改,必须重新格式化

2) 每个block只能防止一个文件的数据。若文件大于block,则占用多个block;若文件小于block,则block中的剩余容量将浪费

 

3. superblock:记录整个filesystem信息

1) block和inode的总量

2) 已使用和未使用的inode/block数量

3) block和inode的大小(block 1,2,4K, inode 128bytes)

4) filesystem的挂载时间,最近一次数据写入时间,最近一次磁检(fsck)时间

5) 一个valid bit数值。已挂载,valid bit为0;未挂载,valid bit为1

 

查询文件系统信息:

dumpe2fs [-h] dev

csp:~ # dumpe2fs -ob superblock /dev/sda10

dumpe2fs 1.38 (30-Jun-2005)

dumpe2fs: No such file or directory while trying to open superblock

Couldn't find valid filesystem superblock.

csp:~ # dumpe2fs  /dev/sda10

dumpe2fs 1.38 (30-Jun-2005)

Filesystem volume name:   <none>

Last mounted on:          <not available>

Filesystem UUID:          9b76118a-1923-40cc-9600-dba5bd2329ba

Filesystem magic number:  0xEF53

Filesystem revision #:    1 (dynamic)

Filesystem features:      has_journal filetype needs_recovery sparse_super

Default mount options:    (none)

Filesystem state:         clean

Errors behavior:          Continue

 

各个挂载盘的block大小,一个目录下,文件数较多,导致一个block无法容纳下所有inode对照表

csp:~ # ll -d / /bin /boot /proc /lost+found /sbin

drwxr-xr-x  41 root root  4096 Jun 14 14:38 /             # 1个 4K block

drwxr-xr-x   2 root root  4096 Apr  2  2011 /bin          # 1个 4K block

drwxr-xr-x   3 root root  1024 Jun  2  2009 /boot         # 1个 1K block

drwx------   2 root root 16384 Jun  2  2009 /lost+found   # 16个 4K block

dr-xr-xr-x 588 root root     0 May 27 11:36 /proc         # 此目录不占用磁盘空间

drwxr-xr-x   3 root root  8192 Aug  1  2011 /sbin         # 8个 4K block

 

查询磁盘分区:

fdisk -l

fdisk /dev/sda

 

格式化

mkfs -t ext3 /dev/hda6

 

ext2、ext3磁盘挂载:

mkdir /mnt/hda6

mount /dev/hda6 /mnt/hda6

mount -l

 

cd/dvd挂载:

mkdir /media/cdrom

mount /dev/cdrom /media/cdrom

 

格式化挂载软盘:

mkfs -t vfat /dev/df0

mkdir /media/floppy

mount -t vfat /dev/fd0 /media/floppy

 

挂载闪存:

mkdir /mnt/flash

mount -t vfat /dev/sda1 /mnt/flash

 

卸载:

unmount [-fn] 挂载点/设备名

 

开机挂载:

/etc/fstab

/etc/mtab

 

分享到:
评论

相关推荐

    模拟一个小型磁盘文件管理系统

    设计一个简单的磁盘文件管理系统,用文件模拟磁盘,用数组模拟缓冲区,要求实现: (1)支持多级目录结构,支持文件的绝对路径访问; (2)文件的逻辑结构采用流式(字节流)结构,物理结构采用链式结构中的显式链...

    操作系统课程设计报告-建立基于磁盘存储设备的FAT文件系统_磁盘文件系统

    此外,还需要提供友好的用户界面,展示磁盘文件系统的状态和空间使用情况,以及虚拟磁盘的转储功能,允许信息在磁盘和内存之间交换。 通过这个课程设计,学生不仅能巩固书本上的理论知识,如FAT文件系统的工作原理...

    磁盘文件管理系统操作系统

    通过设计和调试一个简单的文件系统,主要是模拟文件操作命令的执行,来模拟文件管理,使学生对主要文件操作命令的实质和执行过程有比较深入的了解,掌握它们的基本实施方法。文件管理的主要任务是对用户文件和系统...

    实验一 磁盘管理和文件系统管理

    一、实验目的:掌握Windows Server 2008系统中的磁盘管理和文件系统管理,包括基本磁盘中分区的创建,动态磁盘中各种动态卷的创建。

    模拟实现采用二级目录结构的磁盘文件系统中的文件操作。

    模拟实现采用二级目录结构的磁盘文件系统中的文件操作。 文件系统是操作系统中管理和存取信息的机构,它具有“按名存取”的功能,不仅方便用户,而且能提高系统效率且安全可靠。 在用户程序中可使用文件系统提供的...

    磁盘文件管理系统课程设计

    本课程设计的目的是让学生深入理解文件系统的工作原理,并能够实际编写或设计一个简单的磁盘文件管理系统。以下是对该课程设计涉及的知识点的详细解释: 1. **文件系统概述**:文件系统是操作系统用来组织、命名、...

    C++模拟磁盘文件系统

    在计算机科学中,磁盘文件系统是用于组织和管理存储在磁盘上的数据的重要组成部分。本文将深入探讨如何使用C++来模拟一个简单的磁盘文件系统。C++是一种强大而灵活的编程语言,适合实现这样的系统,因为它允许我们对...

    磁盘文件管理

    在IT领域,磁盘文件管理是一项至关重要的任务,它涉及到计算机系统如何组织、存储和访问数据。本程序是一个简单的磁盘管理工具,旨在帮助用户更有效地管理他们的文件系统。下面我们将详细探讨磁盘文件管理的一些核心...

    模拟操作系统 os 进程 设备 磁盘 文件管理实现 比较简单 c 语言版

    文件系统的性能直接影响到用户对数据的访问速度和系统的整体效率。 **C语言实现**: 选择C语言作为实现语言是因为其底层操作能力和高效的性能。C语言允许直接访问硬件,非常适合编写操作系统这类对性能有严格要求的...

    Linux磁盘及文件系统管理详解

    ### Linux磁盘及文件系统管理详解 #### 一、硬盘物理结构及相关结构 在深入了解Linux磁盘及文件系统管理之前,我们先从物理层面来理解硬盘的基本构成。 **1. 硬盘内部视角实物图** 硬盘内部由一系列的盘片...

    centos7磁盘和文件系统管理

    CentOS 7 磁盘和文件系统管理 在 CentOS 7 中,磁盘和文件系统管理是非常重要的系统管理任务之一。通过本篇文章,我们将详细介绍 CentOS 7 中的磁盘和文件系统管理,包括磁盘的分区、文件系统的创建、挂载和管理等...

    操作系统课设(模拟磁盘文件系统实现).zip

    操作系统课设通常旨在让学生深入理解操作系统的核心概念,尤其是与存储管理相关的部分,如磁盘文件系统。在这个项目中,学生需要模拟一个磁盘文件系统,这涵盖了数据在磁盘上的组织、文件的创建、读写操作以及磁盘...

    磁盘文件管理系统(asp.net)

    权限管理是文件系统的关键部分。在ASP.NET中,我们可以利用内置的角色和身份验证机制来实现这一功能。通过配置Web.config文件,我们可以定义不同用户角色,并设置相应的访问权限。例如,某些用户可能只能查看特定...

    windows磁盘文件系统

    Windows磁盘文件系统是计算机操作系统中负责数据存储、检索、更新、删除等文件管理任务的核心组件。它负责将硬盘上的数据划分为文件和目录,并管理这些文件和目录,以确保用户能够快速方便地访问和使用存储在硬盘上...

    操作系统文件及磁盘管理

    2. 文件系统:DriveInfo类还提供了获取磁盘文件系统的功能,如FAT32、NTFS等。 3. 磁盘清理:C#可以通过Directory和File类来删除无用文件,释放磁盘空间。例如,可以查找特定类型的临时文件并删除。 4. 磁盘碎片...

    操作系统磁盘文件管理源码.doc

    磁盘文件管理是操作系统中的一部分,负责管理和组织计算机中的文件系统。磁盘文件管理的主要任务是将文件系统中的文件和目录组织起来,提供给用户访问和操作文件的接口。 在该源码中,作者定义了多个结构体来描述...

    浅析Linux的文件系统和磁盘管理.pdf

    浅析Linux的文件系统和磁盘管理 Linux操作系统的文件系统是存储和管理文件的方法,所有的软硬件资源全部看做文件。文件系统是操作系统的基本结构,因几乎所有与用户、应用程序或安全性模型的沟通方法都与文件保存的...

    磁盘管理 文件监控 修改文件

    格式化则是为新磁盘或分区设置文件系统,如FAT32、NTFS或exFAT,不同的文件系统适用于不同需求,如NTFS支持更大的文件和更高级的安全特性。磁盘清理则可以帮助用户释放空间,删除不必要的临时文件、系统日志、垃圾...

    实验五 文件系统和磁盘管理

    本实验将引导你了解如何对磁盘进行分区、格式化、挂载以及设置自动挂载,这些都是Linux系统管理员必备的基本技能。下面将详细阐述这些步骤和相关的知识点。 一、磁盘分区 磁盘分区是将物理硬盘划分为多个独立的逻辑...

    模拟磁盘文件管理系统

     login 用户登录  dir 列文件目录  create 创建文件  delete 删除文件  open 打开文件  close 关闭文件  cd 改变目录  mkdir 创建目录  rddir 删除目录  halt 退出系统

Global site tag (gtag.js) - Google Analytics