Linux的文件系统及其硬盘分区挂载原理
如果您是一位新手,也许 您还不知道如何把文件从Windows拷贝到Linux上吧?下面,我们将说明Unix文件系统以及mount的工作过程,然后再比较详细地讨论。
mount的使用和有关选项。如果您已经了解Unix文件系统是如何工作的,那么可以跳过下面一节。否则,您最好继续接着学习"mount"的含义。 什么是mount? 在一些操作系统(如Windows)中,计算机通过设备名来识别设备,例如,大多数PC机系统都包括"A:drive"(软盘)、"C:drive"(硬盘)和"D:drive"(一般是只读光盘)。 出于各种各样的理由,Linux系统一般不采用这种方式指示存储设备。Linux系统采用单一的目录树(类似于Windows上用户的"C:drive"目录树结构),通过mount到目录树的分支上来查找存储设备的内容。 在这台特定的计算机上,总共有4个硬盘驱动器,它们全都被文件系统管理。例如,假设我们沿用Windows系统的方法,给这4个硬盘驱动器分别命名为C、D、E和F,那么它们的Linux路径名和Windows的等价名如表1所示。 磁盘号 Linux路径等价的Windows文件名 1/C:\ 1 /var C:\VAR 1 /var/adm C:\VAR\ADM 1 /var/spool C:\VAR\SPOOL 1 /home C:\HOME 1 /home C:\HOMEJACKON 2 /usr D:\ 2 /usr/lib D:\USR\LIB 3 /usr/X11R6 E:\ 4 /home F:\ 通过维护系统中的设备列表,以及设备被mount的情况,Linux系统知道到哪里去寻找包含在每个路径表上的数据,而不管数据具体存放在哪个设备上。因为数据映射的操作是自动完成的,所以用户不需要记住数据在哪个硬盘驱动器上。 例如,对匿名ftp用户,只需要记住/home/ftp是在"home"目录上,而不需要记住所有的ftp文件都在"F:\"或第4个硬盘驱动器上,这样 显然直观多了。同样地,记住面向用户的库程序全在/usr/lib上,比必须记住面向用户的库程序全部在第2个硬盘驱动器的"LIB"目录上也直观得多。 设备标识 为了记住每个设备被mount到哪里,Linux系统需要有一种惟一的方法标识各个设备。对于人来讲,通过在/dev目录上找到设备名就完成了任务。但 是,这个目录包含了大量的特殊文件,每个文件都指示不同类型的设备,或现有设备上的分区。例如,/dev/hda设备指示系统的第一个硬盘驱动器; /dev/hda1指示第一个硬盘驱动器的第1分区,而/dev/hda2是第2个硬盘驱动器的第2分区。表2展示了一些常用的设备文件和相应的设备。 特殊文件 设备 /dev/fdo 第1软盘驱动器 /dev/fdl 第2软盘驱动器 /dev/cdrom CD-ROM驱动器 /dev/hda[1-16] 第1硬盘驱动器(IDE1,1)和分区1-16 /dev/hdb[1-16] 第2硬盘驱动器(IDE2,2)和分区1-16 /dev/sda[1-16] 第1硬盘驱动器(SCSI0)和分区1-16 /dev/sdb[1-16] 第2硬盘驱动器(SCSI1)和分区1-16 /dev/sdc[1-16] 第3硬盘驱动器(SCSI2)和分区1-16 /dev/sdd[1-16] 第4硬盘驱动器(SCSI3)和分区1-16 当然,有许多设备在表2中没能列出。要看到在您的系统中完整的特殊设备列表,可以采用如下命令: #/s/dev 不用担心,许多设备您永远也用不上,一般也不需要研究和记住它们。 文件格式 除了要记住每个设备被mount到何处,Linux系统还需要记住每个设备上存在什么类型的文件系统。对于Windows操作系统,大多数设备存储信息 时,只采用目前流行的两种格式,即FAT16或FAT32中的一种。只有CD-ROM驱动器是一个明显的例外,它采用ISO-9660文件格式。对于 Linux系统,大多数设备存储信息采用Extended-2(ext2)文件系统。同样地,最显著的例外也是CD-ROM驱动器,它依然采用ISO- 9660文件格式,但是Linux也能识别和mount其他的文件系统。要看看您的Linux内核支持哪些文件系统,可以输入以下命令: #cat/proc/filesystems 让我们假设对于一种给定的情况,上述命令的执行结果为: ext2 vfat noelevproc iso9660 对于这个特定的系统,Linux内核支持ext2、vfat、proc和iso9660文件系统。表3给出了Linux所支持的大部分文件系统类型。 文件系统 操作系统或类型 ext2 LinuxExtended-2 minix Minix文件系统 msdos 最初的FAT文件系统(短文件名) vfat 其他FAT文件系统(长文件名) ntfs WindowsNT文件系统(长文件名) hpft OS/2高性能文件系统 hfs AppleMacintosh文件系统 nfs 网络文件系统 ncpfs NovellNetWare文件系统 affs Amiga快速文件系统 Linux还支持其他一些文件系统。为了让Linux支持更多的文件系统,需要或者重新编译Linux的内核,或者下载有关的模块。 /etc/fstab文件幸运的是,在使用Linux维护目录树时,用户不必经常直接和设备名或文件系统打交道。我们已经提到过,Linux在mount 文件系统时,会自动进行维护,它还知道每次是从什么地方开始mount文件系统,这主要是它利用了/etc/fstab文件。对于上面提到过的4个设备的 目录,从/etc/fstab文件中可以摘出有关的内容: /dev/sda1 / ext2 defaults 1 1 /dev/sdc1 /usr ext2 ext2 defaults 1 2 /dev/sdc1 /usr/X11R6 ext2 defaults 1 2 /dev/sdc2 /home/ftp vfat defaults 1 2 对上述给定的/etc/fstab信息,Linux每次开始mount时将按下列步骤进行: ●mount第1个SCSI硬盘驱动器的第1个分区(/dev/sda1),把它作为最先的(根)文件系统,这是一个Linux的ext2格式的磁盘; ●在/usr的目录树上,mount第2个SCSI硬盘驱动器的第1个分区(/dev/sdb1),这是一个Linux的ext2格式的磁盘; ●在/home/ftp的目录树上,Mount第3个SCSI硬盘驱动器的第2个分区(/dev/sdc2),这是一个Windows95的vfat格式的硬盘。 通过适当地配置/etc/fstab文件,用户可以构造一个目录树,该目录树可以容纳许多不同的设备,而且支持许多不同的操作系统文件格式。每次在Linux的根部将自动构造这种目录树。(T002) |
Linux的文件系统及其硬盘分区挂载原理的更多相关文章
- Linux下添加新硬盘,分区及挂载(转)
挂载好新硬盘后输入fdisk -l命令看当前磁盘信息,卸载硬盘分区 umount /dev/sdb 可以看到除了当前的第一块硬盘外还有一块sdb的第二块硬盘,然后用fdisk /dev/sdb 进行分 ...
- linux添加硬盘分区挂载教程
基本步骤:分区--格式化--挂载--写入文件 1.首先用fdisk -l命令查看添加的硬盘名称,可以看到sdb为新增的硬盘 [root@oracle ~]# fdisk -l Disk /dev/sd ...
- 安装 Linux 时碰到的硬盘分区的陷阱及应对
硬盘分区的陷阱及应对 之所以想到写这篇,是因为本人在折腾 Linux 系统的过程中,有多次掉入硬盘分区的陷阱的经历.最近几天,再一次掉入坑中,折腾了两天才从坑中爬出来.经过多方查询资料,终于弄明白了硬 ...
- Linux速通07 硬盘分区、格式化及文件系统管理
硬件设备与文件名的对应关系 # 在Linux系统中,每个设备都被当作一个文件来对待 # 各种设备在Linux中的文件名 设备 设备在Linux内的文件名 IDE硬盘 /dev/hd[a-d] SCSI ...
- linux学习笔记之硬盘分区
引用:http://www.cnblogs.com/xiaoluo501395377/archive/2013/04/03/2997098.html PS:本文仅对知识点作总结.详情请参考原文. 首先 ...
- Linux 添加新磁盘 && 创建分区 && 挂载
参考: 挂载目录 分区:https://blog.csdn.net/arenn/article/details/78866251 挂载:https://www.jb51.net/article/108 ...
- linux系统监控与硬盘分区/格式化/文件系统管理
1.系统监控 1) 系统监视和进程控制的工具----> Top 与 free 类似于windows的资源管理器. 进程运行的三种状态: tips: 进程(Process)是计 ...
- Linux命令-添加新硬盘,分区及挂载[转]
http://www.cnblogs.com/qiyebao/p/4484370.html 转自:http://blog.chinaunix.net/uid-25829053-id-3067619.h ...
- Linux下添加新硬盘,分区及挂载
挂载好新硬盘后输入fdisk -l命令看当前磁盘信息 可以看到除了当前的第一块硬盘外还有一块sdb的第二块硬盘,然后用fdisk /dev/sdb 进行分区 进入fdisk命令,输入h可以看到该命令的 ...
随机推荐
- 我与android的缘分
android的开始 本人是一名大三的学生,大一大二主要学习的是php后台开发,在大一的时候做过一些小的网站系统,也参加过一些大学生计算机相关的比赛.这次开始着手于安卓开发,也是一时的兴起.因为跟我们 ...
- 日历类和日期类转换 并发修改异常 泛型的好处 *各种排序 成员和局部变量 接口和抽象类 多态 new对象内存中的变化
day07 ==和equals的区别? ==用于比较两个数值 或者地址值是否相同. equals 用于比较两个对象的内容是否相同 String,StringBuffer.StringBuilde ...
- delphi 线程教学第五节:多个线程同时执行相同的任务
第五节:多个线程同时执行相同的任务 1.锁 设,有一个房间 X ,X为全局变量,它有两个函数 X.Lock 与 X.UnLock; 有如下代码: X.Lock; 访问资源 P; ...
- springMVC源码解析--ViewResolver视图解析器执行(三)
之前两篇博客springMVC源码分析--ViewResolver视图解析器(一)和springMVC源码解析--ViewResolverComposite视图解析器集合(二)中我们已经简单介绍了一些 ...
- Android Studio精彩案例(二)《仿微信动态点击底部tab切换Fragment》
转载本专栏文章,请注明出处,尊重原创 .文章博客地址:道龙的博客 现在很多的App要么顶部带有tab,要么就底部带有tab.用户通过点击tab从而切换不同的页面(大部分情况时去切换fragment). ...
- iOS 应用提交到iTunes Connect,显示"正在处理"后消失不见
打包上传iTunes Connect 成功后,进入iTunes Connect 会看到如下的构建信息: 可是,过一会再刷新该页面,构建的版本就消失了. 出现如上所述的情况,主要目前已知的有两种原因: ...
- Swift基础之使用Alamofire库进行网络请求和断点下载
好久没有写过Swift相关的文章博客了,这里我就展示一下关于使用Alamofire库的方法 1.什么是Alamofire (1)Alamofire 的前身是 AFNetworking.AFNetwor ...
- 国内外主流BI工具介绍和点评
商业智能的应用在国外已广为普及,并且开始不断探索大数据和云技术.而国内,商业智能BI工具在这几年才开始慢慢被接受,企业开始有意识地建立一体化数据分析平台,为经营决策提供分析. 从国内企业使用情况来看, ...
- Android Studio 使用wifi调试插件
由于手机亦或是数据线的问题,在应用开发过程中会时不时地遇到手机突然连不上电脑的尴尬时刻,于是就学习了如何使用wifi进行应用调试.下面就具体介绍一下adb wifi插件的安装和使用.其实我们只需要安装 ...
- 22 Notification样式设置内部按钮点击事件
package com.exam1ple.demo1; import android.app.Activity; import android.app.NotificationManager; imp ...