前言:
有这样一个工作场景;小白是一名初入职场的运维工程师,今天小白接到领导指令,需要到机房协助第三方终端产商测试隔离区传输链路。小白有点惶恐,他没有去过机房,也不知道要去做些什么;他请教了一下同事,同事告知不要怕,就是去打酱油的。而后小白去到了机房,见到了第三方的终端厂商并询问需要我做些什么?第三方终端厂家说:你帮我在服务器中拿两个文件下来。小白心想这简单,然后插上优盘准备copy文件;然而插上U盘后发现在系统中一直找不到U盘的目录!!!
一、为什么要U盘挂载后,才能使用
因为Linux将所有的硬件设备都当做文件来处理,因此当使用光驱等硬件设备时,必须将其挂载到系统中,只有这样Linux才能识别。
1./mnt目录存放手动挂载的硬件;
/media目录存放自动挂载的硬件(载点都是由系统自动建立和删除的)
/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 硬盘上的第二个逻辑分区。
→ →参考及归纳记录笔记
版权归原作者 守望Chaser 所有, 如有侵权,请联系我们删除。