如何从Linux终端挂载和卸载存储设备
可以使用终端安装,卸载和重新安装Linux和类似macOS的类Unix操作系统中的文件系统。这是一个功能强大且用途广泛的工具,这是您需要了解的所有内容。
Linux文件系统
Linux,macOS和其他类似Unix的操作系统中的文件系统不会像Windows那样使用单独的卷标识符来存储设备。 Windows为每个卷分配一个驱动器号,例如C:或D :,每个卷的文件系统是位于该驱动器号下方的目录树。
在Linux中,文件系统是多合一目录树。挂载的存储设备将其文件系统移植到该树上,因此它似乎是一个内聚文件系统的组成部分。新安装的文件系统可通过其安装目录访问。该目录称为该文件系统的安装点。
许多文件系统会在启动时自动挂载,或者在运行时作为连接到计算机的存储卷即时挂载。谨慎的系统管理员可以关闭运行时自动挂载功能,以便他们可以控制与系统的连接。
这意味着在运行时连接的存储设备可能不会自动挂载,需要手动挂载。手动挂载文件系统使您可以决定该文件系统,例如挂载点将位于何处以及文件系统是只读还是读写。
无论是出于必要还是出于选择, 山
, 上山
和 重新安装
命令使您能够控制Linux系统的这一重要方面。
使用mount询问您的文件系统
挂载有很多选项,但是要列出计算机上所有已挂载的文件系统,根本不需要任何选项。只需输入 山
然后按Enter:
山
将在终端窗口中列出所有连接的文件系统。
很难通过数据转储来查找您要寻找的内容。
您可以通过询问来优化输出 山
仅列出您感兴趣的文件系统。这 -t
(类型)选项告诉山
要报告哪种类型的文件系统。
挂载-t tmpfs
挂载-t ext4
例如,我们问 山
仅列出tmpfs
文件系统。我们得到了更易于管理的输出。
一种tmpfs
文件系统看起来好像是一个常规的已挂载文件系统,但实际上存储在易失性内存中,即 tmp 代表临时的,而不是永久存储设备上的。
您将要替换 tmpfs
您感兴趣的文件类型的参数。
我们还发布了一个命令来列出 ext4
文件系统。在此测试计算机上,只有一个 ext4
文件系统,它在设备上 sda
-安装的第一个存储设备,通常是主硬盘驱动器,并安装在 /
,这是文件系统树的根。
其他指标表示:
- w:文件系统是可读写的。
- 相对时间:内核正在使用一种优化的方案来记录文件访问和修改元数据。
- 错误=重新安装-o:如果检测到足够严重的错误,将以只读模式重新安装文件系统以进行诊断。
有关的:您应该使用哪个Linux文件系统?
用df询问您的文件系统
这 df
命令还可以用于显示安装了哪些文件系统以及它们的安装点在哪里。
df
不带参数使用会给您带来相同的信息过载问题 山
。例如,在Ubuntu Linux中, 西葫芦
为使用该工具安装的每个应用程序创建的伪文件系统 折断
命令。谁想看到所有这些?
强迫 df
忽略它们-或任何其他文件系统类型-使用 -X
(排除)选项:
df -x壁球
您可以轻松地查看文件系统的名称,它们的容量,已用和可用空间以及它们的安装点。
有关的:如何从Linux终端查看可用磁盘空间和磁盘使用情况
在fstab中重新挂载所有文件系统
引导时挂载的所有文件系统在名为的文件中都有条目 fstab
,这是位于其中的文件系统表 /等等
.
您可以使用 山
强制“刷新”并重新挂载列出的所有文件系统 fstab
。在正常操作条件下,这不是必需的。如果您对多个文件系统有疑问,它确实会发挥作用。
您需要使用 须藤
,因此系统会提示您输入密码。
须藤挂载-a
诚然,在正确运行的计算机上,它有点让人难以置信。
但是,在出现文件系统问题的计算机上,重新安装可能会解决问题。如果这没有发生,那么至少您会在屏幕上和系统日志中获得诊断消息,这些消息将指导您查找问题的原因。
有关的:什么是Linux fstab文件,它如何工作?
挂载ISO映像
挂载ISO映像很容易,因此您可以将其内容作为文件系统的一部分进行访问。
这将适用于任何ISO映像。在此示例中,我们碰巧正在使用Tiny Core Linux ISO,因为它体积小巧且下载速度快。 (一个带有GUI的小型Linux发行版,大小为18 MB!您可能有大于此大小的.mp3文件。)
在与ISO映像相同的目录中,发出此命令。替换要挂载的ISO文件的名称。
须藤安装-t iso9660 -o循环TinyCore-current.iso / mnt
因为我们需要使用 须藤
您需要输入密码。
这 -t
(类型)选项告诉 山
我们正在安装哪种类型的文件系统。这是一个ISO文件,因此我们提供了 iso9660
类型说明符。
这 -o
(options)标志用于将额外的参数传递给 山
。我们的参数是 环形
.
我们正在使用环形
强迫 山
使用循环设备文件连接到我们的ISO映像。循环设备文件允许挂载和处理文件(如ISO映像),就好像它是存储设备一样。
设备文件是用作接口的特殊文件,因此连接的设备看起来就像是普通的文件系统文件。这是Linux中所有内容的一部分,是文件设计理念。
有许多不同类型的设备文件。当我们注意到唯一的 ext4
该测试机上的文件系统已安装在 /
被称为 sda
.
更准确地说, ext4
文件系统位于通过以下方式连接到文件系统的存储设备上:/ dev / sda
设备文件和该存储设备上挂载的文件系统 /
.
当然,我们必须提供ISO映像的名称,我们需要让 山
知道我们要在哪里挂载文件系统。我们选了 / mnt
.
已安装ISO映像。终端窗口中会出现一个提示,即ISO映像始终以只读模式挂载。
探索ISO映像
现在已经安装了它,我们可以以与文件系统其他任何部分相同的方式浏览ISO映像中的目录。让我们在ISO映像中列出文件。它安装在 / mnt
记住。
ls / mnt
ls / mnt / cde /
卸载ISO映像
要卸载已挂载的文件系统,请使用 上山
命令。请注意,“ u”和“ m”之间没有“ n”,命令是 上山
而不是“卸载”。
你必须告诉 上山
您要卸载的文件系统。为此,请提供文件系统的挂载点。
须藤umount / mnt
没有消息就是好消息。如果没有什么要报告的,那么一切都进行得很好。
创建挂载点
您可以创建和使用自己的挂载点。我们将创建一个名为 等值
并在其上挂载我们的ISO映像。挂载点只是一个目录。这样我们就可以使用 麦克迪尔
创建我们的新挂载点。
须藤mkdir / media / dave / isomnt
现在,我们可以使用与以前相同的命令格式来挂载我们的ISO映像。这次我们不会将其挂载 / mnt
,我们将其安装在 / media / dave / isomnt /
:
须藤安装-r -t iso9660 -o循环TinyCore-current.iso / media / dave / isomnt /
现在,我们可以从新的挂载点访问挂载的文件系统。
ls / media / dave / isomnt / cde / optional
但是这些途径变得非常漫长。这很快就会变得很烦人。让我们为此做些事情。
绑定安装点
您可以将安装点绑定到另一个目录。然后,可以通过原始安装点或绑定到该文件系统的目录来访问已安装的文件系统。
这是一个有效的示例。我们将在主目录中创建一个目录,名为 iso
。然后,我们将绑定ISO映像的挂载点 / media / dave / isomnt
到新的 iso
目录在我们的主目录中。
我们将能够通过原始挂载点访问ISO映像 / media / dave / isomnt
并通过新 iso
目录。这 -B
(bind)选项需要安装点的名称和将其绑定到的目录的名称。
mkdir iso
须藤挂载-B / media / dave / isomnt / iso
ls iso
ls / media / dave / isomnt
光盘iso
ls
cd cde
对绑定使用umount
已将其挂载点绑定到另一个目录的文件系统需要从其挂载点进行卸载 和 绑定点。
即使我们从原始安装点卸载文件系统,您仍然可以从其绑定目录访问文件系统。还必须从该目录卸载文件系统。
须藤umount / media / dave / isomnt
ls iso
须藤umount iso
ls iso
挂载软盘
软盘驱动器(其中装有软盘)是一种存储设备。这意味着将使用sd(用于存储设备)设备文件来连接到物理设备。我们必须确定哪个是下一个免费的sd设备文件。我们可以通过管道输出 df
通过 grep
并查找其中带有“ sd”的条目。
df | grep / dev / sd
在这台计算机上,有一个正在使用的sd设备文件。这是 / dev / sda
。下一个发布的sd设备文件将是 / dev / sdb
。这意味着当我们将软盘驱动器连接到计算机时,Linux将使用 / dev / sdb
连接到软盘驱动器。
我们会告诉 山
将文件系统挂载到连接到的软盘驱动器中的软盘上 / dev / sdb
到 / mnt
挂载点。
将软盘插入软盘驱动器,然后将软盘驱动器连接到计算机上的USB端口。发出以下命令:
须藤挂载/ dev / sdb / mnt
文件系统标签
我们可以使用 -l
(标签)选项 山
找出附在文件系统上的标签(如果有的话)。标签只不过是任意名称。它们没有功能目的。
我们正在使用 -t
(类型)选项询问山
报告 胖子
仅文件系统。
挂载-l -t vfat
您会在列表末尾的方括号中找到该标签。该软盘驱动器的标签为NORTUN。
我们可以通过以下方式访问软盘驱动器 / mnt
挂载点。
cd / mnt
ls
ls -l AMATCH.C
该软盘包含C语言源代码文件。一个文件的日期戳显示该文件的最新修改时间为1992年10月。它可能比我们的很多读者还老。 (不用说NORTUN作为标签的含义在时间的迷雾中迷失了。)
如果我们重复我们的 df
通过管道输送 grep
命令以列出sd设备文件,我们将看到其中有两个。
df | grep / dev / sd
我们的软盘驱动器显示为已安装在 / dev / sdb
如我们所料。驱动器中软盘上的文件系统安装在 / mnt
.
要卸载软盘,我们使用 上山
并将设备文件作为参数传递给它。
须藤umount / dev / sdb
umount懒惰选项
如果您(或另一个用户)在尝试卸载文件系统时正在使用它,会发生什么?卸载将失败。
须藤umount / dev / sdb
失败是因为用户的当前工作目录在他要卸载的文件系统中。 Linux足够聪明,不会让您看不到所坐的分支。
为了克服这个问题,请使用 -l
(懒惰)选项。这引起 上山
等待文件系统能够安全卸载。
须藤umount -l / dev / sdb
ls
光盘〜
ls / mnt
即使 上山
发出命令后,文件系统仍处于挂载状态,用户可以正常列出文件。
用户将目录更改到其主目录后,便会释放并卸载软盘文件系统。尝试列出文件 / mnt
没有结果。
挂载Samba共享
Samba是一组软件服务,允许在Linux和类Unix操作系统以及Windows操作系统之间互换访问网络共享。
设置Samba超出了本文的范围。但是,如果您有权访问已提供给您的Samba共享,则可以通过这种方式将其安装在Linux中。
连接到与测试计算机相同的网络的Raspberry Pi具有Samba共享。这是一个名为Backup的目录,该目录的Samba名称为“ share”。让我们建立一个SSH连接,然后查看共享目录的内容。共享目录位于Pi上安装的USB记忆棒上。
用户名是 pi
Raspberry Pi的网络名称是 Marineville.local
.
ssh [email protected]
ls / media / pi / USB64 / Backup
出口
用户发出 SSH协议
命令,并提示他们输入Raspberry Pi密码。
他们提供密码并通过身份验证。终端窗口提示更改为 pi @ marineville
因为它已连接到Raspberry Pi。
他们在以下位置列出共享目录的内容 / media / pi / USB64 / Backup
。内容是两个目录,一个称为 戴夫
还有一个叫 拍
。因此,现在我们知道挂载Samba共享时的期望了。
他们打字 出口
断开与Raspberry Pi的连接,提示更改回 dave @ howtogeek
.
要使用Samba,您必须安装 cifs-utils
包裹。
用 合适的
如果您使用的是Ubuntu或其他基于Debian的发行版,则将该软件包安装到系统上。在其他Linux发行版上,请改用Linux发行版的程序包管理工具。
sudo apt-get install cifs-utils
安装完成后,使用如下命令安装共享,更改IP地址,共享名称和安装点(必须已经存在)以适合您的情况。
sudo mount -t cifs -o凭据= / etc / samba / creds,uid = 1000,gid = 1000 //192.168.4.13/share / media / dave / NAS
让我们分解一下该命令的各个部分。
- -t CIFs:文件系统类型为cifs。
- -o凭证= / etc / samba / creds,uid = 1000,gid = 1000:options参数是名为的文件的路径
信誉
它是受保护的,并且包含Raspberry Pi用户的用户名和密码;用户ID(UID)和组ID(GID),用于设置文件系统根目录的所有者和组。 - //192.168.4.13/分享:具有Samba共享的设备的网络位置,以及共享目录的Samba名称。共享的根目录是一个名为
后备
,但其Samba共享名设置为分享
. - / media / dave / NAS:安装点的名称。您必须提前创建安装点。
通过访问我们的挂载点 / media / dave / NAS
我们正在通过网络访问Raspberry Pi上的共享目录。我们可以看到Raspberry Pi上的两个文件夹 戴夫
和 拍
.
cd / media / dave / NAS
创建和挂载文件系统
您可以使用 dd
命令创建一个图像文件,然后使用 mkfs
在其中创建文件系统。然后可以挂载该文件系统。这是练习和实验的好方法 山
.
我们使用 如果
(输入文件)选项告诉 dd
使用来自零值的流 / dev /零
作为输入文件。
这 的
(输出文件)是一个名为 geek_fs
.
我们正在使用s
(块大小)选项,以请求1 MB的块大小。
我们使用 数数
选择告诉 dd
在输出文件中包含20个块。
dd if = / dev / zero of./geek_fs bs = 1M count = 20
这样就为我们创建了图像文件。它只包含零值。
我们可以在 geek_fs
文件使用 mkfs
命令。这 -t
(类型)选项允许我们选择文件系统 类型。我们正在创建一个 ext4
系统。
mkfs -t ext4 ./geek_fs
这就是拥有正常工作的文件系统所需要的。
让我们将其安装在 / media / dave / geek
然后使用 wn
设置所有者和组所有权以允许对其进行访问。
须藤安装./geek_fs / media / dave / geek
sudo chown dave:用户/ media / dave / geek
它行得通吗?让我们转到新文件系统并复制文件以进行查看。
cd / media / dave / geek
cp / etc / fstab。
ls -l
我们能够将目录更改为新文件系统,并成功复制了 / etc / fstab
文件。工作正常!
如果我们使用 山
列出已挂载的文件系统,但将其输出限制为 ext4
使用的文件系统 -t
(类型)选项,我们将看到现在已经安装了两个 ext4
文件系统。
挂载-t ext4
重新挂载文件系统
重新挂载文件系统使用 -o重新安装
选项。通常可以完成将文件系统从只读(测试)状态更改为读写(生产)状态的操作。
让我们再次安装软盘驱动器。这次,我们将使用 -r
(只读)标志。然后我们用管道 山
通过 grep
并查看软盘文件系统的详细信息。
须藤挂载-r / dev / sdb / mnt
坐骑grep / mnt
如您所见,突出显示 RO
表示文件系统是只读安装的。
使用-o重新安装
与选项 w
(读写)标志,我们可以使用新设置通过一个命令来卸载和重新挂载文件系统。
须藤挂载-o remount,rw / mnt
重复管道的 山
通过 grep
向我们展示了 RO
已被取代w
(突出显示)。文件系统现在处于读写模式。
坐骑grep / mnt
(不)移动文件系统
您曾经能够卸载文件系统,然后使用单个命令将其重新安装到另一个安装点上。
这 -M
中的(移动)选项山
存在专门允许您执行此操作。但是它不再适用于已经转移到Linux发行版中的版本。 系统的
。那就是大多数的大牌。
如果我们尝试将文件系统从 / mnt
至 。/极客
,它失败并给出如下所示的错误消息。尝试通过以下方式列出文件系统中的文件 。/极客
不返回任何结果。
须藤mount -M / mnt ./geek
ls ./极客
解决方法是使用 -B
(绑定)选项,我们先前使用过该选项将原始安装点绑定到新的安装点。
须藤mount -B / mnt ./geek
ls ./极客
除了不释放原始安装点之外,这将具有相同的实际结果。
最终观察
使用 --make-private
选择它 曾是 可能会迫使这一行动发生 系统的
版本的Linux。由于以下两个原因,此处未介绍该技术。
- 它可能具有不可预测的行为。
- 它不是永久性的,因此每次重新启动时都需要重复。
Devuan Linux的用途 SysV
初始化不是 系统的
。装有最新版本的Devuan的计算机已经过测试。这 -M
(移动)选项在该系统上按预期工作。
除了 系统的
与问题 -M
(移动)选项,您应该找到使用 山
和 上山
直截了当。当面对损坏的系统时,这些命令非常有用,您必须手动将文件系统拼凑在一起。