1. Linux 磁盘分区和目录 Linux 发行版本之间的差别很少,差别主要表现在系统管理的特色工具以及软件包管理方式的不同。目录结构基本上都是一样的。 Windows 的文件结构是多个并列的树状结构,最顶部的是不同的磁盘(分区),如: C , D , E , F 等。 Linux 的文件结构是单个的树状结构 . 可以用 tree 进行展示。 在 ubuntu 下安装 tree ( sudo apt-get install tree ) , 并可通过命令来查看。 每次安装系统的时候我们都会进行分区, Linux 下磁盘分区和目录的关系如下: – 任何一个分区都必须挂载到某个目录上。 – 目录是逻辑上的区分。分区是物理上的区分。 – 磁盘 Linux 分区都必须挂载到目录树中的某个具体的目录上才能进行读写操作。 – 根目录是所有 Linux 的文件和目录所在的地方,需要挂载上一个磁盘分区。 以下是我们可能存在的一种目录和分区关系: 图1:目录和分区关系 Q: 如何查看分区和目录及使用情况? – fdisk 查看硬盘分区表 – df :查看分区使用情况 – du: 查看文件占用空间情况 Q: 为什么要分区,如何分区? – 可以把不同资料,分别放入不同分区中管理,降低风险。 – 大硬盘搜索范围大,效率低 – 磁盘配合只能对分区做设定 – /home /var /usr/local 经常是单独分区,因为经常会操作,容易产生碎片 2. Mount 挂载和 NFS 简介 挂载的概念 :当要使用某个设备时,例如要读取硬盘中的一个格式化好的分区、光盘或软件等设备时,必须先把这些设备对应到某个目录上,而这个目录就称为 “ 挂载点( mount point ) ” ,这样才可以读取这些设备,而这些对应的动作就是 “ 挂载 ” 。 将物理分区细节屏蔽掉。用户只有统一的逻辑概念。所有的东西都是文件。 Mount 命令可以实现挂载: mount [-fnrsvw] [-t vfstype] [-o options] device dir Q :所有的磁盘分区都必须被挂载上才能使用,那么我们机器上的硬盘分区是如何被挂载的? A :这主要是它利用了 /etc/fstab 文件。每次内核加载它知道从这里开始 mount 文件系统。每次系统启动会根据该文件定义自动挂载。若没有被自动挂载,分区将不能使用。 如下是我的 /etc/fstab 的定义,主要是根据装机的分区来的: # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 #/dev/sda1 被自动挂载到 / UUID=cb1934d0-4b72-4bbf-9fad-885d2a8eeeb1 / ext3 relatime,errors=remount-ro 0 1 # /dev/sda5 被自动挂载到分区 /home UUID=c40f813b-bb0e-463e-aa85-5092a17c9b94 /home ext3 relatime 0 2 #/dev/sda7 被自动挂载到 /work UUID=0f918e7e-721a-41c6-af82-f92352a568af /work ext3 relatime 0 2 # 分区 /dev/sda6 被自动挂载到 swap UUID=2f8bdd05-6f8e-4a6b-b166-12bb52591a1f none swap sw 0 0
Q :移动硬盘如何挂载?如何挂载一个新的分区? 移动硬盘有驱动模块会自动挂载,如果有个新硬盘,要先进行分区,并通过 mount 命令挂载到某个文件夹。如果要自动挂载则可以修改 /etc/fstab 文件 . NFS 简介: NFS 相信在很多地方都有广泛使用,是一个非常好的文件共享方式。我们公司所使用的上传服务就是把文件上传到某台网络服务器上,中间就是通过 NFS 实现。 使用 NFS 客户端可以透明的地访问服务器端的文件。 NFS 也是通过 mount 来实现,底层是通过 NFS 通信协议实现。基本原理: