Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >从磁盘存储维度观测ext4文件系统

从磁盘存储维度观测ext4文件系统

作者头像
用户4700054
发布于 2023-02-26 06:41:25
发布于 2023-02-26 06:41:25
1.2K00
代码可运行
举报
运行总次数:0
代码可运行

Basic Concept

block

  • 文件系统把每个磁盘分割为多个block group.每个block group有被分割为多个block.每个block是文件在磁盘上连续空间。当使用默认文件系统参数时候,每个block大小是4k.当touch文件不写入任何数据时候,文件是不会被分配任何的block,当写入一定数据时候会以block为基本单位进行分配空间给文件。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 创建空文件
$ touch /mnt/ext4/a.txt
// Blocks是磁盘扇区的大小,IO Block是操作系统每次IO的大小(4K),明显占用扇区的大小为0
$ stat /mnt/ext4/a.txt 
  File: /mnt/ext4/a.txt
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 840h/2112d      Inode: 12          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-10-03 01:54:44.733048293 +0000
Modify: 2022-10-03 01:54:44.733048293 +0000
Change: 2022-10-03 01:54:44.733048293 +0000
 Birth: 2022-10-03 01:54:44.733048293 +0000

// 尝试写入数据写入到文件
$ echo -n "hello" > /mnt/ext4/a.txt 
// 这里看到ext4文件系统分配了8个扇区,每个扇区大小是512个字节,所以8个扇区大小就是IO Block大小
$ stat /mnt/ext4/a.txt 
  File: /mnt/ext4/a.txt
  Size: 5               Blocks: 8          IO Block: 4096   regular file
Device: 840h/2112d      Inode: 12          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-10-03 01:54:44.733048293 +0000
Modify: 2022-10-03 01:55:13.578830808 +0000
Change: 2022-10-03 01:55:13.578830808 +0000
 Birth: 2022-10-03 01:54:44.733048293 +0000

// 查看文件block信息,这里a.txt文件没有分配任何的extent.因为大小就几个字节,用一个直接数据块存储即可。
$ filefrag -v /mnt/ext4/a.txt 
Filesystem type is: ef53
File size of /mnt/ext4/a.txt is 5 (1 block of 4096 bytes)
 ext:     logical_offset:        physical_offset: length:   expected: flags:
   0:        0..       0:    1015808..   1015808:      1:             last,eof
/mnt/ext4/a.txt: 1 extent found

block group

  • block group是一组连续的block的集合。默认的情况下8个 block组成一个block group
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ dumpe2fs /dev/sde |egrep 'Blocks per group|Block size'
dumpe2fs 1.46.5 (30-Dec-2021)
Block size:               4096
// 每个block group大小,这里是32K,Block 大小是4K,Block Group包含了8个Block
Blocks per group:         32768

inode

inode是文件系统中每个文件的唯一标识,映射IO Block到磁盘扇区的对应关系。inode一般存储了文件的acess/modify/create的时间、访问权限、以及最重要的这个文件包含了哪些Blocks.这里需要注意的是ext4系统中当删除文件的时候,这个文件的inode是可以被回收然后被新文件重用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ stat /mnt/ext4/a.txt 
  File: /mnt/ext4/a.txt
  Size: 5               Blocks: 8          IO Block: 4096   regular file
Device: 840h/2112d      Inode: 12          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-10-03 01:54:44.733048293 +0000
Modify: 2022-10-03 01:55:13.578830808 +0000
Change: 2022-10-03 01:55:13.578830808 +0000
 Birth: 2022-10-03 01:54:44.733048293 +0000
$ rm -rf /mnt/ext4/a.txt 
$ touch /mnt/ext4/b.ext
$ stat /mnt/ext4/b.ext 
  File: /mnt/ext4/b.ext
  Size: 0               Blocks: 0          IO Block: 4096   regular empty file
Device: 840h/2112d      Inode: 12          Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-10-03 02:23:49.608093750 +0000
Modify: 2022-10-03 02:23:49.608093750 +0000
Change: 2022-10-03 02:23:49.608093750 +0000
 Birth: 2022-10-03 02:23:49.608093750 +0000

superblock

  • superblock是存储了ext4文件系统的元数据信息,一旦superblock损坏整个文件系统是无法访问的。因此superblock会有多个备份。ext4文件系统采用了sparse_super方式备份superblock.
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ mkfs.ext4 /dev/sde
mke2fs 1.46.5 (30-Dec-2021)
Discarding device blocks: done                            
Creating filesystem with 1048576 4k blocks and 262144 inodes
Filesystem UUID: a670d8f3-a153-43d3-a8c7-e4d67ecb2c63
// 超级块的备份,这里以32K为基本基线,分别是32k 1倍、3倍、5倍、7倍位置的block备份超级块
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done 
  • 转储ex4文件系统的sparse_super.INODE_UNINIT是inode bitmap和inode table没有被初始化。BLOCK_UNINIT是block bitmap没有被初始化。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ dumpe2fs /dev/sdf |grep superblock -B1
dumpe2fs 1.46.5 (30-Dec-2021)
Group 0: (Blocks 0-32767) csum 0xceed [ITABLE_ZEROED]
  Primary superblock at 0, Group descriptors at 1-1
--
Group 1: (Blocks 32768-65535) csum 0x35e5 [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Backup superblock at 32768, Group descriptors at 32769-32769
--
Group 3: (Blocks 98304-131071) csum 0x7ae0 [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Backup superblock at 98304, Group descriptors at 98305-98305
--
Group 5: (Blocks 163840-196607) csum 0xa0ab [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Backup superblock at 163840, Group descriptors at 163841-163841
--
Group 7: (Blocks 229376-262143) csum 0x921b [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Backup superblock at 229376, Group descriptors at 229377-229377
--
Group 9: (Blocks 294912-327679) csum 0x6988 [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Backup superblock at 294912, Group descriptors at 294913-294913
--
Group 25: (Blocks 819200-851967) csum 0x220e [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Backup superblock at 819200, Group descriptors at 819201-819201
--
Group 27: (Blocks 884736-917503) csum 0x68a9 [INODE_UNINIT, BLOCK_UNINIT, ITABLE_ZEROED]
  Backup superblock at 884736, Group descriptors at 884737-884737
file on disk

extent

  • ext4文件系统为了保证读写大文件的效率,采用了extentB-Tree数据结构。这样可以减少大文件的元数据存储量同时也能提供数据块的检索和更新的效率。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/********************ext4文件系统**************************/
// 创建一个180M文件file1
[root@ubuntu /mnt/ext4]$ ls -lih
total 180M
12 -rw-r--r-- 1 root root    0 Oct  3 02:23 b.ext
13 -rw-r--r-- 1 root root 180M Oct  3 03:02 file1
11 drwx------ 2 root root  16K Oct  3 01:47 lost+found

// 查看ext4下file1的extent的分配情况,这里180M文件分配了2个extent
[root@ubuntu /mnt/ext4]$ debugfs -R 'stat <13>' /dev/sde
debugfs 1.46.5 (30-Dec-2021)
Inode: 13   Type: regular    Mode:  0644   Flags: 0x80000
Generation: 3968155522    Version: 0x00000000:00000001
User:     0   Group:     0   Project:     0   Size: 188477052
File ACL: 0
Links: 1   Blockcount: 368120
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x633a50bc:8166c4c0 -- Mon Oct  3 03:02:20 2022
 atime: 0x633a50bc:056bd75c -- Mon Oct  3 03:02:20 2022
 mtime: 0x633a50bc:8166c4c0 -- Mon Oct  3 03:02:20 2022
crtime: 0x633a50bc:056bd75c -- Mon Oct  3 03:02:20 2022
Size of extra inode fields: 32
Inode checksum: 0xad1ad685
EXTENTS:
(0-32767):1015808-1048575, (32768-46014):983040-996286


/********************ext3文件系统**************************/
[root@ubuntu /mnt/ext3]$ ls -lih
total 180M
12 -rw-r--r-- 1 root root 180M Oct  3 03:02 file1
11 drwx------ 2 root root  16K Oct  3 03:01 lost+found
[root@ubuntu /mnt/ext3]$ debugfs -R 'stat <12>' /dev/sdf
debugfs 1.46.5 (30-Dec-2021)
Inode: 12   Type: regular    Mode:  0644   Flags: 0x0
Generation: 2196076409    Version: 0x00000000:00000001
User:     0   Group:     0   Project:     0   Size: 188477052
File ACL: 0
Links: 1   Blockcount: 368488
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x633a50bf:7d99e208 -- Mon Oct  3 03:02:23 2022
 atime: 0x633a50be:ec398a54 -- Mon Oct  3 03:02:22 2022
 mtime: 0x633a50bf:7d99e208 -- Mon Oct  3 03:02:23 2022
crtime: 0x633a50be:ec398a54 -- Mon Oct  3 03:02:22 2022
Size of extra inode fields: 32
BLOCKS:
(0-11):17408-17419, (IND):17178, (12-15):17420-17423, (16-63):17200-17247, (64-127):17280-17343, (128-255):17920-18047, (256-1023):18176-18943, (1024-1035):19456-19467, (DIND):17179, (IND):17180, (1036-2059):19468-20491, (IND):17181, (2060-3083):20492-21515, (IND):17182, (3084-4107):21516-22539, (IND):17183, (4108-5131):22540-23563, (IND):17344, (5132-6155):23564-24587, (IND):17345, (6156-7179):24588-25611, (IND):17346, (7180-8203):25612-26635, (IND):17347, (8204-9227):26636-27659, (IND):17348, (9228-10251):27660-28683, (IND):17349, (10252-11275):28684-29707, (IND):17350, (11276-12299):29708-30731, (IND):17351, (12300-13323):30732-31755, (IND):17352, (13324-14335):31756-32767, (14336-14347):34816-34827, (IND):17353, (14348-15371):34828-35851, (IND):17354, (15372-16395):35852-36875, (IND):17355, (16396-17419):36876-37899, (IND):17356, (17420-18443):37900-38923, (IND):17357, (18444-19467):38924-39947, (IND):17358, (19468-20491):39948-40971, (IND):17359, (20492-21515):40972-41995, (IND):17360, (21516-22539):41996-43019, (IND):17361, (22540-23563):43020-44043, (IND):17362, (23564-24587):44044-45067, (IND):17363, (24588-25611):45068-46091, (IND):17364, (25612-26635):46092-47115, (IND):17365, (26636-27659):47116-48139, (IND):17366, (27660-28683):48140-49163, (IND):17367, (28684-29707):49164-50187, (IND):17368, (29708-30731):50188-51211, (IND):17369, (30732-31755):51212-52235, (IND):17370, (31756-32779):52236-53259, (IND):17371, (32780-33803):53260-54283, (IND):17372, (33804-34827):54284-55307, (IND):17373, (34828-35851):55308-56331, (IND):17374, (35852-36875):56332-57355, (IND):17375, (36876-37899):57356-58379, (IND):17376, (37900-38923):58380-59403, (IND):17377, (38924-39947):59404-60427, (IND):17378, (39948-40971):60428-61451, (IND):17379, (40972-41995):61452-62475, (IND):17380, (41996-43019):62476-63499, (IND):17381, (43020-44043):63500-64523, (IND):17382, (44044-45055):64524-65535, (45056-45067):67584-67595, (IND):17383, (45068-46014):67596-68542
TOTAL: 46061
  • file1这个文件在ext4文件系统仅仅使用了2个extent.180M大小的文件大大减少了元数据的存储量,这个和ext3完全不一样
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@ubuntu /mnt/ext4]$ ls -l -ihl
total 180M
12 -rw-r--r-- 1 root root    0 Oct  3 02:23 b.ext
13 -rw-r--r-- 1 root root 180M Oct  3 03:02 file1
11 drwx------ 2 root root  16K Oct  3 01:47 lost+found
[root@ubuntu /mnt/ext4]$ debugfs -R 'extents file1' /dev/sdf
debugfs 1.46.5 (30-Dec-2021)
Level Entries       Logical          Physical Length Flags
 0/ 0   1/  2     0 - 32767 1015808 - 1048575  32768 
 0/ 0   2/  2 32768 - 46014  983040 -  996286  13247 

flex_bg

  • flexible block group(flex_bg)是一组连续的block group的集合。每个flex_bg中的第一个block group存储当前flex_bg的bitmap、inode table.
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 存储内核技术交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
浅谈ext4文件系统初始化
调试环境 $ modprobe -v ext4 $ dd if=/dev/zero of=/tmp/disk1 count=30 bs=1M $ losetup --show -f /tmp/disk1 /dev/loop0 $ mkfs.ext4 /dev/loop0 $ mount /tmp/disk1 /mnt/disk1 关于超级快基本知识 当使用者适应mkfs.ext4 /dev/sdb时候,系统按照ext4内部的布局规则写入写入先关数据。mount时候按照内置的布局规则读取这些信息
用户4700054
2022/08/17
1.6K0
浅谈ext4文件系统初始化
文件系统专栏 | 之ext4文件系统结构
上次讲了VFS层,这次说说文件系统层,文件系统层将不同的文件系统实现了VFS的这些函数,通过指针注册到VFS里面。所以,用户的操作通过VFS转到各种文件系统,linux用到最多的是ext4文件系统,我们就说这个吧。EXT4是第四代扩展文件系统(英语:Fourth extended filesystem,缩写为 ext4)是Linux系统下的日志文件系统,是ext2和ext3文件系统的后继版本。 ext4文件系统布局 一个Ext4文件系统被分成一系列块组。为减少磁盘碎片产生的性能瓶颈,块分配器尽量保持每个文件
刘盼
2022/08/29
3.6K0
文件系统专栏 | 之ext4文件系统结构
Linux ext4无法使用超过16T磁盘的解决办法
系统环境:Centos6.7 x86_64 己updte 磁盘:12*4T raid5 +hot 说明:操作系统与归档都使用同一个raid5 应用环境:邮局系统【文件大小从1K到100K不等,除附件】 一、查看分区 【fdisk -l】 [root@localhost sysadmin]# fdisk -l WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use G
小小科
2018/05/03
2.2K0
Linux文件/磁盘统计df与du命令输出结果不同的原因研究
标准GNU工具coreutils中有俩程序df / du,他们都可以查看磁盘的使用情况。通常情况下他们的统计结果并不会相同,这是因为统计信息来源的差异。所以问题来了:在ext4文件系统下,有哪些可能的因素会带来统计信息的差异?
Linux阅码场
2019/08/23
3.5K0
Linux文件/磁盘统计df与du命令输出结果不同的原因研究
ext3grep恢复ext3文件系统下误
df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00                        13G 4.7G 7.5G 39% / /dev/hda1 99M 18M 77M 19% /boot tmpfs 107M 0 107M 0% /dev/shm /home/store/file 49M 4.9M 42M 11% /mnt
py3study
2020/01/06
6100
Linux Ext系列文件系统(看这一篇就够了!)
硬盘是典型的"块"设备, 操作系统读取硬盘数据的时候, 其实是不会一个个扇区地读取, 这样效率太低, 而是一次性连续读取多个扇区, 即一次性取⼀个”块”(block)。
用户11317877
2025/02/17
1060
Linux Ext系列文件系统(看这一篇就够了!)
【linux学习指南】】Ext系列文件系统(三)ext2 文件系统的认识与构成
所有的准备⼯作都已经做完,是时候认识下⽂件系统了。我们想要在硬盘上储⽂件,必须先把硬盘格式化为某种格式的⽂件系统,才能存储⽂件。⽂件系统的⽬的就是组织和管理硬盘中的⽂件。在Linux 系统中,最常⻅的是ext2系列的⽂件系统。其早期版本为ext2,后来⼜发展出ext3和ext4。ext3 和ext4虽然对ext2进⾏了增强,但是其核⼼设计并没有发⽣变化,我们仍是以较⽼的ext2作为演⽰对象。
学习起来吧
2025/01/01
1210
【linux学习指南】】Ext系列文件系统(三)ext2 文件系统的认识与构成
Centos7笔记 | 硬盘、Parted 分区、mount命令、Swap分区的扩展、、文件系统详解、
硬盘设备是由大量的扇区组成,每个扇区容量512字节,第一扇区最为重要,保存主引导记录和分区表信息。分别是主引导记录占用446,分区表占用64字节,结束符2字节,其中分区表中每记录一个信息占用16字节,最多只有四个分区,为了解决分区数不够,衍生出扩展分区。扩展分区可以用来创建逻辑分区,逻辑分区最多128个。
网络技术联盟站
2019/08/21
4.7K0
Centos7笔记 | 硬盘、Parted 分区、mount命令、Swap分区的扩展、、文件系统详解、
磁盘文件系统三
VFS采用了面向对象的设计思路,将一系列概念抽象出来作为对象而存在,它们包含数据的同时也包含了操作这些数据的方法。当然,这些对象都只能用数据结构来表示,而不可能超出C语言的范畴,不过即使在C++里面数据结构和类的区别也仅仅在于类的成员默认私有,数据结构的成员默认公有。VFS主要有如下4个对象类型。
没有故事的陈师傅
2021/06/24
9090
磁盘文件系统三
聊聊ext4文件create和truncat实现
下面是ext4创建文件的实现,第一步是经由vfs层的vfs_create函数,最后进入实际文件系统的ext4_create来创建文件,文件的创建核心过程基本分为2步,第一步是新文件的inode申请,第二步是读取新文件的父目录的inode,在这个inode对应的数据块添加新文件的目录项,这个过程是采用事务的方式进行。
用户4700054
2022/08/17
1.3K0
聊聊ext4文件create和truncat实现
从青铜到王者系列:深入浅出理解DeepSeek 3FS (2)从内核到用户态文件系统的设计之路
从青铜到王者系列:深入浅出理解DeepSeek 3FS (2)从内核到用户态文件系统的设计之路
早起的鸟儿有虫吃
2025/04/11
1300
从青铜到王者系列:深入浅出理解DeepSeek 3FS (2)从内核到用户态文件系统的设计之路
磁盘文件系统二
但是,如果一个文件比较大,inode的块号不足以标识所有的数据块,就会使用间接块。文件系统会在硬盘上分配一个数据块,不存储文件数据,专门用来存储块号。该块被称为间接块。inode的长度是固定的。间接块占用的空间对于大文件来说是必要的。但是对于小文件不会带来额外的开销。当我们用到 i_block[12]的时候,就不能直接放数据块的位置了,要不然 i_block 很快就会用完了。这该怎么办呢?我们需要想个办法。我们可以让 i_block[12]指向间接块。也就是说,我们在 i_block[12]里面放间接块的位置,通过 i_block[12]找到间接块后,间接块里面放数据块的位置,通过间接块可以找到数据块。如果文件再大一些,i_block[13]会指向一个块,我们可以用二次间接块。二次间接块里面存放了间接块的位置,间接块里面存放了数据块的位置,数据块里面存放的是真正的数据。如果文件再大一些,i_block[14]会指向三次间接块。
没有故事的陈师傅
2021/06/24
1.1K0
磁盘文件系统二
干货!大话EXT4文件系统完整版
我们知道SSD是一场存储革命,设计和制造一个好的SSD固然重要,但如何正确使用以充分发挥SSD性能同样重要。SSD内在的并行性和先擦再写的特性决定了它不同于机械硬盘简单的LBA和存储块一一对应,要充分挖掘SSD的并行性,提升性能,延长寿命,缩短延迟,就必须在上层应用做出改动。很多SSD的使用大户都作出了这种尝试,从国外的Google,Microsoft,Facebook,到国内的Baidu,Alibaba等,本站就曾经介绍过百度的软件定义闪存,把对象存储和SSD内部结构统一起来使用。但对大部分企业来讲,这种结构还是太独特了,我们还是要关注通用的架构,首先来了解离硬盘最近的软件:文件系统。本系列文章将以Linux系统最常见的EXT4文件系统为例,从SSD爱好者的角度来揭开文件系统的庐山真面目。
Linux阅码场
2019/12/10
5.9K0
干货!大话EXT4文件系统完整版
ext2文件系统详解[接<磁盘与文件系统(简单)>]
在大文件系统下, 单一inode表将会变得非常臃肿, 难以管理, 因此 ext2采用多个区块群组(group block), 每个区块群组均具有其 superblock, inode, block
buiu
2021/10/27
8480
漫谈Linux标准的文件系统(Ext2/Ext3/Ext4)
全称Linux extended file system, extfs,即Linux扩展文件系统,Ext2就代表第二代文件扩展系统,Ext3/Ext4以此类推,它们都是Ext2的升级版,只不过为了快速恢复文件系统,减少一致性检查的时间,增加了日志功能,所以Ext2被称为索引式文件系统,而Ext3/Ext4被称为日志式文件系统。
justmine
2019/02/15
2.1K0
Linux下误删除后的恢复操作(ext3/ext4)
Linux是作为一个多用户、多任务的操作系统,文件一旦被删除是难以恢复的。尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是其他用户和一些有写盘动作的进程会很快覆盖这些数据。在日常工程中,谁也说不准永远不犯错误,万一哪天不小心误操作删除了一些重要文件,该怎么办呢?? 莫慌!这里介绍一款神器extundelete,这是针对ext4文件格式下文件删除后的恢复工具,十分强大!! 废话不多说,下面开始介绍这款神器的使用: 1)下载并安装软件 extundelete主页:http://extundel
洗尽了浮华
2018/01/23
3.4K0
ext3文件系统反删除利器ext3gre
国外一份非常著名的Linux系统管理员守则中有这么一条“慎用 rm –rf 命令,除非你知道此命令将带来什么后果”,可见,这个命令对系统管理员的重要性。在实际的工作中,由此命令带来的误删除数据案例屡见不鲜,很多系统管理员都遇到过或者犯过这样的错误。由于开发人员对命令的不熟悉,或者粗心大意、疏于管理,执行了此命令,数据在一瞬间就被清空了。Linux不具备类似回收站的功能,这就意味着数据丢失。虽然Linux自身提供了恢复数据的机制,但是这个功能基本没用,要恢复数据,通过常规手段是无法完成的,此时,只有找专业的数据恢复公司来恢复数据,这样无疑要付出很大的成本和费用,造成无法估量的的损失。
py3study
2020/01/06
6890
dumpe2fs 命令的使用,转储 ext2/ext3/ext4 文件系统信息
使用man 命令可以查看 dumpe2fs 命令具体的使用的方法: NAME dumpe2fs - dump ext2/ext3/ext4 filesystem information SYNOPSIS dumpe2fs [ -bfghixV ] [ -o superblock=superblock ] [ -o blocksize=blocksize ] device DESCRIPTION dumpe2fs prints the super block an
西湖醋鱼
2020/12/30
9670
[操作系统] Ext系列文件系统
其实硬盘是典型的“块”设备,操作系统读取硬盘数据的时候,其实是不会⼀个个扇区地读取,这样效率太低,⽽是⼀次性连续读取多个扇区,即⼀次性读取⼀个块(block)。
DevKevin
2025/02/23
870
[操作系统] Ext系列文件系统
【Linux篇】深入理解文件系统:从基础概念到 ext2 文件系统的应用与解析
打开的文件被内存管理着,实际是进程通过相关数据结构将每个对象进行关联;而未被打开的文件被保存在磁盘上,一般是未被打开的文件占据最多。
熬夜学编程的小王
2025/04/14
2410
【Linux篇】深入理解文件系统:从基础概念到 ext2 文件系统的应用与解析
推荐阅读
相关推荐
浅谈ext4文件系统初始化
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验