在 Linux 中,一切皆是文件,包括硬件设备、网络接口、以及其他外部存储设备。而要访问这些设备,首先需要把它们挂载到文件系统中。这就离不开一个关键命令:mount。
本篇文章,我们将深入讲解:
挂载(mount) 是把一个设备(如硬盘分区、光盘、U盘等)关联到 Linux 文件系统的某个目录下,让用户可以通过该目录访问设备上的数据。
关键点:
/
为根目录。挂载类型 | 说明 | 示例设备标识 |
---|---|---|
本地磁盘挂载 | 挂载本机硬盘的分区或卷 | /dev/sda1 |
网络挂载(NFS) | 挂载远程服务器上的目录 | 192.168.1.100:/share |
ISO 镜像挂载 | 挂载镜像文件用于访问 | file.iso |
临时挂载(tmpfs) | 挂载虚拟内存中的临时文件系统 | tmpfs |
绑定挂载(Bind) | 把一个目录挂载到另一个位置 | /mnt/source /mnt/target |
mount [-t 类型] [-o 选项] 设备 挂载点
/dev/sdb1
/mnt/usb
ext4
、xfs
、nfs
等ro
(只读)、rw
(读写)等# 查看所有分区
lsblk
# 创建挂载点
sudo mkdir /mnt/disk1
# 挂载分区
sudo mount /dev/sdb1 /mnt/disk1
验证挂载是否成功:
df -h
# 创建挂载点
sudo mkdir /mnt/iso
# 挂载 ISO 文件
sudo mount -o loop file.iso /mnt/iso
说明:
-o loop
让 mount 把镜像文件视为设备进行挂载。
把一个目录挂载到另一个位置:
# 创建源目录和目标目录
mkdir /mnt/source /mnt/target
# 绑定挂载
sudo mount --bind /mnt/source /mnt/target
测试绑定挂载效果:
touch /mnt/source/test.txt
ls /mnt/target
结果:目标目录下也能看到 test.txt
。
sudo mount -o ro /dev/sdb1 /mnt/disk1
测试:
touch /mnt/disk1/newfile
报错: 因为挂载方式是只读,无法创建新文件。
# 安装 NFS 客户端
sudo apt-get install nfs-common
# 挂载远程目录
sudo mount -t nfs 192.168.1.100:/shared /mnt/nfs
测试:
ls /mnt/nfs
df -h
2.mount: 列出所有已挂载设备
mount
3.查看 /proc/mounts:
cat /proc/mounts
挂载设备后,不能直接拔出,必须先卸载,否则会导致数据损坏。
卸载命令:
umount 挂载点或设备
示例:
sudo umount /mnt/disk1
如果设备正在被使用,可能会报错:
umount: /mnt/disk1: target is busy
解决方案:
lsof /mnt/disk1
2.杀死进程:
kill -9 PID
3.强制卸载:
sudo umount -l /mnt/disk1
-l
表示延迟卸载,会在资源空闲后自动卸载。
Linux 可以通过 /etc/fstab
配置自动挂载:
# 编辑fstab文件
sudo vim /etc/fstab
添加挂载项:
/dev/sdb1 /mnt/disk1 ext4 defaults 0 2
字段解释:
/dev/sdb1
/mnt/disk1
ext4
defaults
表示读写、支持挂载生效挂载:
sudo mount -a
也可以使用 systemd
来实现自动挂载:
sudo systemctl enable mnt-disk1.mount
lsblk
2.编辑 fstab:
sudo vim /etc/fstab
添加:
/dev/sdb1 /mnt/usb vfat defaults 0 0
3.挂载U盘:
sudo mount -a
验证:
每次插入U盘后,会自动挂载到 /mnt/usb
。
适合在内存中创建临时工作区:
sudo mount -t tmpfs -o size=500M tmpfs /mnt/tmp
检查:
df -h /mnt/tmp
临时挂载会在系统重启后失效。
本文深入解析了 Linux 的挂载机制,包括:
/etc/fstab
配置自动挂载设备。如果觉得有帮助,别忘了点赞、收藏、分享!