Linux教程

Linux 系统操作之U盘挂载(mount)及卸载(umount)

本文主要是介绍Linux 系统操作之U盘挂载(mount)及卸载(umount),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

前言:

有这样一个工作场景;小白是一名初入职场的运维工程师,今天小白接到领导指令,需要到机房协助第三方终端产商测试隔离区传输链路。小白有点惶恐,他没有去过机房,也不知道要去做些什么;他请教了一下同事,同事告知不要怕,就是去打酱油的。而后小白去到了机房,见到了第三方的终端厂商并询问需要我做些什么?第三方终端厂家说:你帮我在服务器中拿两个文件下来。小白心想这简单,然后插上优盘准备copy文件;然而插上U盘后发现在系统中一直找不到U盘的目录!!!

一、为什么要U盘挂载后,才能使用
因为Linux将所有的硬件设备都当做文件来处理,因此当使用光驱等硬件设备时,必须将其挂载到系统中,只有这样Linux才能识别。

1./mnt目录存放手动挂载的硬件;

2. /media目录存放自动挂载的硬件(载点都是由系统自动建立和删除的)

3. /dev不是存放设备的驱动程序,而是作为访问外部设备文件的接口。比如,我们的U盘,插入linux系统后,用fdisk -l查看分区,显示文件为/dev/sda1。

使用命令 fdisk -l 查看优盘设备所在分区

 

通过上面的命令,可以看到U盘已经被系统识别到了;但是问题又来了,明明系统都识别到U盘了,那为什么不能直接访问,不是已经在 /dev/sdb1 目录下了嘛?

Linux 系统下可分为五种类型文件:

1.普通文件;以 - 符号开头为普通文件;一般由相关应用程序创建,如:cp工具、touch工具等。

[root@chaser ~]# ls -lh install.log

-rw-r–r– 1 root root 53K 03-16 08:54 install.log

2.目录文件;以 d 字母开头为目录;用命令mkdir、cp 等命令创建。

[root@chaser ~]# ls -lh

drwxr-xr-x 2 root root 4.0K 04-19 10:53 mydir

3.字符设备或块设备文件;用mknode来创建,一般不用手动创建设备文件,因为这些文件和内核相关联的。

以 c 字母开头的为设备文件。比如猫等串口设备。

[root@chaser~]# ls -la /dev/tty

crw-rw-rw- 1 root tty 5, 0 04-19 08:29 /dev/tty

以 b 字母开头的为块设备,如硬盘,光驱等设备。

[root@chaser ~]# ls -la /dev/hda1

brw-r—– 1 root disk 3, 1 2006-04-19 /dev/hda1

4.套接口文件;以 s 字母开头的,这个知道有这个东西就行

5 符号链接文件;以 | 字符开头,

[root@chaser ~]# ls -lh start.log

lrwxrwxrwx 1 root root 11 04-19 11:18 start.log -> install.log

根据上述的引用,Linux 系统分为五种类型文件;现在可以查看一下 /dev/sdb1 的文件属性。

 

可以看到Linux 系统识别到的是一个块类型文件,而块类型Linux 系统中是不能直接进行访问的;想要访问就要通过 mount 命令挂载到文件目录中进行访问。

二、如何挂载U盘(mount)
1.挂载点必须是一个目录。

2.挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用,umount以后会恢复正常。

3.光盘、软盘、其他操作系统使用的文件系统的格式与linux使用的文件系统格式是不一样的。光盘是ISO9660;软盘是fat16或ext2;windows NT是fat16、NTFS;windows98是fat16、fat32;windows2000和windowsXP是fat16、fat32、 NTFS。挂载前要了解linux是否支持所要挂载的文件系统格式。

mount 基本挂载用法

mount [-fnrsvw] [-t vfstype] [-o options] device dir

参数:

device 表示要挂载的设备,

dir 表示挂载点

-t 指定设备的文件系统类型。

常用的选项说明有:    

(1)minix Linux最早使用的文件系统。    

(2)ext2 Linux目前的常用文件系统。   

(3)msdos MS-DOS 的 FAT。    

(4)vfat Win85/98 的 VFAT。    

(5)nfs 网络文件系统。    

(6)iso9660 CD-ROM光盘的标准文件系统。    

(7)ntfs Windows NT的文件系统。    

(8)hpfs OS/2文件系统。Windows NT 3.51之前版本的文件系统。    

