1、文件系统
文件系统是操作系统用于明确存储和组织计算机数据的方法。即对同一个存储设备上的数据进行组织的机制。使得对数据的访问和查找变得容易。
包括文件的构造、命名、访问、使用、保护、实现和管理方式。
1.文件
储存在硬盘上,硬盘的最小储存单位叫做扇区,每个扇区512字节。
文件数据包括实际数据与元信息(文件属性)。文件数据存储在“块”中,存储文件元信息(如:创建者,创建日期,文件大小,文件权限等)的区域叫inode。因此,一个文件必须占用一个inode且最少占用一个块(block)。
2.block“块”
一般连续八个扇区组成一个“快”,一个块是4k大小,是文件存取的最小单位。操作读取硬盘时,是一次性读取多个扇区,也就是一个块一个块的读取。
3.inode(索引节点)
inode不包含文件名。文件名是存放在目录中的。(目录也是文件)用来存储文件元信息。
每个inode都有一个号码,linux内部不使用文件名,操作系统通过inode号识别文件。文件名就是inode号的别称,且是一一对应的关系。
每个inode号大小一般是128字节或256字节。
4.结论
用户在linux系统中访问文件时,系统会根据文件名查找对应的inode号,通过inode号获得inode信息,根据inode信息是否具有访问权限,有权限就指向对应数据的block,并读取数据,若没有权限就返回,访问失败。
2、linux的磁盘管理
1、简介
硬盘分区实质上是对硬盘的一种格式化,可以更好的管理数据。
fdisk -l 查看分区
2 分区管理 df du
Linux磁盘管理常用三个命令为df、du和fdisk。
- df:列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。【-h -i -a -s -h】
- du:检查磁盘空间使用量,对文件和目录磁盘使用的空间的查看。
2.1 查看打开的文件
lsof ,必须以root用户运行,默认显示所有进程打开的所有文件
3 创建新的分区:fdisk【设备名】
fdisk 是 Linux 的磁盘分区表操作工具,可以查看分区、创建分区等
fdisk [-l] 装置名称,输出后面接的装置所有的分区内容。若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。
找出你系统中的根目录所在磁盘,并查阅该硬盘内的相关信息
[root@www ~]# df / <==注意:重点在找出磁盘文件名而已
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/hdc2 9920624 3823168 5585388 41% /
[root@www ~]# fdisk /dev/hdc <==仔细看,不要加上数字喔!
The number of cylinders for this disk is set to 5005.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): <==等待你的输入!
Command (m for help): m <== 输入 m 后,就会看到底下这些命令介绍
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition <==删除一个partition
l list known partition types
m print this menu
n add a new partition <==新增一个partition
o create a new empty DOS partition table
p print the partition table <==在屏幕上显示分割表
q quit without saving changes <==不储存离开fdisk程序
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit <==将刚刚的动作写入分割表
x extra functionality (experts only)
4 磁盘格式化
fdisk:用于磁盘分区(查看分区情况、创建分区等)磁盘分割完毕后自然就是要进行文件系统的格式化,格式化的命令非常的简单
mkfs [-t 文件系统格式] 装置文件名
选项与参数:
- -t :可以接文件系统格式,例如 ext3, ext2, vfat 等(系统有支持才会生效)
实例 1
查看 mkfs 支持的文件格式
[root@www ~]# mkfs[tab][tab]
mkfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.msdos mkfs.vfat
按下两个[tab],会发现 mkfs 支持的文件格式如上所示。
实例 2
将分区 /dev/hdc6(可指定你自己的分区) 格式化为 ext3 文件系统:
[root@www ~]# mkfs -t ext3 /dev/hdc6
mke2fs 1.39 (29-May-2006)
Filesystem label= <==这里指的是分割槽的名称(label)
OS type: Linux
Block size=4096 (log=2) <==block 的大小配置为 4K
Fragment size=4096 (log=2)
251392 inodes, 502023 blocks <==由此配置决定的inode/block数量
25101 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=515899392
16 block groups
32768 blocks per group, 32768 fragments per group
15712 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Writing inode tables: done
Creating journal (8192 blocks): done <==有日志记录
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
# 这样就创建起来我们所需要的 Ext3 文件系统了!简单明了!
5 手动挂载文件系统
挂载:将文件系统和目录树结合起来
[root@www ~]# mkdir /mnt/hdc6
[root@www ~]# mount /dev/hdc6 /mnt/hdc6
[root@www ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
.....中间省略.....
/dev/hdc6 1976312 42072 1833836 3% /mnt/hdc6
6 磁盘卸载命令 umount
语法:
umount [-fn] 装置文件名或挂载点
选项与参数:
- -f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下;
- -n :不升级 /etc/mtab 情况下卸除。
卸载/dev/hdc6
[root@www ~]# umount /dev/hdc6