CodeGym /课程 /Docker SELF /挂载和卸载文件系统:mount, umount

挂载和卸载文件系统:mount, umount

Docker SELF
第 6 级 , 课程 3
可用

挂载和卸载文件系统:mount, umount

1. 什么是挂载?

欢迎来到又一个关于Linux操作的有趣讲座!今天我们来说说文件系统的挂载和卸载,这是一个让你可以操作USB驱动器、额外硬盘甚至网络存储的过程。我们将学习如何设置自动挂载,让你的数据在系统启动时就准备就绪。而最重要的是,我们会动手实践!

挂载是将设备的文件系统(硬盘、USB驱动器、ISO镜像)连接到Linux文件系统树的过程。不像Windows,你会看到像"D:\"或者"E:\"这样的设备,在Linux中,所有设备都会以某个文件夹的形式“嵌入”到文件结构中,这个文件夹被称为挂载点。

类比:火车和车站

想象一下火车(设备)和火车站(挂载点)。为了让人们能下车并使用车站的基础设施(文件),火车需要到达站台并对接。Linux中的挂载操作与设备连接到它的挂载点的方式就像这样。


2. mount 命令

我们从执行挂载的命令——mount 开始。这是你会经常使用的命令之一,特别是当你处理外部磁盘或网络存储时。

基本语法

mount [选项] <设备> <挂载点>
  • <设备> — 这是你的设备在系统中的连接位置,例如 /dev/sdb1。你可以通过命令 lsblk 找到它。
  • <挂载点> — 设备的数据将要传递的文件夹。例如,这可以是 /mnt/disk

USB驱动器的挂载示例:

sudo mount /dev/sdb1 /mnt/usb

执行命令后,设备 /dev/sdb1 的文件将可以在文件夹 /mnt/usb 中访问。

mount 命令的有用选项

  1. 指定文件系统类型:

    如果Linux无法识别设备的文件系统,请使用标志 -t。例如:

    sudo mount -t ext4 /dev/sdb1 /mnt/usb
    

    这在你使用罕见的文件系统时非常有用。

  2. 只读挂载:

    如果你想保护设备数据不被修改,请使用选项 -o ro

    sudo mount -o ro /dev/sdb1 /mnt/usb
    
  3. 指定字符编码挂载:

    对于FAT32或NTFS磁盘,有时需要指定字符编码:

    sudo mount -o iocharset=utf8 /dev/sdb1 /mnt/usb
    

3. 命令umount

现在,当你连接了设备后,就会有个问题:怎么断开连接?这很重要,因为Linux需要“关闭”与磁盘的所有连接并完成写入操作。

主要语法

umount <设备或挂载点>

以下是一个已经连接的USB存储设备的示例:

sudo umount /mnt/usb

或者你也可以指定设备本身:

sudo umount /dev/sdb1

如果umount不起作用怎么办?

有时候umount命令可能会报错:"Device is busy"(设备正被占用)。这意味着有人(从文件系统的角度来看)正在“占着道”。可能是你或者其他程序当前打开了该设备上的文件。

这种情况下,可以使用命令fuser,它会显示阻塞设备的进程:

fuser -v /mnt/usb

找到“罪魁祸首”后,可以终止进程:

kill <进程ID>

然后再重复执行umount命令。

重要!

还记得在Windows中,在拔出U盘之前需要点击“安全移除设备(Eject)”吗?这其实就是在执行卸载命令。


4. 通过 /etc/fstab 自动挂载

手动挂载很方便,但是如果每次系统启动都需要连接设备该怎么办?为此,我们可以使用文件 /etc/fstab

/etc/fstab 是什么?

这是一个配置文件,其中包含需要 Linux 自动连接的设备列表。利用 fstab,你可以设定参数,比如文件系统类型,挂载点和访问权限。

如何在 /etc/fstab 中添加设备?

  1. 通过命令 blkid 找到设备的 UUID:

    sudo blkid
    

    例如,设备 /dev/sdb1 的 UUID 可能是 1234-5678

  2. 打开 /etc/fstab 文件进行编辑:

    sudo nano /etc/fstab
    
  3. 添加一行新配置:

    UUID=1234-5678 /mnt/usb ext4 defaults 0 2
    
    • UUID — 设备的唯一标识符。
    • /mnt/usb — 挂载点。
    • ext4 — 设备的文件系统类型。
    • defaults — 默认挂载参数。
    • 02 — 系统启动时设备检查参数(可调整)。
  4. 检查配置,挂载设备:

    sudo mount -a
    

现在,每次系统重启时设备都会自动连接。

风险

⚠️ 如果 /etc/fstab 配置不正确,系统可能无法启动。一定要通过以下命令检查配置:

sudo mount -a

如果没有错误,一切运行正常。


5. 示例:挂载和卸载USB存储设备

假设你插入了一个USB存储设备,系统将其识别为/dev/sdb1

  1. 创建挂载点:

    sudo mkdir -p /mnt/usb
    
  2. 挂载设备:

    sudo mount /dev/sdb1 /mnt/usb
    
  3. 检查内容:

    ls /mnt/usb
    
  4. 完成操作后卸载设备:

    sudo umount /mnt/usb
    

现在,设备已安全卸载,可以拔出。


6. 实践任务

任务

  1. 连接USB存储设备或虚拟磁盘。
  2. 创建挂载点/mnt/test-disk
  3. 将设备挂载到这个文件夹并检查其内容。
  4. 通过/etc/fstab使用UUID设置挂载。
  5. 卸载设备并确保重启后设置仍然有效。

提示

  • 如果没有设备,可以使用上一讲中的格式化命令创建设备(mkfs.ext4)。
  • 在重启前检查fstab设置。

现在你知道如何在Linux中挂载和卸载设备,通过配置/etc/fstab自动化连接,并安全地诊断任何问题。挂载是舒适处理数据的关键步骤,这些知识无论是在家做项目还是在工作服务器上都非常实用。

评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION