您的位置:首页 > 运维架构 > Linux

【Linux学习笔记】15:挂载命令

2017-08-25 23:28 579 查看
在Linux中所有的存储设备都必须挂载以后才能正常使用,挂载可以理解成windows中的分配盘符,只不过windows中用字母作为盘符,Linux中用系统目录来作为挂载点。

在安装Linux系统时设置了分区,并分配了挂载点,它们不需要每次重新挂载了。但是U盘,光盘这样的外来存储设备就时常需要我们手动挂载了。这就像在windows中我们插入U盘,它也需要分配盘符才能正常使用(常常是F盘、G盘等),只是这个过程在windows中是自动的,在Linux中需要手动执行。

[1]查询与自动挂载

*查询系统中已经挂载的设备

[root@bogon ~]# mount




如:

/dev/sda1 on /boot type ext4 (rw)


这一行表示第a(即第1)块SCSI 或SATA 硬盘的第1个分区(主分区最多4个,第4块可作为扩展分区,在扩展分区里做若干个逻辑分区,如有第一个逻辑分区则编号必为5),它的挂载点是/boot,文件系统类型为ext4,操作权限为读写。

如:

proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)


从这两行中可以看出/proc/和/sys/这两个目录就是系统内存的挂载点,内核自动挂载的,我们不需要手动挂载它们。

*依据/etc/fstab配置文件的内容,把它里面写的所有设备都挂载

[root@bogon ~]# mount -a


那个文件是自动挂载的文档,里面写的安装系统时的分区和系统特殊设备会随着开机启动自动挂载。



如果把外来存储设备如光盘的挂载也写进去,那系统开机时理论上也会自动挂载它,但如果你忘记放入光盘,系统就会没法正常启动,所以不建议让它们开机自动挂载。

[2]挂载命令格式

mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点


选项:”-t 文件系统”加入文件系统来指定挂载的类型,如ext3,ext4,iso9660(光盘)等,”-o 特殊选项”指定挂载的额外选项。

光盘和U盘等有自己的设备文件名。

用已经存在的空白目录来作为挂载点。

特殊选项有很多,用逗号隔开。如exec/noexec是否允许你挂载的分区执行可执行文件,默认是exec(允许)。remount可以重新挂载已经挂载的文件系统,一般用于指定修改特殊权限。

假设有挂载点/home(实际上我没手动分区,没有/home分区),若要重新挂载使它不能执行可执行文件。

[root@bogon dev]# mount -o remount,noexec /home/


那么在这个分区中就不能执行可执行文件了,会提
c666
示权限不够,实际上不是权限不够,而是挂载设置的问题。这样的实验要记得及时改回来,而且不要在根分区或者/boot这样的分区做。

[root@bogon dev]# mount -o remount,exec /home/


另外,因为/home分区是已经挂载好的(实际上我的虚拟机没挂载,假设它挂载了),所以不需要写设备文件名(视频中是sda2,和具体分区的结果有关)。

[3]挂载光盘

①放入光盘

在虚拟机中,只要



相当于在真实机中放入了光盘且光驱给电可用。

②建立挂载点(空目录)

[root@bogon dev]# mkdir /mnt/cdrom/


在/mnt/里新建一个目录,是使用老式Linux的程序员的习惯,因为老式的Linux没有默认的/media/(光盘)和/misc/(磁带机)目录,外来存储设备都在/mnt/下创建目录去挂载。

③挂载文件系统

光盘的设备文件名是/dev/cdrom,实际上它是/dev/sr0的软链接(可以去/dev/下ll命令查看一下),所以用这两个都可以,这个sr0还有其它的几个软链接。建议用sr0,因为软链接在系统完全启动后才能生效,一旦出现问题,系统没能完全启动可能就不能生效了。

[root@bogon dev]# mount -t iso9660 /dev/cdrom /mnt/cdrom/


实际上”-t iso9660”在这里也是可以省略的,因为系统知道光盘的默认文件系统就是iso9660。



这条命令给出了提示,因为挂载的默认选项是读写,但是光盘一旦制作好是只读的,不相匹配,所以被迫挂载成了只读权限的。出现这句话可以认为光盘正确挂载了。

现在就可以在挂载点目录/mnt/cdrom/下访问到光盘中的信息了:



(这是我的RHEL的安装盘)

[4]取出光盘(卸载命令)

在windows中用完光盘可以按弹出直接弹出来,但是如果用的是Linux是不能弹出来的,因为Linux中挂载完光盘,要取出就要卸载。实际上windows也是一样,但是Linux对此更严格。

umount 设备文件名或挂载点


如果进入光盘目录下,去卸载时会提示设备正忙,不能卸载:

[root@bogon dev]# cd /mnt/cdrom/
[root@bogon cdrom]# umount /mnt/cdrom/
umount: /mnt/cdrom: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))


离开这个目录,就可以正常卸载了:

[root@bogon cdrom]# cd
[root@bogon ~]# umount /mnt/cdrom/
[root@bogon ~]# cd /mnt/cdrom/
[root@bogon cdrom]# ls
[root@bogon cdrom]#


[5]挂载U盘

光盘的设备文件名是系统自带的,但是U盘会像硬盘一样设备文件名跟块数和具体分区有关,往往插入后会成为sdb1(如果计算机默认有两块硬盘那么U盘插入后就成为sdc1了)。

*查看系统中已经识别的硬盘

[root@bogon cdrom]# fdisk -l




如果插入了U盘,就能在这里找到它的数据,这样就知道它的设备文件名到底是什么了。

假如是sdb1,挂载它(挂载点要提前手动建立):

[root@bogon cdrom]# mount -t vfat /dev/sdb1 /mnt/usb/


“-t vfat”指定文件系统是fat32,fat32在硬盘中基本已经淘汰了,因为这种文件系统最大的文件不能超过4G,但是在U盘中还在使用。

注意,Linux是不支持NTFS文件系统的,所以移动硬盘不能在Linux中直接挂载。要想挂载,可以有两种方法:

①重新编译Linux内核,把支持NTFS文件系统加上(windows安装则只安装纯的操作系统,Linux中常用的驱动都放在了内核里。如果所有驱动全放在内核里就太大了,所以只放了一部分。)

②安装NTFS-3G,可以实现 Linux、Free BSD、Mac OSX、NetBSD 和 Haiku 等操作系统中的 NTFS 支持。

就算Linux用以上方法支持了NTFS系统,也只是只读的(苹果的电脑连移动硬盘也只读也是因为它是基于Unix的)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: