type
status
date
slug
summary
tags
category
icon
password
1、什么是磁盘加载
Linux 操作系统将所有的设备都看作文件,它将整个计算机的资源都整合成一个大的文件目录。我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。挂载就是把设备放在一个目录下,让系统知道怎么管理这个设备里的文件,了解这个存储设备的可读写特性之类的过程。
举个通俗易懂的例子:
- Windows 下,mount 挂载,就是给磁盘分区提供一个盘符(C,D,E,...)。比如插入U盘后系统自动分配给了它 I: 盘符其实就是挂载,退出 U 盘的时候进行安全弹出,其实就是卸载 unmount。
- Linux 下,不像 Windows 可以有 C,D,E 多个目录,Linux 只有一个根目录
/
。在装系统时,我们分配给 Linux 的所有区都在/
下的某个位置,比如/home
等等。
- 向 Linux 插入了新硬盘,分了新磁盘区
sdb1
。它现在还不属于/
。我们虽然可以在一些图形桌面系统里找到他的位置,浏览管理里面的文件,但在命令行却不知怎么访问它的目录,比如无法使用cd
或者ls
。也无法在编程时指定一个目录对它操作。
- 这时候需要使用
mount /dev/sdb1 ~/Share/
,把新硬盘的区sdb1
挂载到工作目录的~/Share/
文件夹下,之后访问这个~/Share/
文件夹就相当于访问这个硬盘的sdb1
分区了。对/Share/
的任何操作,都相当于对sdb1
里文件的操作。
所以 Linux 下,mount 挂载的作用,就是将一个设备(通常是存储设备)挂接到一个已存在的目录上。访问这个目录就是访问该存储设备。
我们不是有/dev/sdb1
吗,直接对它操作不就行了?这不是它的目录吗?
这不是它的目录。虽然
/dev
是个目录,但 /dev/sdb1
不是目录。可以发现 ls /dev/sdb1
无法执行。Linux 的设备文件都是类似于 /dev/xxx
的格式 ,比如硬盘文件是 /dev/sd[a-p]
,光盘文件是 /dev/hdc
等。/dev/xxx
,是一个类似指针的东西,指向这个分区的硬件原始数据块。硬件设备需要挂载到相应的目录文件才能使用。常见的硬件设备文件名如下:硬件 | 设备名称 |
IDE硬盘 | /dev/hd[a-d] |
SCSI/SATA/USB硬盘 | /dev/sd[a-p] |
光驱 | /dev/cdrom或/dev/sr0 |
软盘 | /dev/fd[01-1] |
打印机(25针) | /dev/lp[0-2] |
打印机(USB) | /dev/usb/lp[0-15] |
鼠标 | /dev/mouse |
插入CD,系统其实自动执行了
mount /dev/cdrom /media/cdrom
。所以可以直接在 /media/cdrom
中对 CD 中的内容进行管理。2、磁盘挂载的相关命令
2.1 mount命令
mount 命令将硬件设备的文件系统和 Linux 系统中的文件系统,通过指定目录(作为挂载点)进行关联。mount 命令挂载格式如下:
- -t 系统类型:指定欲挂载的文件系统类型。Linux 常见的支持类型有 EXT2、EXT3、EXT4、iso9660(光盘格式)、vfat、reiserfs 等。如果不指定具体类型,挂载时 Linux 会自动检测。
- -L 卷标名:除了使用设备文件名(例如 /dev/hdc6)之外,还可以利用文件系统的卷标名称进行挂载。
- -n:在默认情况下,系统会将实际挂载的情况实时写入 /etc/mtab 文件中,但在某些场景下(例如单人维护模式),为了避免出现问题,会刻意不写入,此时就需要使用这个选项;
- -o 特殊选项:可以指定挂载的额外选项,比如读写权限、同步/异步等,如果不指定,则使用默认值(defaults)。
例如:
mount 命令也可以可以显示出系统中已挂载的设备信息。
- -l:额外显示出卷标名称
- -a:自动检查 /etc/fstab 文件中有无疏漏被挂载的设备文件,如果有,则进行自动挂载操作。这里简单介绍一下 /etc/fstab 文件,此文件是自动挂载文件,系统开机时会主动读取 /etc/fstab 这个文件中的内容,根据该文件的配置,系统会自动挂载指定设备。
2.2 df命令
df 命令是 linux 系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息。
- Filesystem:表示该文件系统位于哪个分区,因此该列显示的是设备名称;
- 1K-blocks:此列表示文件系统的总大小,默认以 KB 为单位;
- Used:表示用掉的硬盘空间大小;
- Available:表示剩余的硬盘空间大小;
- Use%:硬盘空间使用率。如果使用率高达 90% 以上,就需要额外注意,因为容量不足,会严重影响系统的正常运行;
- Mounted on:文件系统的挂载点,也就是硬盘挂载的目录位置。
这里访问
/
,就相当于访问 /dev/sda1
磁盘。2.3 du命令
统计目录或文件所占磁盘空间大小的命令。在统计目录时,不是想看父目录下的子目录名和子文件名到底占用了多少空间,而是想看父目录下的子目录和子文件的总磁盘占用量大小,这时就需要使用 du 命令才能统计目录的真正磁盘占用量大小。
- a:显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量
- h:使用习惯单位显示磁盘占用量,如 KB、MB 或 GB 等;
- s:统计总磁盘占用量,而不列出子目录和子文件的磁盘占用量
有时我们会发现,使用 du 命令和 df 命令去统计分区的使用情况时,得到的数据是不一样的。那是因为df命令是从文件系统的角度考虑的,通过文件系统中未分配的空间来确定文件系统中已经分配的空间大小。也就是说,在使用 df 命令统计分区时,不仅要考虑文件占用的空间,还要统计被命令或程序占用的空间(最常见的就是文件已经删除,但是程序并没有释放空间)。而 du 命令是面向文件的,只会计算文件或目录占用的磁盘空间。也就是说,df 命令统计的分区更准确,是真正的空闲空间。
2.4 fdisk命令
用命令
fdisk -l
查看新磁盘是否被系统识别2.5 fstab文件
/etc/fstab
是用来存放文件系统的静态信息的文件。当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录。可以用命令
less /etc/fstab
来查看。如果要修改的话,则用命令 vi /etc/fstab
来修改。- Author:mcbilla
- URL:http://mcbilla.com/article/18dfb404-a054-4585-b02d-0549b6b7fc12
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts