Linus实验楼笔记——第7节:文件系统操作与磁盘管理

来源:互联网 发布:晴天软件注册码 编辑:程序博客网 时间:2024/05/22 05:23

一、知识点:

1、"rootfs" : (Root File System)它是 Ramfs(Ramfs 是一个非常简单的 Linux 文件系统用于实现磁盘缓存机制作为动态可调整大小的基于 ram 的文件系统)或者 tmpfs 的一个特殊实例,它作为系统启动时内核载入内存之后,在挂载真正的的磁盘之前的一个临时文件系统。通常的主机会在系统启动后用磁盘上的文件系统替换,只是在一些嵌入式系统中会只存在一个 rootfs ,或者像我们目前遇到的情况运行在虚拟环境中共享主机资源的系统也可能会采用这种方式。

2、du(estimate file space usage)命令与df(report file system disk space usage)。
3、dd命令用于转换和复制文件,不过它的复制不同于cp。dd也可以用在备份硬件的引导扇区、获取一定数量的随机数据或者空数据等任务中。dd程序也可以在复制时处理数据,例如转换字节序、或在 ASCII 与 EBCDIC 编码间互换。dd的命令行语句与其他的 Linux 程序不同,因为它的命令行选项格式为选项=值,而不是更标准的--选项 值或-选项=值。dd默认从标准输入中读取,并写入到标准输出中,但可以用选项if(input file,输入文件)和of(output file,输出文件)改变。


**将这个文件格式化(写入文件系统)**

4、使用 mkfs 命令格式化磁盘。在命令行输入 sudo mkfs 然后按下Tab键,你可以看到很多个以 mkfs 为前缀的命令,这些不同的后缀其实就是表示着不同的文件系统,可以用 mkfs 格式化成的文件系统。

由下图查询可以看到实际 mkfs.ext4 是使用 mke2fs 来完成格式化工作的。

(1)在虚拟机查询mkfs



(2)在虚拟机查询 mkfs.ext4 




(3)在虚拟机查询 mke2fs




5、如果你想想知道 Linux 支持哪些文件系统你可以输入ls -l /lib/modules/$(uname -r)/kernel/fs
6、使用 mount 命令挂载磁盘到目录树
用户在 Linux/UNIX 的机器上打开一个文件以前,包含该文件的文件系统必须先进行挂载的动作,此时用户要对该文件系统执行 mount 的指令以进行挂载。通常是使用在 USB 或其他可移除存储设备上,而根目录则需要始终保持挂载的状态。又因为 Linux/UNIX 文件系统可以对应一个文件而不一定要是硬件设备,所以可以挂载一个包含文件系统的文件到目录树。
Linux/UNIX 命令行的 mount 指令是告诉操作系统,对应的文件系统已经准备好,可以使用了,而该文件系统会对应到一个特定的点(称为挂载点)。挂载好的文件、目录、设备以及特殊文件即可提供用户使用。
6、/dev/loop的说明:

在类 UNIX 系统中,/dev/loop(或称vnd (vnode disk)、lofi(循环文件接口))是一种伪设备,这种设备使得文件可以如同块设备一般被访问。

在使用之前,循环设备必须与现存文件系统上的文件相关联。这种关联将提供给用户一个应用程序接口,接口将允许文件视为块特殊文件(参见设备文件系统)使用。因此,如果文件中包含一个完整的文件系统,那么这个文件就能如同磁盘设备一般被挂载。

这种设备文件经常被用于光盘或是磁盘镜像。通过循环挂载来挂载包含文件系统的文件,便使处在这个文件系统中的文件得以被访问。这些文件将出现在挂载点目录。如果挂载目录中本身有文件,这些文件在挂载后将被禁止使用。
7、使用 fdisk 为磁盘分区(关于分区的一些概念不清楚的用户请参看主引导记录)

8、使用 losetup 命令建立镜像与回环设备的关联


二、实验过程:

1、使用 dd 命令创建虚拟镜像文件

/dev/zero设备创建一个容量为 256M 的空文件:(/dev/zero文件代表一个永远输出 0的设备文件,使用它作输入可以得到全为空的文件。因此可用来创建新文件和以覆盖的方式清除旧文件。

可参考:http://blog.csdn.net/bytxl/article/details/25596819)


2、使用 mkfs 命令格式化磁盘(我们这里是自己创建的虚拟磁盘镜像)

使用下面的命令来将我们的虚拟磁盘镜像格式化为ext4文件系统:


sudo mkfs.ext4 virtual.img

3、使用 mount 命令挂载磁盘到目录树

挂载我们创建的虚拟磁盘镜像到/mnt目录:


通过以下命令查看已挂载的文件系统

 sudo mount


挂载成功:



4、使用 fdisk 为磁盘分区

(1)查看硬盘分区表信息(我用的是虚拟机):

/dev/sda5 为交换分区(可以理解为虚拟内存)



(2)进入磁盘分区模式,使用n命令添加一个主分区,一个扩展分区


我事先添加过了:



(3)使用 128M(可用 127M 左右)的虚拟磁盘镜像创建一个 30M 的主分区剩余部分为扩展分区包含 2 个大约 45M 的逻辑分区。





(4)

使用 losetup 命令建立镜像与回环设备的关联



使用mkfs格式化各分区(前面我们是格式化整个虚拟磁盘镜像文件或磁盘),不过格式化之前,我们还要为各分区建立虚拟设备的映射,用到kpartx工具,需要先安装:


$ sudo apt-get install kpartx$ sudo kpartx -av /dev/loop0


再是格式化,我们将其全部格式化为 ext4:



$ sudo mkfs.ext4 -q /dev/mapper/loop0p1$ sudo mkfs.ext4 -q /dev/mapper/loop0p5$ sudo mkfs.ext4 -q /dev/mapper/loop0p6

格式化完成后在/media目录下新建四个空目录用于挂载虚拟磁盘:


$ mkdir -p /media/virtualdisk_{1..3}

# 挂载磁盘分区$ sudo mount /dev/mapper/loop0p1 /media/virtualdisk_1$ sudo mount /dev/mapper/loop0p5 /media/virtualdisk_2$ sudo mount /dev/mapper/loop0p6 /media/virtualdisk_3

完成:



阅读全文
0 0