`

ma系列之-17-磁盘和文件系统1

 
阅读更多

 

 


1 文件系统概念

 

是一个软件,是存储在磁盘的某个位置上,并不是在某个分区上,但是文件系统的数据是在分区上的。
能够把一个分区里的存储数据划分为两片,第一片是元数据存储区,另一片是数据存储区, 数据存储区又划分为一个个的逻辑存储单元。
  

目录磁盘块: 分为两块,第一段是inode号码, 第二段是此目录能直接找到的文件名

 

 

2  du  和 df 介绍

 

du 命令:

显示目录大小
	-s 
	-h
eg: 
[root@chinadaas13 mnt]# du -sh disk1  显示目录和子目录总共大小
4.0K    disk1

 

df 命令:

显示整个磁盘分区情况 和inode的使用情况
eg:
[root@chinadaas13 mnt]# df -lh  如下就表示分为三个分区,  Linux所有文件都是从/上开始找的,因此所有外设需要挂在到/下否则linux文件系统是找不到这个设备的
文件系统              容量  已用  可用 已用%% 挂载点
/dev/sda3             5.4T  9.3G  5.1T   1% /
tmpfs                  32G   72K   32G   1% /dev/shm
/dev/sda1             985M   45M  890M   5% /boot

df -i 表示查看已经使用和剩余的inode个数。
[root@chinadaas13 mnt]# df -i
文件系统              Inode  已用(I)  可用(I) 已用(I)%% 挂载点
/dev/sda3            364740608  389247 364351361    1% /
tmpfs                8245182       3 8245179    1% /dev/shm
/dev/sda1              64000      43   63957    1% /boot

 

 

3 设备文件:

 

设备文件:
	b: 按块为单位,随机访问的设备;
	c:按字符为单位,线性设备;
	b: 硬盘
	c: 键盘
	

	
/dev
	主设备号 (major number)
		标识设备类型
	次设备号 (minor number)
		标识同一种类型中不同设备

mknod
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
	-m MODE
	
eg:
创建设备: mknod mydev c 66 0  创建字符设备,主设备号为66 次设备号为0  设备名称为mydev
设备文件是作为设备的访问入口,必须要确保主设备号要和某类设备关联起来。

 

 

4 硬盘设备:

 

 

硬盘设备的设备文件名:
IDE类型, ATA:以hd开头
SATA类型:以sd开头
SCSI类型: 以sd开头
USB类型: 以sd开头
	a,b,c,...来区别同一种类型下硬盘如果有多块的话,不同的硬盘以 a,b,c...来区别
	
IDE:  一般有两个口, 每一个IDE口上总线可以接2块盘,这样一共是4个盘,分别标示如下
	第一个IDE口:主、从
		/dev/hda, /dev/hdb
	第二个IDE口:主、从
		/dev/hdc, /dev/hdd

sda, sdb, sdc, ...

hda: 
	hda1: 第一个主分区
	hda2: 
	hda3:
	hda4:
	hda5: 第一个逻辑分区, 逻辑分区从5开始计数
	
	

 

fdisk 命令:

 

管理磁盘分区:创建/删除分区  创建逻辑/主/扩展 分区 调整分区类型
fdisk /dev/sda    fdisk后面必须要跟上设备  而不是分区, 可以在里面创建新的分区 同时删除已经有的分区 
    Command (m for help): m  输入m后有如下命令:
	p: 显示当前硬件的分区,包括没保存的改动
	n: 创建新分区
		e: 扩展分区
		p: 主分区
	d: 删除一个分区
	w: 保存退出
	q: 不保存退出
	t: 修改分区类型
		L: 
	l: 显示所支持的所有类型
	
partprobe	

 

 Linux  VFS:

 

virtual filesystem ,沙漏模型, 调用者通过这个接口,最终实现调用到不同类型的文件系统。
linux文件类型有: ext3 ext4 ext2  reiserfs(susie系统的) iso9660 swap cifs nfs xfs jfs2 ocfs2 gfs2  

 

 打开磁盘的某个文件:
 去找元数据(表明了是否有要找的文件 以及文件存储的地方), 存储数据要存放在什么地方, 怎么知道文件存储的位置,
 存储空间: 划分为block(磁盘块/文件系统块), 这个块和磁盘没关系,是文件系统管理磁盘空间的逻辑结构,每一个块都有编号,从0开始,
 元数据区中,文件是谁,文件占用多少个block 都会标记到,如果访问某文件,系统会自动帮助定位到对应block中。
 
 如果两个文件内容不同,是不能存放在同一个磁盘快中。
 如果两个文件指向了同一个磁盘快,那么这两个文件就是硬链接。
 
 一个磁盘快按照内容来讲,只能属于一个文件,只不过有多个路径而已,这多个路径就是硬链接。
 而如果一个磁盘快是1K,一个文件是2byte,那么这个文件在Linux中依旧会占用这个磁盘快, 因此能看到 真正使用多少空间 文件占用多少空间,而后者往往大于前者。
 
 每个文件的标示信息是inode,或者indexnode, 成千上万的文件就需要一定存储空间的元数据空间,文件系统创建那时刻起,元数据空间就预留出来了。
 
 磁盘上创建文件--->: 1 指定inode 2 找磁盘快来存储相关数据

 

 

文件系统高级命令:

[root@chinadaas11 ~]# cat /proc/filesystems    查看支持的文件系统
nodev   sysfs
nodev   rootfs
nodev   bdev
nodev   proc
nodev   cgroup
nodev   cpuset
nodev   tmpfs
nodev   devtmpfs
nodev   binfmt_mis
......

创建文件系统:
mkfs: make file system
	-t FSTYPE(文件系统类型) 文件名称   
	eg:  mkfs -t ext2 /dev/sda5 创建格式为ext2的文件 
	上述写法可以简写成: 
mkfs -t ext2 = mkfs.ext2
mkfs -t ext3 = mkfs.ext3





专门管理ext系列文件:
mke2fs
 -j: 创建ext3类型文件系统
 -b BLOCK_SIZE: 指定块大小,默认为4096;可用取值为1024、2048或4096;  eg  mke2fs -b 2048 /dev/sda5 
 -L LABEL:指定分区卷标; mke2fs -L mydata /dev/sda5 
 -m #: 指定预留给超级用户的块数百分比
 -i #: 用于指定为多少字节的空间创建一个inode,默认为8192;这里给出的数值应该为块大小的2^n倍;
 -N #: 指定inode个数;
 -F: 强制创建文件系统;
 -E: 用户指定额外文件系统属性; 


blkid: 查询或查看磁盘设备的相关属性
 UUID
 TYPE
 LABEL
 
e2label: 用于查看或定义卷标
 e2label 设备文件 卷标: 设定卷标
 
tune2fs: 调整文件系统的相关属性
 -j: 不损害原有数据,将ext2升级为ext3; 是不能降级的
 -L LABEL: 设定或修改卷标; 
 -m #: 调整预留百分比;
 -r #: 指定预留块数;
 -o: 设定默认挂载选项;
 acl
 -c #:指定挂载次数达到#次之后进行自检,0或-1表关闭此功能;
 -i #: 每挂载使用多少天后进行自检;0或-1表示关闭此功能;
 -l: 显示超级块中的信息;
 
dumpe2fs: 显示文件属性信息
 -h: 只显示超级块中的信息
 
fsck: 检查并修复Linux文件系统
 -t FSTYPE: 指定文件系统类型
 -a: 自动修复
 
e2fsck: 专用于修复ext2/ext3文件系统
 -f: 强制检查;
 -p: 自动修复;

 

 

 

 

分享到:
评论

相关推荐

    磁盘空间的分配与回收

    对于任何类型的文件系统来说,有效地分配和回收磁盘空间可以显著提高系统的性能和资源利用率。本实验通过模拟UNIX系统的空闲块成组链接法,实现了磁盘存储空间的基本管理功能。 #### 实验目的 - 理解并掌握UNIX...

    ext4-exactor.zip

    在Android系统中,EXT4文件系统是广泛使用的主文件系统,用于存储应用程序、系统文件和其他数据。EXT4-extractor是一个专为Android设计的工具,它能够帮助开发者和故障排除人员解析EXT4格式的镜像文件,将其转换为一...

    HP-UX System Administrator's Guide Logical Volume Management HP-UX 11i Version 3

    对于文件系统逻辑卷,还有一系列指导原则,以确保最佳的性能和稳定性。 ### 总结 HP-UX的LVM是系统管理员不可或缺的工具,它提供了一种灵活、高效的方法来管理存储资源。通过深入理解LVM的架构、配置和限制,系统...

    XP系统 简单修复 可以解决平时遇到的奇怪问题·合适新手使用~

    “显示受保护文件”可能是指隐藏或显示系统文件和隐藏文件的设置。在Windows XP中,可以通过文件夹选项来调整这些设置,以查看系统保护下的文件,这对于排查和解决问题有时是必要的。 “关端口”可能指的是关闭不必...

    dos命令大全详细说明

    DOS(Disk Operating System)是早期个人计算机上广泛使用的操作系统之一,它以命令行界面为主,用户通过输入各种命令来执行操作。对于那些喜欢或希望学习DOS的朋友们,掌握DOS命令大全是非常必要的。这份详细说明将...

    Mac VMwareTools官方工具,支持Mac与虚拟机共享复制

    在IT领域,虚拟化技术是不可或缺的一部分,尤其是对于开发者和系统管理员来说,它提供了一种在单个硬件上运行多个独立操作系统的方式。VMware Fusion是一款非常流行的虚拟化软件,尤其适用于Mac用户。本文将深入探讨...

    USB协议 USB协议 USB协议 USB协议

    FAT32是微软开发的一种广泛使用的文件系统,适用于USB闪存盘和其他移动存储设备。它支持大容量存储,但相比更现代的NTFS和exFAT,有一些限制,如单个文件大小限制和磁盘分区大小上限。 7. **优盘文件系统(FOR C)*...

    2006年上半年程序员试题及答案

    - **题目背景:** 在Windows文件系统中哪些文件名是非法的。 - **选项分析:** - A. Mytemp—books:错误选项,短横线是合法的文件名字符。 - B. Wa:正确选项,文件名不能以单独的一个字母开头。 - **正确答案...

    计算机信息处理员复习笔记

    【计算机信息处理员复习笔记】 在准备计算机信息处理员的考试时,理解并...这些知识点涵盖了计算机基础、网络、操作系统、文件系统、安全和硬件等多个方面,是计算机信息处理员考试的常见内容,考生应全面理解和掌握。

    IC datasheet

    LM160/LM360高速差分比较器因其卓越的性能和广泛的适用性,在高速模拟到数字转换和磁盘文件系统的零交叉检测等领域有着重要的应用价值。无论是从高速性能、低功耗特性还是高输入阻抗等方面来看,它都是一个非常优秀...

    Mac之vim普通命令使用

    在Vim中,文件内容首先被加载到内存中的缓冲区,而不是直接修改磁盘上的文件。这样可以避免在编辑过程中意外丢失数据。 - `:edit file` 或 `:e file`:将文件`file`加载到新的缓冲区中。 - `:bufnext` 或 `:bn`:...

    c代码-ce shi dai ma

    C语言提供了打开、读取、写入和关闭文件的函数,如`fopen`、`fread`、`fwrite`、`fclose`等,使程序能够处理磁盘上的数据。 8. **预处理器**: 预处理器在编译之前处理源代码,如包含头文件(`#include`)、宏...

    vmware 声卡显卡驱动解决方案

    VMware工具(VMware Tools)是解决这个问题的关键,它包含了一系列优化虚拟机性能和硬件兼容性的驱动程序。安装这个ISO文件,可以提供更好的图形性能,支持更高的分辨率,并且可能会解决可能出现的显示异常。步骤...

    Managing Gigabytes: Compressing and Indexing Documents and Images

    本书作为斯坦福大学信息检索课程的教材之一,具有一定的阅读难度,主要面向信息检索专业高年级本科 生和研究生、搜索引擎业界的专业技术人员和从事海量数据处理相关专业的技术人员。... 目录 第1章 概览. 1 ...

    intel 平台Baytrail原理图参考设计

    1. SoC:系统级芯片(System on Chip),Baytrail平台中的SoC通常包含了CPU核心、GPU核心、内存控制器以及其他各种集成的硬件功能模块。在提供的文件中,可以看见对内存、显示/相机、存储、USB、电源管理单元(PMU)...

    计算机专用英语词汇

    在文件系统中,文件被组织成树形结构,其中每个节点代表一个目录或文件。 **18. menu[.menju:]**:菜单是一组供用户选择的选项列表。它常见于操作系统或应用程序的用户界面中。 **19. option[..p..n]**:选项是指...

Global site tag (gtag.js) - Google Analytics