文件系统指文件存在的物理空间,linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。linux会将这些分属不同分区的、单独的文件系统按一定的方式形成一个系统的总的目录层次结构。一个操作系统的运行离不开对文件的操作,因此必然要拥有并维护自己的文件系统
文件系统的基本介绍:
linux文件系统使用索引节点来记录文件信息,作用像windows的文件分配表。索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。一个文件系统维护了一个索引节点的数组,每个文件或目录都与索引节点数组中的唯一一个元素对应。系统给每个索引节点分配了一个号码,也就是该节点在数组中的索引号,称为索引节点号。linux文件系统将文件索引节点号和文件名同时保存在目录中。所以,目录只是将文件的名称和它的索引节点号结合在一起的一张表,目录中每一对文件名称和索引节点号称为一个连接。对于一个文件来说有唯一的索引节点号与之对应,对于一个索引节点号,却可以有多个文件名与之对应。因此,在磁盘上的同一个文件可以通过不同的路径去访问它。可以用ln命令对一个已经存在的文件再建立一个新的连接,而不复制文件的内容。连接有软连接和硬连接之分,软连接又叫符号连接。它们各自的特点是:硬连接:访问一个文件的另一个路径
不同的路径指定的文件指定的是同一个inode
1、
硬链接不能跨分区存在
2、
硬链接不能连接到目录上 要避免循环引用
ls –l 可以查看硬链接次数
由于删除文件要在同一个索引节点属于唯一的连接时才能成功,因此可以防止不必要的误删除。符号连接/软连接:用ln -s命令建立文件的符号连接
ln –s 软链接是特殊独立的文件
有其独立的inode
删除软连接 源文件不变 删除源文件软连接不可用
软链接可以跨分区独立创建
软连接只识别路径
符号连接是linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径名。类似windows下的快捷方式。
linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。linux会将这些分属不同分区的、单独的文件系统按一定的方式形成一个系统的总的目录层次结构。这里所说的“按一定方式”就是指的挂载。
将一个文件系统的顶层目录挂到另一个文件系统的子目录上,使它们成为一个整体,称为挂载。把该子目录称为挂载点。
常见的linux文件系统类型:
ext2 ext3 ext4 xfs reiserfs jfs iso9660 swap GFS2 OCFS2 NFS SMBFS
常见的widows文件系统类型:
FAT32- -> EFAT NTFS
文件管理的命令
du 评估文件系统的磁盘使用量
-a 列出所有的文件与目录容量因为默认进统计目录下面的文件量而已
-h 艺人们较易读的容量格式(G/M)显示
-s 列出总量而已,而不列出每个个别的目录占用容量
-S 不包括子目录下的总计,与-s有点差别
du –sm /*检查根目录下面每个目录所占用的容量
df 列出文件系统的整体使用量
-a 列出所有的文件系统,包括系统特有的/proc等文件系统;
-k 以KB的容量显示各文件系统
-m 以MB的容量显示各文件系统
-h 以人们较易阅读的GB、MB、KB等格式自行显示
-H 以M = 1000K 替代 M = 1024K的进位方式
-T 连同该分区的文件系统名称(例如ext3)也列出
-i 不用硬盘 容量,而以inode的数量显示
-s 显示目录本身包括目录文件大小
Id 判断设备磁盘类型
主分区 还是扩展分区
partprobe /dev/sda 从新扫描磁盘 使新增加的分区显示出来啊
fdisk -l /dev/sda 显示磁盘分区表
mkfs -t ext2 /dev/sdb1 指定文件系统类型为ext2
mke2fs /dev/sdb1
-j 把对应的磁盘分区创建为ext3类型
-L 指定建表
-b 指定块大小(1024|2048|4096)大小只有这三种
-c 创建文件系统是检查是否坏道或坏块
-i 指定比例
决定最终inode 一般128字节创建一个inode
-N 直接指定inode个数
-m 指定预留给管理员的磁盘块的百分比2 就是2% mkswap /dev/sdb1 将文件系统设置为swap分区
swapon +/dev/sdb3启用新的交换分区
swapoff
关闭交换分区
swapon –a 启用所有在/etc/fstab目录下的所有分区
swapon –s 显示检查交换分区的状态
文件挂载: mount [-t 文件系统] [-L Label名] [-o 额外选项] \[-n] 设备文件名 挂载点
文件卸载:
umount /mnt/sysroot (挂载点)
fuser –v /media/cdrom/(挂载点) 指定挂载点有谁正在访问
fuser –km /media/cdrom(挂载点) 将此进程直接kill
设置文件开机自动挂载:
vim /etc/fstab
编辑格式为:
/dev/sdb2 /mydata ext3 defaults 0 0
/dev/sdb2 要挂载的设备 /mydata 挂载点 ext 文件系统类型
/etc/mtab 显示当前系统所有挂载文件系统
文件系统不一致的解决方案:
fsck 文件系统检测
-t 指定检测文件系统的类型
e2fsck 专门用来检测ext系列文件系统
-f 强行检测
-a 同 –p
-B 指定块大小
-p 自动修复 文件系统 如果文件系统有不一致性状态
dumpe2fs 详细显示ext2 ext3 文件系统信息
-f 即使文件系统处于不一致状态 也要显示其信息 强行显示
-h 只显示超级块的详细信息 只显示首部相关信息
e2label 给文件系统加卷标
e2label /dev/sdb2 HIDB加卷标
blkid UUID 查看文件系统类型和UUID
tune2fs 修改ext2文件类型的属性
-j 安全将文件类型为ext2升级为ext3
-m 设定保留给超级用户块的百分比
-r 直接指定保留超级用户的块个数而非百分比
-L 设定卷标
-l 显示超级快信息
-c 指定每各多少次自动挂载文件系统
-i 每各多长时间做自检#{d|m|w}
-u
USER 保留的块谁可以使用
-o 设定默认的挂载选项
dd 复制命令
if=
FILE 表示复制的文件
of
=FILE 输出到那个文件中
bs
=512 表示指定的块大小
count = 复制多少块
eg:dd if=/etc/issue of=/tmp/abc
初始化磁盘:
dd if=/dev/zero of=/dev/sdb1 bs=1M count=1024