Linux-----21、挂载

# 挂载命令

将硬件资源,或文件资源💿,和📂空目录🔗连接起来的过程

# mount

linux 所有存储设备都必须挂载使用,包括硬盘

​ 命令名称:mount

​ 命令所在路径:/bin/mount

​ 执行权限:所有用户

#查询系统中已经挂载的设备,-l 会显不卷标名称
mount [-l]
df -h
df -HT

# 依据配置文件/etc/fstab的内容,自动挂载
mount -a

# 只需了解-o
# \代办这一行没有写完,换行
mount [-t 文件系统] [-L 卷标名] [-o 特殊选项] \
设备文件名 挂载点

选项:
	-t 文件系统:	加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660等文件系统。具体可以参考下表
	-L 卷标名:		挂载指定卷标的分区,而不是安装设备文件名挂载
	-o 特殊选项:	可以指定挂载的额外选项,比如读写权限、同步异步等,如果不指定则默认值生效。
参数 说明
atime/noatime 更新访问时间/不更新访问时间。访问分区文件时,是否更新文件的访问时间,默认为更新
async/sync 异步/同步,默认为异步
auto/noauto 自动/手动,mount -a命令执行时,是否会自动安装/etc/fstab文件内容挂载,默认为自动
defaults 定义默认值,相当于rw,suid,dev,exec,auto,nouser,async这七个选项
exec/noexec 执行/不执行,设定是否允许在文件系统中执行可执行文件,默认是exec允许
remount 重新挂载已经挂载的文件系统,一般用于指定修改特殊权限
rw/ro 读写/只读,文件系统挂载时,是否具有读写权限,默认是rw
suid/nosuid 具有/不具有SUID权限,设定文件系统是否具有SUID和SGID的权限,默认是具有
user/nosuer 允许/不允许普通用户挂载,设定文件系统是否允许普通用户挂载,默认是不允许,只有root可以挂载分区
userquota 写入代表文件系统支持用户磁盘配额,默认不支持
grpquota 写入代表文件系统支持组磁盘配额,默认不支持

举例

例1:
[root@localhost ~]# mount
#查看系统中已经挂载的文件系统,注意有虚拟文件系统
/dev/sda3 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid-5,mode-620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sdal on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt misc type binfmt misc (rw)
sunrpc on /var/lib/nfs/rpc pipefs type rpc pipefs (rw)
#命令结果是代表: /dev/sda3 分区挂载到/目录,文件系统是 ext4,权限是读写

例 2: 修改特殊权限
root@localhost # mount
#我们查看到/boot 分区已经被挂载,而且采用的 defaults 选项,那么我们重新载分区,并采用noexec
#权限禁止执行文件执行,看看会出现什么情况(注意不要用/分区做试验,
#不然系统命令也不能执行了)
..·省略部分输出·..
root@localhost 7# mount -o remount,noexec /boot
#重新挂载/boot 分区,并使用 noexec 权限

# umount

譬如 /dev/hda5 已经挂载在/mnt/hda5上,用一下三条命令均可卸载挂载的文件系统

# umount /dev/hda5
# umount /mnt/hda5
# umount /dev/hda5 /mnt/hda5

为什么umount的时候老显示 device busy?

这是因为有程序正在访问这个设备,最简单的办法就是让访问该设备的程序退出以后再umount。可能有时候用户搞不清除究竟是什么程序在访问设备,如果用户不急着umount,则可以用:

# umount -l /mnt/hda5

来卸载设备。选项 --l 并不是马上umount,而是在该目录空闲后再umount。还可以先用命令ps aux 来查看占用设备的程序PID,然后用命令kill来杀死占用设备的进程,这样就umount的非常放心了。

# /etc/fstab文件

man 5 fstab

1.被挂载的设备:
		设备文件,LABEL,UUID,伪文件系统等
		
2.挂载点:
		swap为特殊挂载,挂载点为swap
              
3.文件系统类型

4.挂载选项:
		defaults为默认挂载选项(rw,suid,dev,exec,auto,nouser,and async),可以有多个挂载选项,以逗号为分隔符

5.转储频率:
		0表示从不备份,1表示每天备份,2表示每隔一天备份
		
6.自检次序:
		0表示不自检,1,表示首先自检,一般是根文件系统为1,2,表示次级自检....

# 本地iso挂载

准备工作:上传镜像,创建挂载目录

上传镜像文件到/home/jysp/CentOS-7-x86_64-Everything-2009.iso

[root@Server ~]# mkdir /media/centos7_iso                     #创建挂载点的目录
[root@Server ~]#  mount -o  loop /home/CentOS-7-x86_64-DVD-1708.iso   /media/centos7_iso
[root@Server ~]# df -HT            #查看镜像是否挂载成功
备注: -o是参数,loop是把一个文件当成硬盘分区mount挂着到目录

开机自动挂载:修改配置文件

修改开机自动挂载配置:/etc/fstab
vim /etc/fstab
内容追加如下:
/home/jysp/CentOS-7-x86_64-Everything-2009.iso /media/centos7_iso/ iso9660 defaults,ro,loop 0 0 
保存退出。

[root@localhost ~]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Wed Dec 13 22:10:25 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=1b7d1f9f-b2af-4efb-af81-7d7bc7ef1864 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0

/home/jysp/CentOS-7-x86_64-Everything-2009.iso /media/centos7_iso/ iso9660 defaults,ro,loop 0 0 

# 光盘挂载

光盘挂载的前提是指定光盘的设备文件名,不同版本的Linux,设备文件名并不相同:

  • CentOS 5.x以前的系统,光盘设备文件名是/dev/hdc
  • CentOS 6.x以后的系统,光盘设备文件名是/dev/sr0

不论哪个系统都有软连接/dev/cdrom,与可以作为光盘的设备文件名

(1)挂载

[root@localhost /]# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

一般都习惯挂载到mnt目录下 /cdrom下挂载光盘
# mnt:挂载u盘
# media:挂载光盘
# misc:挂载网络存储盘

mount -t iso9660 /dev/cdrom /mnt/cdrom
# Linux中的光盘格式为iso9660,默认的可以识别
mount /dev/cdrom /mnt/cdrom

(2)卸载

用完之后记得卸载:

umount /dev/sr0
umount /mnt/cdrom
# 因为设备文件名和挂载点已经连接到一起,卸载哪一个都可以

​ 注意:卸载的时候需要退出光盘目录,才能正常卸载

# 挂载U盘

(1)查看U盘

U盘会和硬盘公用设备文件名,所以U盘的设备文件名不是固定的,需要手工查询,查询命令:

fdisk -l
#查询硬盘

(2)挂载U盘

mount -t vfat /dev/sdb4 /mnt/usb/
# 挂载U盘。因为是Windows分区,所以是vfat文件系统格式

如果U盘中有中文,会发现中文是乱码。Linux要想正常显示中文,需要两个条件:

  • 安装了中文编码和中文字体
  • 操作终端需要支持中文显示(纯字符终端,是不支持中文编码的)

手工指定中文编码:

mount -t vfat -o iocharset=utf8 /dev/sdb1 /mnt/usb/
# 挂载U盘,指定中文编码格式为UTF-8

如果需要卸载,可以执行

umount /mnt/usb/

# 挂载NTFS分区

# Linux的驱动加载顺序

  • 驱动直接放入系统内核之中。这种驱动主要是系统启动加载必须的驱动,数量较少。
  • 驱动以模块的形式放入硬盘。大多数驱动都已这种方式保存,保存位置在/lib/modules/3.10.0-862.el.x86_64/kernel/中。
  • 驱动可以被Linux识别,但是系统认为这种驱动异步不常用,默认不加载。如果需要加载这种驱动,需要重新编译内核,而NTFS文件系统的驱动就属于这种情况。
  • 硬件不能被Linux内核识别,需要手工安装驱动。当然前提是厂商提供了改硬件针对Linux的驱动,否则就需要自己开发驱动了

# 使用 NTFS-3G 安装 NTFS 文件系统模块

下载 NTFS-3G 插件

我们从网站 http://www.tuxera.com/community/ntfs-3g-download/下载 NTFS-3G 插件到 Linux服务器上。

安装 NTFS-3G 插件

在编译安装 NTFS-3G 插件之前,要保证 gcc 编译器已经安装。具体安装命令如下:

tar -zxvf ntfs-3g ntfsprogs-2013.1.13.tgz
# 解压
[root@localhost ~]# cd ntfs-3g ntfsprogs-2013.1.13
#进入解压目录
root@localhost ntfs-3g ntfsprogs-2013.1.13]# ./configure
#编译器准备。没有指定安装目录,安装到默认位置中
root@localhost ntfs-3g ntfsprogs-2013.1.137# make
#编译
root@localhost ntfs-3g ntfsprogs-2013.1.13]# make install
#编译安装

安装就完成了,已经可以挂载和使用 Windows 的 NTFS 分区了。不过需要注意挂载分区时的文件

系统不是 ntfs,而是 ntfs-3g。挂载命令如下:

[root@localhost~]# mount -t ntfs-3g 分区设备文件名 挂载点
例如:
[root@localhost ~]# mount - t ntfs-3g /dev/sdbl /mnt/win

# nfs挂载

参考后续文章(服务管理--NFS)

[jysp@jysp ~]$ df -HT
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs   69G     0   69G    0% /dev
tmpfs                   tmpfs      69G     0   69G    0% /dev/shm
tmpfs                   tmpfs      69G  131M   69G    1% /run
tmpfs                   tmpfs      69G     0   69G    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs       5.1T   84G  5.0T    2% /
/dev/sda2               xfs        11G  171M   11G    2% /boot
/dev/sda1               vfat      4.3G  9.5M  4.3G    1% /boot/efi
10.139.102.114:/data1   nfs4      128T  272G  128T    1% /home/jysp/workspace/platform_file_storage
10.139.102.114:/data    nfs4      128T  272G  128T    1% /home/jysp/ftps
tmpfs                   tmpfs      14G  197k   14G    1% /run/user/42
tmpfs                   tmpfs      14G     0   14G    0% /run/user/1000

我的原文 https://docs.xiaoshaozi.site/zs-use/linux/

相关推荐
我们的五年1 分钟前
【Linux课程学习】:进程程序替换,execl,execv,execlp,execvp,execve,execle,execvpe函数
linux·c++·学习
爱吃青椒不爱吃西红柿‍️21 分钟前
华为ASP与CSP是什么?
服务器·前端·数据库
IT果果日记22 分钟前
ubuntu 安装 conda
linux·ubuntu·conda
Python私教25 分钟前
ubuntu搭建k8s环境详细教程
linux·ubuntu·kubernetes
羑悻的小杀马特38 分钟前
环境变量简介
linux
小陈phd1 小时前
Vscode LinuxC++环境配置
linux·c++·vscode
运维&陈同学1 小时前
【zookeeper01】消息队列与微服务之zookeeper工作原理
运维·分布式·微服务·zookeeper·云原生·架构·消息队列
是阿建吖!1 小时前
【Linux】进程状态
linux·运维
hzyyyyyyyu1 小时前
内网安全隧道搭建-ngrok-frp-nps-sapp
服务器·网络·安全
明明跟你说过2 小时前
Linux中的【tcpdump】:深入介绍与实战使用
linux·运维·测试工具·tcpdump