linux EXT文件系统

Posted 672530440

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux EXT文件系统相关的知识,希望对你有一定的参考价值。

将一个硬盘分区之后如何创建文件系统(windows来讲就是如何针对分区来进行格式化,是采用FAT32的文件系统来格式化,还是采用NTFS的文件系统来格式化)。Linux主要采用EXT2,EXT3分区格式来进行分区格式化的。

当将一块新的硬盘挂载到linux上首先就要fdisk分区,然后对分区进行格式化操作(linux里面叫做创建文件系统),对分区创建文件系统,支持的文件系统格式目前是EXT2,EXT3.

EXT2,EXT3文件系统格式的区别:早期是基于ext2,有一个弊端就是不支持操作记录,进行相关操作的时候不会有日志文件产生,导致出现问题很难去排查。Ext3会产生日志文件,如果linux系统是基于ext3来安装的,会有日志信息,

root@ubuntu:/var/log# ls
alternatives.log       faillog            syslog.6.gz
alternatives.log.1     fontconfig.log     syslog.7.gz

而基于ext2是不会有日志文件的。现在的发行版都是基于ext3安装的。Ubuntu都开始执行ext4的。

下面以ext3方式给分区创建文件系统:

 

Fdisk -l : 
Command (m for help): p
Disk dev/sdb: 2 GiB, 2147483648 bytes, 4194304 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x7251b8e3
(现在dev/sdb只有一个分区)
Device     Boot Start     End Sectors Size Id Type
dev/sdb1         2048 4194303 4192256   2G 83 Linux

root@ubuntu:/# mke2fs /dev/sdb1 (给分区指定文件系统)

(/dev/sdb1是分区的绝对路径,就创建完文件系统了,默认是ext2文件系统,
root@ubuntu:/# mkfs.
mkfs.bfs      mkfs.ext3     mkfs.fat      mkfs.ntfs     
mkfs.cramfs   mkfs.ext4     mkfs.minix    mkfs.vfat     
mkfs.ext2     mkfs.ext4dev  mkfs.msdos   
默认调用的是mkfs.ext2命令)

mke2fs 1.42.13 (17-May-2015)
Creating filesystem with 524032 4k blocks and 131072 inodes
Filesystem UUID: 0b2cc385-1251-4219-b346-dc1ba2f086a7
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912

Allocating group tables: done                            
Writing inode tables: done                            
Writing superblocks and filesystem accounting information: done 

root@ubuntu:/# mke2fs -j /dev/sdb1 (加上-j,这个时候分区创建的文件系统是ext3的)
mke2fs 1.42.13 (17-May-2015)
/dev/sdb1 contains a ext2 file system (原有是ext2格式)
    created on Tue Feb 13 19:13:31 2018
Proceed anyway? (y,n) y
Creating filesystem with 524032 4k blocks and 131072 inodes
Filesystem UUID: b08780b9-9c1d-4b94-a804-4d0ac3ffcf82
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done 

这个文件系统创建出来之后,通常都是要进行检测的,分区指定好文件系统之后(格式化之后)这个分区是否有相应的错误(扇区的错误,硬盘的逻辑分区的错误)。
root@ubuntu:/# e2fsck /dev/sdb1
e2fsck 1.42.13 (17-May-2015)
/dev/sdb1: clean, 11/131072 files, 17205/524032 blocks
(这个检测是非常快的,因为当前的文件系统是没有任何文件的,是空的分区,只是检测扇区或者硬盘块)(有错误会有强行修复)
root@ubuntu:/# e2fsck -p /dev/sdb1 (-p是有错误进行强行修复)
/dev/sdb1: clean, 11/131072 files, 17205/524032 blocks

(e2fsck 是用来检测修复文件系统的,mke2fs 是用来创建文件系统的)(创建完分区后不能马上拿过来使用,要先创建文件类型格式,最后才能挂载使用了)

root@ubuntu:/# mount (当前正在使用的硬盘上挂载情况,。其他硬盘看不到)
(sda1分区挂载在/目录下,类型是ext4,操作系统通过目录找硬件设备)
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/sda1 on /var/lib/docker/overlay2 type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/sda1 on /var/lib/docker/overlay2 type ext4 (rw,relatime,errors=remount-ro,data=ordered)

当使用mke2fs -j /dev/sdb1创建完文件系统之后,这个文件系统是生效的是可以使用的,每一个分区都是要挂载到某个目录上去的(操作系统是通过目录查找硬件设备)
(当文件系统连续被挂载多少次之后,或者是文件系统在使用多少天之后,这个文件系统在操作系统重启的时候将会使用e2fsck 进行自动检测,检测也是一段程序也会调用相关的命令执行,)。

root@ubuntu:/# tune2fs -l dev/sdb1 (查看分区的详细信息)
tune2fs 1.42.13 (17-May-2015)
Filesystem volume name:   <none>  :卷的名称
Last mounted on:          <not available> :上次挂载时间
Filesystem UUID:          b08780b9-9c1d-4b94-a804-4d0ac3ffcf82 :UUID号
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype s

root@ubuntu:/# tune2fs -c 100 /dev/sdb1(该分区挂载100次之后,系统重启时进行检测,是否有坏块,坏的文件)
tune2fs 1.42.13 (17-May-2015)
Setting maximal mount count to 100

root@ubuntu:/# tune2fs -i 100d /dev/sdb1 (该分区挂载70天之后,系统重启时进行检测,是否有坏块,坏的文件)
tune2fs 1.42.13 (17-May-2015)
Setting interval between checks to 8640000 seconds

当硬盘划分好之后,windows和linux操作系统中,都有卷标,一个标识,

 

root@ubuntu:/# e2label /dev/sdb1 yw卷标名  (给分区指定卷标)
root@ubuntu:/# tune2fs -l dev/sdb1
tune2fs 1.42.13 (17-May-2015)
Filesystem volume name:   yw卷标名 :卷标
Last mounted on:          <not available>
Filesystem UUID:          b08780b9-9c1d-4b94-a804-4d0ac3ffcf82
Filesystem magic number:  0xEF53

root@ubuntu:/# find 
find     findfs   findmnt  
root@ubuntu:/# findfs LABEL=yw卷标名   (查找卷标信息,的分区信息)
/dev/sdb1

mke2fs是创建文件系统,e2fsck 检测当前文件系统,tune2fs 查看文件系统信息,e2label 指定卷标名称,findfs 查找卷标信息。

------------------上面讲的是如何创建文件系统,就是如何格式化分区,fdisk针对新的硬盘建立好分区之后,首先要创建文件系统,windows上面基本上只要把分区格式化之后(创建NTFS文件系统)分配好相应的盘符就可以使用了,linux上使用新的硬盘,分区,挂载文件系统,最后还要挂载操作-------------------------------------------

 linuxx的一个硬盘看成D盘和E盘的合体,分区是D盘或E盘,卷标是D盘或E盘的名字

以上是关于linux EXT文件系统的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

Linux EXT2 文件系统

linux EXT文件系统

Linux分区类型EXT2EXT3EXT4详解

Linux系统中有哪几种类型的文件。

ext2文件系统源代码之xattr.c