(9)auto 自动检测文件系统。

例子1:挂载FAT32的U盘

mkdir /mnt/usbFAT32 --/mnt 目录下创建手动进行挂载的目录
fdisk -i --查看挂载的设备信息(需要root用户进行查看)
Device Boot Start End Blocks Id System
/dev/sdb1 * 72 3767 29681664 c W95 FAT32 (LBA)
--一般情况下系统会自动检测对应的文件系统类型,所以可以不使用 -t vfat 指定文件系统类型
mount -t vfat /dev/sdb1 /mnt/usbFAT32
df -h --查看设备挂载情况,如下即成功挂载。
/dev/sdb1 29G 16G 13G 55% /mnt/usbFAT32
例子2:挂载NTFS的移动硬盘

mkdir /mnt/usbNTFS --/mnt 目录下创建手动进行挂载的目录
fdisk -i --查看挂载的设备信息(需要root用户进行查看)
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 121601 976760001 7 HPFS/NTFS
mount /dev/sdb1 /mnt/usbNTFS --不指定文件系统类型的情况下
mount: you must specify the filesystem type --提示:你必须指定文件系统类型
mount -t ntfs /dev/sdb1 /mnt/usbNTFS --没有提示则ok
mount: unknown filesystem type 'ntfs' --提示:‘ntfs’文件系统类型未知,需要自行安装ntfs-3g(工具运行在C++语言下,如不能编译则还需要安装 gcc-c++ 工具)
df -h --查看设备挂载情况,如下即成功挂载。
/dev/sdb1 123G 1G 122G 98% /mnt/usbNTFS
三、卸载
卸载相对简单,使用 umount 命令 卸载即可。

例如:
已经挂载的 /dev/sdb1 29G 16G 13G 55% /mnt/usbFAT32
umount /dev/sdb1 或者 umount /mnt/usbFAT32 都可以进行卸载
四、自动挂载
配置/etc/fstab文件,可以实现每次开机时,linux自动将需要挂载的linux分区挂载上。

# /etc/fstab
# Created by anaconda on Fri Oct 22 22:25:49 2021
#
# 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/sdb1 /mnt/usbFAT32 vfat defaults,codepage=936,iocharset=cp936 0 0
#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/dev/mapper/vg_chaser-lv_root / ext4 defaults 1 1
UUID=81c96f40-5068-4ec7-9ecd-369ce041dd7e /boot ext4 defaults 1 2
/dev/mapper/vg_chaser-lv_home /home ext4 defaults 1 2
/dev/mapper/vg_chaser-lv_swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
参数defaults实际上包含了一组默认参数:

rw 以可读写模式挂载

suid 开启用户ID和群组ID设置位 dev 可解读文件系统上的字符或区块设备 exec 可执行二进制文件

auto 自动挂载

nouser 使一般用户无法挂载

async 以非同步方式执行文件系统的输入输出操作 ,

codepage=936和iocharset=cp936参数以支持中文文件名。

光驱和软驱是不自动挂载的,参数设置为noauto。

/dev/cdrom1 /mnt/cdrom1 udf, iso9660 noauto, owner, kudzu, ro 0 0
挂载ISO格式的文件话 mount -loop -o iocharset=cp936 xxxxx.iso /mnt/iso

硬盘的分区简介:

/dev/ 这个字串是所有设备文件所在的目录名。因为分区在硬盘上,而硬盘是设备,所以这些文件代表了在/dev/上所有可能的分区。

xx 分区名的前两个字母标明分区所在设备的类型。通常是 hd (IDE 磁盘)或 sd(SCSI 磁盘)。 y 这个字母标明分区所在的设备。

例如,/dev/hda(第一个 IDE 磁盘)或 /dev/sdb(第二个 SCSI 磁盘) N 最后的数字代表分区。前四个分区(主分区或扩展分区)是用数字从 1 排列到 4。逻辑分区从 5 开始。例如,/dev/hda3 是在第一个 IDE 硬盘上的第三个主分区或扩展分区;/dev/sdb6 是在第二个 SCSI 硬盘上的第二个逻辑分区。

→ →参考及归纳记录笔记
————————————————
版权声明:本文为CSDN博主「守望Chaser」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_40648849/article/details/124037307

这篇关于Linux 系统操作之U盘挂载(mount)及卸载(umount)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!