Linux系统中“一切皆文件”,所有文件都放置在以根目录为树根的树形目录结构中。Linux中任何硬件设备也都是文件,它们各有自己的一套文件系统(文件目录结构)。
当Linux系统中使用这些硬件设备时,只有将Linux本身的文件目录与硬件设备的文件目录合二为一,硬件设备才能为我们所用。合二为一的过程称为“挂载”。
挂载,指的就是将设备文件中的顶级目录连接到Linux根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件。而解除此关联关系的过程称之为“卸载”
并不是根目录下任何一个目录都可以作为挂载点,由于挂载操作会使得原有目录中文件被隐藏,因此根目录以及系统原有目录都不要作为挂载点,会造成系统异常甚至崩溃,挂载点最好是新建的空目录。
㈡ Linux里面文件挂载点是什么
1.提一句Windows下,mount挂载,就是给磁盘分区提供一个盘符(C,D,E,...)。比如插入U盘后系统自动分配给了它I:盘符其实就是挂载,退优盘的时候进行安全弹出,其实就是卸载unmount。
2.Linux下,不像Windows可以有C,D,E,多个目录,Linux只有一个根目录/。在装系统时,我们分配给linux的所有区都在/下的某个位置,比如/home等等。
3.提问者插入了新硬盘,分了新磁盘区sdb1。它现在还不属于/。
4.我们虽然可以在一些图形桌面系统里找到他的位置,浏览管理里面的文件,但在命令行却不知怎么访问它的目录,比如无法使用cd或者ls。也无法在编程时指定一个目录对它操作。
5.这时提问者使用了 mount /dev/sdb1 ~/Share/ ,把新硬盘的区sdb1挂载到工作目录的~/Share/文件夹下,之后访问这个~/Share/文件夹就相当于访问这个硬盘2的sdb1分区了。对/Share/的任何操作,都相当于对sdb1里文件的操作。
6.所以Linux下,mount挂载的作用,就是将一个设备(通常是存储设备)挂接到一个已存在的目录上。访问这个目录就是访问该存储设备。
7.linux操作系统将所有的设备都看作文件,它将整个计算机的资源都整合成一个大的文件目录。我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。挂载就是把设备放在一个目录下,让系统知道怎么管理这个设备里的文件,了解这个存储设备的可读写特性之类的过程。
8.我们不是有/dev/sdb1 吗,直接对它操作不就行了?这不是它的目录吗?
9.这不是它的目录。虽然/dev是个目录,但/dev/sdb1不是目录。可以发现ls/dev/sdb1无法执行。/dev/sdb1,是一个类似指针的东西,指向这个分区的原始数据块。mount前,系统并不知道这个数据块哪部分数据代表文件,如何对它们操作。
10.插入CD,系统其实自动执行了 mount /dev/cdrom /media/cdrom。所以可以直接在/media/cdrom中对CD中的内容进行管理。
㈢ Linux怎么卸载挂载文件
linux使用umount命令来卸载挂载的文件。例如:
umount /mnt/net1
umount命令说明
umount命令用于卸载已经加载的文件系统。利用设备名或挂载点都能umount文件系统,不过最好还是通过挂载点卸载,以免使用绑定挂载(一个设备,多个挂载点)时产生混乱。
语法
umount(选项)(参数)
选项
-a:卸除/etc/mtab中记录的所有文件系统;
-h:显示帮助;
-n:卸除时不要将信息存入/etc/mtab文件中;
-r:若无法成功卸除,则尝试以只读的方式重新挂入文件系统;
-t<文件系统类型>:仅卸除选项中所指定的文件系统;
-v:执行时显示详细的信息;
-V:显示版本信息。
参数
文件系统:指定要卸载的文件系统或者其对应的设备文件名。
实例
下面两条命令分别通过设备名和挂载点卸载文件系统,同时输出详细信息:
通过设备名卸载
umount -v /dev/sda1
/dev/sda1 umounted
通过挂载点卸载
umount -v /mnt/mymount/
/tmp/diskboot.img umounted
如果设备正忙,卸载即告失败。卸载失败的常见原因是,某个打开的shell当前目录为挂载点里的某个目录:
umount -v /mnt/mymount/
umount: /mnt/mymount: device is busy
umount: /mnt/mymount: device is busy
有时,导致设备忙的原因并不好找。碰到这种情况时,可以用lsof列出已打开文件,然后搜索列表查找待卸载的挂载点:
lsof | grep mymount 查找mymount分区里打开的文件
bash 9341 francois cwd DIR 8,1 1024 2 /mnt/mymount
从上面的输出可知,mymount分区无法卸载的原因在于,francois运行的PID为9341的bash进程。
对付系统文件正忙的另一种方法是执行延迟卸载:
umount -vl /mnt/mymount/ 执行延迟卸载
延迟卸载(lazy unmount)会立即卸载目录树里的文件系统,等到设备不再繁忙时才清理所有相关资源。卸载可移动存储介质还可以用eject命令。下面这条命令会卸载cd并弹出CD:
eject /dev/cdrom 卸载并弹出CD
㈣ Linux下如何自己手动使用命令挂载/卸载USB设备
Linux系统下通常都会自动挂载USB设备,如果没有自动挂载的话就需要自己手动挂载USB设备了,那么Linux下要如何挂载USB设备呢?不需要的时候又要如何卸载呢?一起来了解下吧。
在挂载之前需要确定下列三种信息
1、要挂载对象的文件系统类型
2、要挂载对象的设备名称
3、确定挂载点
挂载时使用mount命令:
格式:mount [-参数] [设备名称] [挂载点]
我们常见的USB设备格式是:FAT32格式、NFTS格式等。
ext2 linux目前常用的文件系统
msdos MS-DOS的fat,就是fat16
vfat windows98常用的fat32
nfs 网络文件系统
iso9660 CD-ROM光盘标准文件系统
ntfs windows NT 2000的文件系统
hpfs OS/2文件系统
挂u盘之前,运行命令cat /proc/partitions,看看现在系统中有哪些分区。
插上u盘以后,再次运行上述命令,看看多出来什么分区。
1) 插入U盘
2) 输入 fdisk -l /dev/sda 查看输出结果,比如我的是这样的:
代码如下:
# fdisk -l /dev/sda《/p》 Disk /dev/sda: 131 MB, 131104768 bytes
3 heads, 32 sectors/track, 2667 cylinders
Units = cylinders of 96 * 512 = 49152 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 2668 128016 6 FAT16
3) 看了上面的输出就知道U盘所在的设备了,比如我的就是/dev/sdb1,接着便是挂载了
假设我将U盘挂载到/mnt/usb目录(没有的话,新建)中,就是mount -t msdos /dev/sdb1 /mnt/usb
如果是fat32
代码如下:
mount -t vfat /dev/sdb1 /mnt/usb
如果是ext2格式,就用命令:
代码如下:
mount -t ext2 /dev/sda1 /mnt/usb
4) 打开/mnt/usb 就可以看到你的U盘里的东西了!
代码如下:
cd /mnt/usb
5) 卸载命令则为:
代码如下:
umount /mnt/usb。
上面就是Linux下挂载及卸载USB设备的方法介绍了,挂载USB接口设备后就能够查看移动盘的内容了,而不需要使用的时候也可将其卸载,你学会了吗?
㈤ Linux格式化出错,提示挂载失败,但是要卸载它却有提示没有挂载
很可能是/etc/fstab配置了自动加载,而mount是直接读取/etc/mtab配置信息的,解决办法以root用户删除/etc/fstab相关的自动加载信息即可
㈥ 5. 如何理解 linux 系统里文件系统的挂载和卸载
通过Linux专有的虚拟文件/proc/mounts可查看当前已经挂载文件系统的列表。
/proc/mounts是内核数据结构的接口,因此总是包含已挂载文件系统的精确信息。
mount和umount命令会自动维护/etc/mtab文件,该文件所包含的信息与/proc/mounts
的内容相似,特别是包含了传递给mount文件系统专有选项,并未在/proc/mounts中.但
是因为系统调用mount和umount并不更新/etc/mtab,如果某些挂载或卸载了设备的应用
程序没有更新该文件,那么/etc/mtab可能会变得不准确。
/etc/fstab(由系统管理员手工维护)包含了对系统支持的所有文件系统的描述,该文件
可供mount,umount,fsck使用。
/proc/mounts,/etc/mtab,/etc/fstab的格式相同。如下:
tmpfs /run tmpfs rw,nosuid,noexec,relatime,size=206380k,mode=755 0 0
这条记录包含了6个字段。
1 已经挂载的设备名
2 设备的挂载点
3 文件系统类型
4 挂载标志
5 一个数字--mp会用它来控制对文件系统的备份操作,只有/etc/fstab文件才会用到该字段和6字段。
在/proc/mounts和/etc/mtab中,该字段总为0
6 一个数字 --在系统引导时,用于控制fsck对文件系统的检查顺序。
mount()系统调用将由source指定的设备所包含的文件系统,挂在到由target指定的目录下。
#include <sys/mount.h>
int mount(const char * source,const char * target,const char * fstype,
unsigned long mountflags,const void * data);
returns 0 on success or -1 on error.
umount()系统调用用于卸载已经挂载的文件系统。
#include <sys/mount.h>
int umount(const char* target);
returns 0 on success or -1 on error.