• 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

  • 相关阅读:
    如何理解面向对象和面向过程
    IIS端口被占用
    SQL UNION操作符
    SQL(MSSQLSERVER)服务启动错误代码3414
    WCF学习之路(一)
    AJAX技术学习总结
    AJAX之XMLHttpRequest对象
    软考之汇编语言
    IP地址的分配
    数组偏移量
  • 原文地址:https://www.cnblogs.com/dzcWeb/p/16224086.html
Copyright © 2020-2023  润新知