文件系统(一)——陈莉君老师经典

文件是一个抽象的概念,它是存放一切数据化信息的仓库。用户为了保存数据或信息,首先要创建一个文件,然后把数据或信息写入该文件。文件的载体通常情况下是磁盘,只要给出存放文件的路径和文件名,文件系统就可以在磁盘上找到该文件的物理位置,并把它调入内存供用户使用。

目录提供了管理文件的一个方便而有效的途径。 Linux

                             (采用的是树型结构。最上层是根目录,其他的所有目录都是从根目录出发而生成的。微软的DOSWindows中这样的树型结构的根是磁盘分区的盘符,有几个分区就有几个树型结构,他们之间的关系是并列的。但是在Linux是一个多用户系统,因此制定这样一个固定的目录规划有助于对系统文件和不同的用户文件进行统一管理。下面列出了Linux的主目录就是/home/user 
/lib 标准程序设计库,又叫动态链接共享库。 
/sbin 系统管理命令,这里存放的是系统管理员使用的管理程序 
/tmp 公用的临时文件存储点 
/root 系统管理员的主目录
/mnt 用户临时安装其他文件系统的目录。 
/proc 虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。 
/var 某些大文件的溢出区,例如各种服务的日志文件 
/usr 最庞大的目录,要用到的应用程序和文件几乎都在这个目录下。

1.2 文件类型

Linux的文件可以是下列类型之一:

   常规文件

计算机用户和操作系统用于存放数据、程序等信息的文件。一般都长期地存放在外存储器(磁盘、磁带等)中。常规文件一般又分为文本文件和二进制文件。

目录文件

Linux文件系统

文件系统指文件存在的物理空间,Linux会将这些分属不同分区的、单独的文件系统按一定的方式形成一个系统的总的目录层次结构。

1.索引节点
   Linux的文件分配表类似。 索引节点是一个数据结构,它包含文件的长度、创建时间、修改时间、权限、所属关系、磁盘中的位置等信息。每个文件或目录都对应一个索引节点,文件系统把所有的索引节点形成一个数组,系统给每个索引节点分配了一个号码,也就是该节点在数组中的索引号,称为索引节点号。命令查看文件的索引节点:

 $ ls -i

2. 软链接和硬链接

可以用。顾名思义,ln一个文件对应一个或多个文件名,或者说把我们使用的文件名和文件系统使用的节点号链接起来,这些文件名可以在同一目录或不同目录。一个文件有几个文件名,我们就说该文件的链接数为几。硬链接有两个限制,一是不允许给目录创建硬链接,二是只有在同一文件系统中的文件之间才能创建链接。

创建一个硬链接MyHlink.c:

$ln My.c myHlink.c

$ls –i

和MyHlink.c为了克服硬链接的两个限制,引入符号链接(symbolic link)。符号链接实际上是一种特殊的文件,这种文件包含了另一个文件的任意一个路径名。这个路径名指向位于任意一个文件系统的任意文件,甚至可以指向一个不存在的文件。系统会自动把对符号链接的大部分操作(如读、写等)如删除等)就会直接在符号链接上完成。

创建一个符号链接MySlink.cMySlink.c具有不同的索引节点号,也就是说MySlink.c中存放的是My.c,表示MySlink.c 是符号链接文件,指向的实际文件为My.c

 

3.安装文件系统

由于Ext2/Ext3文件系统的磁盘分区做为系统的根文件系统,EXT2以外的文件系统(Window命令

 Linux 中将一个文件系统与一个存储设备关联起来的过程称为安装(mount)。

4.文件系统创建示例

文件系统层的功能(以及安装的方法),我们在当前文件系统的一个文件中创建一个文件系统。实现的方法是,首先用 dd 命令创建一个指定大小的文件(使用 /dev/zero 作为源进行文件复制)—— 换句话说,一个用零进行初始化的文件, 把输入文件/dev/zero中,输入输出的块大小为1k

10000+0 records in   // 输入块为10000

10000+0 records out  // 输出块为10000

$

 

现在有了一个 10MB 文件。使用 losetup 


清单 2. 用循环设备创建 ext2 文件系统

...

$

 

使用 mount )所表示的 file.img 。注意,文件系统类型指定为 ext2命令,见清单 3所示,还可以继续这个过程:在刚才安装的文件系统中创建一个新文件,将它与一个循环设备关联起来,再在上面创建另一个文件系统。


清单 4. 在循环文件系统中创建一个新的循环文件系统

               

$ dd if=/dev/zero of=/mnt/point1/file.img bs=1k count=1000

$ losetup /dev/loop1 /mnt/point1/file.img

$ mke2fs -c /dev/loop1 1000

...

$ mkdir /mnt/point2

$ mount -t ext2 /dev/loop1 /mnt/point2

$ ls /mnt/point2   //查看另一个新的文件系统

lost+found

$ ls /mnt/point1

file.img lost+found

$

 

通过这个简单的演示很容易体会到 Linux 文件系统(和循环设备)的强大之处。可以按照相同的方法在文件上用循环设备创建加密的文件系统。可以在需要时使用循环设备临时安装文件,这有助于保护数据。

阅读更多
个人分类: Linux系统管理
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