Linux中文件编程的基本知识(4)

可能我们机子上都按了两个操作系统Linux操作系统和XP,那么我们一般都可以在Linux下访问XP下的文件,但是我们却不能在XP下访问Linux,这是为什么呢?

一.安装文件系统

1.由于 Ext2/Ext3是 Linux 的标准文件系统,所以系统把EXT2 文件系统的磁盘分区做为系统的根文件系统,EXT2 以外的文件系统(如 Window的 FAT32 文件系统)则安装在根文件系统下的某个目录下,成为系统树型结构中的一个分枝。安装一个文件系统用 mount 命令。
2.将一个文件系统的顶层目录挂到另一个文件系统的子目录上,使它们成为一个整体,称为“安装(mount)”。把该子目录称为“安装点(mount point)”。

3 .文件系统创建示例
第一步:创建一个经过初始化的文件 (用 dd 命令创建一个指定大小的文件(使用 /dev/zero 作为源进行文件复制)
dd if=/dev/zero of=tiger bs=1k count=10000

过程实例:

think@Ubuntu:~$ dd if=/dev/zero of=tiger bs=1k count=10000
记录了10000+0 的读入
记录了10000+0 的写出
10240000字节(10 MB)已复制,0.0890382 秒,115 MB/秒

(对dd命令不熟悉或者感兴趣的话可以看这里 )


Tiger-John说明:

把输入文件/dev/zero 拷贝到输出文件 tiger中,输入输出的块大小为 1k,总共拷贝 10000 块。

现在我们就创建了一个10MB 的 tiger文件。


第二步:使用 losetup 命令将一个循环设备与这个文件关联起来,让它看起来像一个块设备,而不是文件系统中的常规文件。(此时要使用超级权限)

sudo losetup /dev/loop0 tiger


过程实 例 :

think@ubuntu:~$ sudo losetup /dev/loop0 tiger
[sudo] password for think:
losetup: /dev/loop0: device is busy


Tiger-John 说明:

在此处使用sudo losetup /dev/loop0  命令时系统提示错误:losetup: /dev/loop0: device is busy。

说明有设备在使用 loopback 设备 ,我们可以用 /dev/loop1或 /dev/loop2来 代替 /dev/loop0,直到有一个空闲的 loopback 设备。

所以我们把命令该为 sudo losetup /dev/loop1tiger 再试一下。


过程实 例:

think@ubuntu:~$ sudo losetup /dev/loop1 tiger
  [sudo] password for think

没有提示错误,说明操作成功。此时, tiger 文件现在作为一个块设备出现(由 /dev/loop1表示)


第三步: 然后用 mke2fs 在这个设备上创建一个文件系统。这个命令创建一个指定大小的新的 ext2 文件系统 。

mke2fs -c /dev/loop1 10000

表示在/dev/loop0 块设备上创建大小为10MB 的 ext2文件系统

过程实 例:

think@ubuntu:~$ sudo mke2fs -c /dev/loop1 10000
[sudo] password for think:
mke2fs 1.41.11 (14-Mar-2010)


第四步:使用 mount 命令将循环设备(/dev/loop1)所表示的 tiger 文件安装到安装点 /mnt/point1。注意,文件系统类型指定为 ext2。

mkdir /mnt/point1    表示:创建安装点
mount -t ext2 /dev/loop1  /mnt/point1:在安装点上安装 ext2 文件系统

过程实 例:

think@ubuntu:~$ sudo mkdir /mnt/point1
think@ubuntu:~$ mount -t ext2 /dev/loop1  /mnt/point1
mount: 只有 root 才能进行此操作

think@ubuntu:~$ su

root@ubuntu:/home/think# mount -t ext2 /dev/loop1 /mnt/point1


Tiger-John 说明:

mount 操作只能在root 权限下用行,所以我们用命令:su 切换到root 用户下

第五步:安装之后,就可以将这个安装点当作一个新的文件系统,比如使用 ls 命令就可以查看文件系统。


过程实例:

root@ubuntu:/home/think# ls /mnt/point1
lost+found
Tiger-John 说明:

lost+found表示新文件系统中默认的文件目录

至次一个文件系统就安装在Linux之上了。

那么我么如何卸载它呢?

第六步:我们通过命令: umount /mnt/vfs 和 losetup -d /dev/loop0 来卸载我们刚才所加载的文件系统。

过程实例:

root@ubuntu:/home/think# umount /mnt/point1
root@ubuntu:/home/think# losetup -d /dev/loop1
root@ubuntu:/home/think# ls  /mnt/point1
root@ubuntu:/home/think#

此时我们通过ls /mnt/pont1 已经看不到我们刚才的文件系统了。说明我们卸载成功

Tiger-John说明 :

从上面的学习我们学会了用shell命令来挂载自己的文件系统和卸载文件系统,那么大家有没有疑问呢?当我们在用这些shell命令时,系统到底是如何实现的呢?如过你有兴趣的话就来这里看看把

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwszjx.html