Linux磁盘和文件系统

早期的Linux版本使用ext2文件系统,是一种索引型的文件系统。文件系统(FileSystem)与磁盘的关系是,将磁盘挂载到文件系统相应的目录下面。磁盘的使用必须经过分割、格式化和挂载,相应的命令为fdisk、mkfs和mount。通过df命令可以查看操作系统中磁盘都是挂载在哪些位置的。一般安装Linux操作系统时,至少要分区为/和swap,swap是为了在系统内存不足的时候用来给系统做内存用的。以下五个目录必须和/根目录在同一个文件系统中:/bin、/sbin、/ect、/lib和/dev。

 

磁盘第一个扇区很重要,记录MBR(master boot record),可以安装开机管理程序,446字节用于这个,还有64字节用于记录磁盘分区情况,即partion table。

 

开机管理流程:BIOS->MBR->boot loader->加载kernel。其中boot loader可以安装在两个地方,一个是MBR,另一个是文件系统的boot sector。

 

ext2文件系统最前面部分是一个boot sector,即启动扇区,可以安装开机管理程序,这个很重要,因为它对电脑安装多系统环境很有帮助,只需要将不同的系统的开机管理程序安装在不同文件系统的boot sector,,而不用都占用唯一的一个MBR。另外,如果整个文件系统只有一块的话,会导致磁盘碎片的产生,进而可能影响搜索的性能(毕毕竟ext2是索引式文件系统)。分块的话,文件系统就被分成了boot sector和各个block group,(命令dumpe2fs  /dev/sda2可以显示)。每个block group(其实superblock只有一个,其他有的话也是拷贝第一个里面的内容的)包括:档案系统描述、superblock、inode bitmap、block bitmap、inode table和block六大部分。其中superblock用来记录文件系统大小,本身大小有的是1024字节,存放的inode和block的数目、大小,可用的inode、block数目,就是一些文件系统基本信息,很重要。inode bitmap用来记录已用和未使用的inode位置和大小,block对应记录block的。inode table记录文件的属性、权限等,大小有128字节和256字节。block记录的是文件的实际内容,大小有1K、2K和4K的。一个文件只有一个inode来存储,可以占用多个block。每个block记录会在inode中花费4字节。


128字节的inode是如何索引到一个比较大的文件的?(即inode、block与文件的关系)

假定block大小为1K。系统将inode记录block号码的区域分为12个直接,1个间接,1个二级间接,1个三级间接。间接的时候,1K可以存放1024/4=256个,故间接可以存放256X1K=256K的数据,所以,总共可以存储12+256+256X256+256X256X256的数据,转换后可得出大约是16GB的数据。所以block为1K时,一个inode最大可以存储的文件大小是16GB。但是block为2K和4K时不能简单的用同样的方式计算,因为系统设置了相应的限制,不能让其过大,2K最大文件为256GB,4K为2TB。

目录树:

文件系统中创建目录的时候,系统会给该目录分配inode和block,inode用来记录目录的属性、权限和block号码等,block用来记录该目录下的文件名和文件名占用的inode号码数据。所以文件读取的时候,比如/home/test文件,读取的顺序为/的inode和block,然后home的inode和block,最后是文件test的inode和block。

创建文件的时候,文件系统中相应的inode bitmap、block bitmap和superblock都会相应的改变。


由于ext2文件系统没有日志管理的功能,导致系统突然断电等情况下编写的文件不容易找回,后来又使用了ext3系统,在文件系统中增加了日志模块,可以记录文件的信息,即使系统突然down掉,通过日志文件可以迅速定位到编写的文件并复原文件,使文件不容易丢失。


磁盘使用流程:

使用fdisk /dev/hdc建立新的partion,按p查看是否正确,按w保存。格式化命令为mkfs -t ext4 /dev/hdcnew,格式化新建的partion。修改/etc/fstab文件,格式如/dev/hdc /要挂载的目录地址 default 1 2。最后,用mount -a自动挂载。用df可以查看挂载的是否正确。

 

关于硬盘中磁盘的介绍,这篇博客写的比较好:http://blog.chinaunix.net/uid-23069658-id-3413957.html

### 回答1: Linux磁盘文件系统是指在Linux操作系统,用于管理磁盘文件的一系列工具和机制。磁盘是计算机存储数据的主要设备之一,而文件系统则是用于组织和管理磁盘上的文件和目录的一种机制。在Linux,常用的文件系统包括ext4、XFS、Btrfs等,而磁盘管理工具则包括fdisk、parted、LVM等。通过这些工具和机制,用户可以对磁盘进行分区、格式化、挂载等操作,以及对文件进行创建、读写、删除等操作。 ### 回答2: Linux磁盘文件系统Linux操作系统非常重要的组成部分。磁盘是一种外部设备,用于存储数据和文件文件系统是在磁盘上实现的一种组织结构,用于管理和访问存储在磁盘上的文件Linux支持多种文件系统,包括EXT2、EXT3、EXT4、XFS等。其EXT4是当前最常用的文件系统之一。它具有较高的性能和可靠性,支持更大的文件和更高的容量。它还有一个非常重要的特性是支持日志化文件系统,可以保护文件系统数据的完整性。 在Linux磁盘分区是必要的,它可以将一个硬盘分割成多个逻辑分区,每个分区都可以被格式化为一个独立的文件系统。此外,Linux还支持逻辑卷管理(LVM),它可以动态地管理磁盘卷,包括自动扩展和缩小,实现灵活的磁盘管理和使用。 挂载是Linux非常重要的概念。当磁盘被格式化为文件系统后,需要将其挂载到文件系统层次结构的一个目录下才能访问。例如,如果一个磁盘挂载到目录“/mnt/data”,那么可以通过“/mnt/data”访问该磁盘上的文件。 总之,Linux磁盘文件系统Linux操作系统非常重要的组成部分,可以帮助用户管理和访问存储在磁盘上的文件,并实现高效、灵活、可靠的磁盘管理。 ### 回答3: Linux 操作系统的磁盘管理和文件系统是其一个非常强大的特点。在 Linux 磁盘是通过文件系统来管理和组织的。文件系统可以理解为是一种组织文件的方法,它是由数据结构和算法组成的。 Linux 平台支持多种文件系统,包括 ext2、ext3、ext4、NTFS、FAT32 等,其 ext2、ext3、ext4 是 Linux 平台上常用的三种文件系统。这些文件系统之间有一些区别和特点,如 ext4 是一个比 ext3 更强大和更高效的文件系统。NTFS 和 FAT32 是 Windows 平台上的文件系统,但也能够在 Linux 上使用。 Linux 上的文件系统会将磁盘分为多个分区(也就是卷),每个分区都会有自己的格式和挂载点。通常我们会将根分区(也就是 / 分区)以及各个其他重要分区分别挂载到不同的目录下,如 /home、/var、/usr 等。 同时,Linux 认为所有设备和文件(包括硬盘、CD-ROM、网络驱动器等)都是文件,因此每个设备都会有相应的设备文件,如 /dev/sdb 是一个 SATA 硬盘设备文件。 为了保护磁盘文件系统的安全和完整性,Linux 提供了多种方法来管理文件系统,如创建和删除分区、格式化磁盘、挂载和卸载文件系统等。同时,Linux 也提供了多种工具来检查和修复文件系统的错误,防止数据丢失。 总之,Linux磁盘文件系统管理是一个非常重要的方面,可以帮助用户保护数据安全和系统稳定。学会使用这些工具和技术,对于 Linux 的系统管理员和开发者来说是非常必要的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值