如何在 Linux 中挂载和卸载文件系统?
介绍
在Linux中,一切(图片、二进制文件、文本文件、目录等)都被视为文件。了解如何以更好的方式组织和访问文件非常重要。在这种情况下,mount 和 umount 命令非常方便。
在这篇文章中,我们将学习这两个命令。简而言之,使用 mount 命令我们可以将文件系统挂载到目录中,使用 umount 命令我们可以从该目录中卸载相同的文件系统。这些也可以用于硬盘和 USB 驱动器。我们记得所有挂载和卸载命令仅适用于“sudo”或“root”用户。
列出所有存储设备
在了解 mount 和 umount 命令之前,我们需要列出 Linnux 系统中的所有存储设备。
命令1
sudo fdisk -l
输出
[sudo] password for rian:
Disk /dev/sda: 298.1 GiB, 320072933376 bytes, 625142448 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x0002d5a1
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 620969983 620967936 296.1G 83 Linux
/dev/sda2 620972030 625141759 4169730 2G 5 Extended
/dev/sda5 620972032 625141759 4169728 2G 82 Linux swap / Solaris
Partition 2 does not start on physical sector boundary.
命令2
$ lsblk
输出
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 298.1G 0 disk
├─sda2 8:2 0 1K 0 part
├─sda5 8:5 0 2G 0 part [SWAP]
└─sda1 8:1 0 296.1G 0 part /
“mount”命令了解当前挂载的所有文件系统
如果我们只输入“mount”命令,我们就可以获得所有信息,例如当前安装的文件系统是什么。
命令
$ mount
输出
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,nosuid,relatime,size=985120k,nr_inodes=246280,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=202976k,mode=755)
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
------Many lines-----
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=22,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=13500)
mqueue on /dev/mqueue type mqueue (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)
………………………………………
我们还可以使用以下命令查看上述信息。
$ cat /proc/mounts
现在,让我们仅了解“mount”命令的所有这些输出中的以下行
/dev/sda1 on / type ext4
/dev/sda1 => 这是文件系统名称。
on/=> 这称为挂载点。 “/”表示挂载到根目录。
type ext4 => 这里文件系统的类型是ext4。
“mount -t ”命令了解特定文件系统信息
如果我们使用 –t 选项,那么我们可以获得特定文件系统的信息(例如:ext4)
命令
mount -t ext4
输出
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
“mount”命令挂载文件系统
这非常简单。我们可以使用下面两个命令来挂载任何文件系统。
使用“mkdir”命令创建挂载点目录。
挂载所需的文件系统。
mount -t Type Device <Directory name created in step1>
这里“Type”可以是ext4,“Device”可以是/dev/sda1。
“umount”命令卸载文件系统
安装文件系统后,我们可以使用“umount”命令卸载相同的文件系统。
命令
$ umount /dev/sda1
或者
$ umount <mount point directory>
执行此命令后,我们将不再看到上次安装的安装点目录中的文件。
我们还可以使用相同的“umount”命令同时卸载多个文件系统。
命令
$ umount /dev/sda1 /dev/sda2
“umount -l ”命令卸载文件系统
“umount –l ”命令用于当用户不确定目标文件系统上是否有任何读或写操作时卸载文件系统。该命令等待任何正在进行的操作完成,然后进行卸载。这也称为延迟卸载。
根据手册页
-l, --lazy detach the filesystem now, clean up things later
命令
$ umount –l /dev/sda1
“umount -f ”命令强制卸载文件系统
“umount –f ”用于强制卸载文件系统,即使该文件系统中正在进行读取或写入操作。
命令
$ umount -f /dev/sda1
当无法访问网络共享时使用此功能。
结论
从这篇文章中,我们了解了“mount”和“umount”命令的很多参数,并了解了这两个命令的重要性。现在,根据具体情况,我们可以使用这些命令,并在 Linux 中更快地完成工作。