练习 20:文件系统:修改和创建文件系统,tune2fs,mkfs
user1@vm1:~$ sudo tune2fs -l /dev/sda8
tune2fs 1.41.12 (17-May-2010)
# 只是个标签,可以是任何东西,或者没有东西
Filesystem volume name: <none>
# 这里应该是最后的挂载点
Last mounted on: <not available>
# 唯一的文件系统标识符
Filesystem UUID: 869db6b4-aea0-4a25-8bd2-f0b53dd7a88e
# 已知位置的特殊数字,它定义了 FS 的类型,尝试这个:
# sudo dd if=/dev/sda8 of=/dev/stdout bs=1 skip=1080 count=2 | hexdump -C
Filesystem magic number: 0xEF53
# FS 版本
Filesystem revision #: 1 (dynamic)
# 启用的 FS 功能
Filesystem features:
# 这是一个日志文件系统。日志文件系统是一个文件系统,
# 它跟踪日志中发生的变化(通常是一个循环日志,
# 在文件系统的特定位置),在提交给主文件系统之前。
# 在系统崩溃或者断电的事件中,这种文件系统能够更快
# 恢复,并且不可能毁坏。
# http://en.wikipedia.org/wiki/Journaling_file_system
has_journal
# 拥有扩展属性,例如扩展的 ACL。
ext_attr
# 为系统信息保留空间,这允许 FS 改变大小。
resize_inode
# 使用索引来加速大目录中的查找。
dir_index
# 在目录条目中储存文件类型信息。
filetype
# 意思是需要运行 fsck。
needs_recovery
# 更少的超级块备份,在大 FS 上节约空间。
sparse_super
# 是否可以包含 > 2GB 的文件。在创建 >2GB 的文件时,内核会自动设置它。
large_file
# dir_index 中使用哪个哈希
Filesystem flags: signed_directory_hash
# 挂载时使用什么选项
Default mount options: (none)
# 是否需要执行 fsck
Filesystem state: clean
# 错误时做什么:继续,以只读方式重新挂载,或者报错?
Errors behavior: Continue
# 哪个 OS 使用这个 FS
Filesystem OS type: Linux
# 索引节点总数。索引节点就是 "inode"。它的结构是:
# 储存所有文件系统对象(文件、目录,以及其他)的信息
# 除了文件内容和文件名称。也就是说,
# 你的文件数量不能多于索引节点数量。
# 这就是索引节点结构,它描述了里面储存了什么信息:
#/* 出现在 Inode 表中的 Inode 结构 */
#struct dinode
#{ ushort di_mode; /* mode and type of file */
# short di_nlink; /* number of links to file */
# ushort di_uid; /* owner's user id */
# ushort di_gid; /* owner's group id */
# off_t di_size; /* number of bytes in file */
# char di_addr[39]; /* disk block addresses */
# char di_gen; /* file generation number */
# time_t di_atime; /* time last accessed */
# time_t di_mtime; /* time last modified */
# time_t di_ctime; /* time created */
#};
# 这里也有很好的解释:
# http://support.tux4u.nl/dokuwiki/lib/exe/fetch.php?media=linux:disk_bestandssysteem:inode.pdf
Inode count: 62464
# 当前有多少空闲节点
Free inodes: 62452
# 设备上的第一个块。由于每个分区都表示为单独的设备,
# 它设为 0。
First block: 0
# 这是文件系统中,第一个索引节点的节点号。
First inode: 11
# 索引节点的大小,以字节为单位。在新的 Linux 发行版中,这有时会默认增加,
# 为了允许文件中扩展属性的存储,例如,微秒时间戳。
Inode size: 256
# 添加索引节点字段所需的空间
Required extra isize: 28
# 添加索引节点字段要求的空间。不重要,因为这个大小
# 任何时候都是所需空间
Desired extra isize: 28
# 一个隐形节点,它储存文件系统的日志。
Journal inode: 8
# 块的总数。块是磁盘空间可分配的最小单位。
# 你可以使用下面的公式,以 GB 计算分区大小:
# 块的数量 * 块的大小
# ------------------------
# 1024^3
Block count: 249856
# 有多少块为超极用户保留。普通用户不能使用这个
# 保留空间。这是为了使系统保持运行,以防一些流氓软件
# 决定塞满所有可用的磁盘空间。
Reserved block count: 12492
# 当前有多少块是空闲的。
Free blocks: 241518
# 用于目录索引(dir_index)的算法。
Default directory hash: half_md4
# 目前为止,我可以说,这是用于 dir_index 哈希算法的种子值。
Directory Hash Seed: d02c6099-bd06-4d29-a3d7-779df2aa2410
# 日志备份选项。
Journal backup: inode blocks #
# 块的大小,以字节为单位。4096 字节就是 4 KB。
Block size: 4096
# 在 ex3 FS 中未实现。这是一个特性,它能够在一个块中写入多个小文件,
# 来节约空间。
Fragment size: 4096
# 保留的控件,所以组描述符表可能在未来会增长。
Reserved GDT blocks: 60
# 每个块组的块数量。块组包含文件系统重要的控制信息的冗余副本。
# (超级块和文件描述符),并包含一部分文件系统contains a
# (块的位图,索引节点的位图,一部分索引节点表,以及数据块)。
# 块组的结构在下表中展示:
#,---------+---------+---------+---------+---------+---------,
#| 超级 | FS | 块的 | Inode | Inode | 数据 |
#| 块 | 描述符 | 位图 | 位图 | 表 | 块 |
#`---------+---------+---------+---------+---------+---------'
# http://tldp.org/HOWTO/Filesystems-HOWTO-6.html
Blocks per group: 32768
# 每个组的片段数量。因为 ext3 FS 中没有片段,
# 这等于每个组的块数量。
Fragments per group: 32768
# 每个组的索引节点数量。
Inodes per group: 7808
# 每个组的索引节点块。索引节点块是一个表的索引,
# 描述了所有文件属性,除了文件名称。它拥有数据块的索引。
# 数据块包含文件真实内容。
# http://www.porcupine.org/forensics/forensic-discovery/chapter3.html
Inode blocks per group: 488
# FS 的创建时间。
Filesystem created: Mon Jul 2 06:16:24 2012
# 最后的 FS 挂载时间。
Last mount time: Mon Jul 2 06:57:21 2012
# 最后的 FS 写入时间。
Last write time: Mon Jul 2 06:57:21 2012
# FS 的挂载次数。
Mount count: 6
# 自动检查前的次数。如果文件系统的挂载次数是这个
# 或者检查间隔到了,那么 FS 会自动检查。
Maximum mount count: 34
# 最后的 fsck 执行时间
Last checked: Mon Jul 2 06:16:24 2012
# 下一个 FS 检查间隔. 如果这个间隔到了,
# 或者到达了最大挂载数,FS 会自动检查。
Check interval: 15552000 (6 months)
# 下一个 FS 检查间隔,以人类可读的格式。
Next check after: Sat Dec 29 05:16:24 2012
# 能够使用保留空间的用户的用户 ID。
# 它默认是 root 用户(超级用户)
Reserved blocks uid: 0 (user root)
# 能够使用保留空间的用户的组 ID。
# 它默认是 root 组
Reserved blocks gid: 0 (group root)这样做
你会看到什么
解释
附加题
Last updated