如何从linux终端装载和卸载存储设备

Linux和Unix操作系统(如macOS)中的文件系统可以使用终端安装、卸载和重新安装。这是一个强大和多功能的工具这里的一切你需要知道。...

Linux和Unix操作系统(如macOS)中的文件系统可以使用终端安装、卸载和重新安装。这是一个强大和多功能的工具这里的一切你需要知道。

linux文件系统

Linux、macOS和其他类似Unix的操作系统中的文件系统不像Windows那样为存储设备使用单独的卷标识符。Windows为每个卷分配一个驱动器号,如C:或D:,每个卷的文件系统是位于该驱动器号下面的目录树。

在Linux中,文件系统是一个多功能目录树。一个挂载的存储设备将其文件系统嫁接到树上,这样它看起来就像是一个内聚文件系统的一个组成部分。新安装的文件系统可以通过安装它的目录进行访问。该目录称为该文件系统的装入点。

许多文件系统在启动时自动挂载,或者在运行时作为连接到计算机的存储卷动态挂载。谨慎的系统管理员可以关闭运行时自动装载功能,以便控制与系统的连接。

这意味着运行时连接的存储设备可能不会自动装载,需要手动装载。手动装载文件系统可以让您决定该文件系统,例如装载点在哪里,以及文件系统是只读还是读写。

无论是出于必要还是出于选择,mount、umount和remount命令都使您能够控制Linux系统的这一重要方面。

用mount查询文件系统

Mount有很多选项,但是要列出计算机上所有挂载的文件系统,根本不需要任何选项。只需键入mount并按回车键:

如何从linux终端装载和卸载存储设备

mount将在终端窗口中列出所有连接的文件系统。

如何从linux终端装载和卸载存储设备

很难从大量的数据中找到你想要的东西。

您可以通过要求mount只列出您感兴趣的文件系统来优化输出。t(type)选项告诉mount要报告的文件系统类型。

mount -t tmpfs mount -t ext4

如何从linux终端装载和卸载存储设备

例如,我们要求mount只列出tmpfs文件系统。我们得到了更易于管理的输出。

tmpfs文件系统看起来好像是一个常规的、挂载的文件系统,但实际上它存储在易失性内存中tmp代表临时的,而不是持久的存储设备上。

您需要用tmpfs参数替换您感兴趣的文件类型。

我们还发出了列出ext4文件系统的命令。在这台测试计算机上,有一个ext4文件系统,它是在sda设备上安装的第一个存储设备,通常是主硬盘驱动器和/上安装的,后者是文件系统树的根。

其他指标意味着:

  • rw:文件系统是可读写的。
  • relatime:内核使用优化的方案来记录文件访问和修改元数据。
  • errors=remount-o:如果检测到足够严重的错误,文件系统将以只读模式重新装载以允许诊断。

相关:您应该使用哪个Linux文件系统?

用df查询你的文件系统

df命令还可以用来显示安装了哪些文件系统以及它们的安装点在哪里。

不带参数的df会给您带来与mount相同的信息过载问题。例如,在ubuntulinux中,有一个squashfs伪文件系统,用于使用snap命令安装的每个应用程序。谁想看看这些?

要强制df忽略它们或任何其他文件系统类型,请使用-x(排除)选项:

df -x squashfs

如何从linux终端装载和卸载存储设备

您可以很容易地看到文件系统的名称、它们的容量、已用空间和可用空间以及它们的装载点。

相关:如何从Linux终端查看可用磁盘空间和磁盘使用情况

重新安装fstab中的所有文件系统

在引导时挂载的所有文件系统都在名为fstab的文件中有条目,fstab是位于/etc中的文件系统表。

您可以使用mount强制“刷新”并重新装载fstab中列出的所有文件系统。在正常工作条件下,这是不需要的。如果您有多个文件系统的问题,那么它就有自己的问题了。

您需要使用sudo,因此系统会提示您输入密码。

sudo mount -a

如何从linux终端装载和卸载存储设备

诚然,在一台操作正确的电脑上,这是有点令人不安。

但是,在有文件系统问题的计算机上,重新装载可能会清除这些问题。如果没有发生这种情况,那么至少您将在屏幕和系统日志中获得诊断消息,这些消息将引导您查找问题的原因。

相关:什么是Linux fstab文件,它是如何工作的?

安装iso映像

很容易挂载ISO映像,以便您可以作为文件系统的一部分访问其内容。

这将适用于任何ISO映像。在这个例子中,我们碰巧使用了一个很小的内核linuxiso,因为它非常小巧,****也很快。(一个带有GUI的小型Linux发行版,18 MB!你可能有比这个大的.mp3文件。)

在与ISO映像相同的目录中,发出以下命令。替换要装入的ISO文件的名称。

sudo mount -t iso9660 -o loop TinyCore-current.iso /mnt

如何从linux终端装载和卸载存储设备

因为我们需要使用sudo,所以你需要输入密码。

-t(type)选项告诉mount我们正在挂载什么类型的文件系统。它是一个ISO文件,因此我们提供iso9660类型说明符。

-o(opti***)标志用于向mount传递额外的参数。我们的参数是loop。

我们使用loop强制mount使用一个loop设备文件连接到ISO映像。一个循环设备文件允许一个文件(比如ISO映像)被挂载和处理,就好像它是一个存储设备一样。

设备文件是用作接口的特殊文件,因此连接的设备看起来就像是普通的文件系统文件。这是Linux中所有东西的一部分,是一种文件设计理念。

有许多不同类型的设备文件。我们在前面看到过一个例子,我们注意到这个测试机器上唯一的ext4文件系统挂载在/上,名为sda。

更准确地说,ext4文件系统位于通过/dev/sda设备文件连接到文件系统的存储设备上,该存储设备上的文件系统安装在/。

当然,我们必须提供ISO映像的名称,并且我们需要让mount知道我们希望将文件系统装载到哪里。我们选择了/mnt。

安装ISO映像。终端窗口中会出现一个提示,提示ISO映像始终以只读模式安装。

探索iso图像

现在它已经挂载,我们可以像文件系统的任何其他部分一样导航ISO映像中的目录。让我们列出ISO映像中的文件。它安装在/mnt记住。

ls /mnt ls /mnt/cde/

如何从linux终端装载和卸载存储设备

卸载iso映像

要卸载装载的文件系统,请使用umount命令。请注意,“u”和“m”之间没有“n”-命令是umount而不是“unmount”

您必须告诉umount您正在卸载哪个文件系统。为此,请提供文件系统的装入点。

sudo umount /mnt

如何从linux终端装载和卸载存储设备

没有消息就是好消息。如果没有什么可报告的,那么一切都很顺利。

创建装载点

您可以创建和使用自己的装载点。我们将创建一个名为isomnt的,并将我们的ISO映像安装在上面。挂载点只是一个目录。所以我们可以使用mkdir来创建新的挂载点。

sudo mkdir /media/dave/isomnt

如何从linux终端装载和卸载存储设备

现在我们可以使用与以前相同的命令格式来挂载ISO映像。这次我们将不在/mnt上挂载它,而是在/media/dave/isomnt/上挂载它:

sudo mount -r -t iso9660 -o loop TinyCore-current.iso /media/dave/isomnt/

如何从linux终端装载和卸载存储设备

我们现在可以从新的挂载点访问挂载的文件系统。

ls /media/dave/isomnt/cde/optional

如何从linux终端装载和卸载存储设备

但是这些路径越来越长。那很快就会让人厌烦的。让我们做点什么。

绑定装入点

可以将装载点绑定到另一个目录。然后可以通过原始装载点或绑定到它的目录来访问装载的文件系统。

这是一个成功的例子。我们将在主目录中创建一个名为iso的目录。然后我们将ISO image/media/dave/isomnt的挂载点绑定到主目录中的新ISO目录。

我们可以通过原始挂载点/media/dave/isomnt和新的ISO目录访问ISO映像。-B(bind)选项需要装载点的名称和要将其绑定到的目录的名称。

mkdir iso sudo mount -B /media/dave/isomnt/ iso ls iso ls /media/dave/isomnt cd iso ls cd cde

对绑定使用umount

已将装入点绑定到另一个目录的文件系统需要从其装入点和绑定点卸载。

即使我们从文件系统的原始装载点卸载文件系统,您仍然可以从其绑定目录访问文件系统。文件系统也必须从该目录卸载。

sudo umount /media/dave/isomnt ls iso sudo umount iso ls iso

安装软盘

软盘驱动器(里面有软盘)是一种存储设备。这意味着sd(用于存储设备)设备文件将用于连接到物理设备。我们必须确定哪个是下一个免费的sd设备文件。我们可以通过管道将df的输出通过grep并查找其中包含“sd”的条目来实现这一点。

df | grep /dev/sd

如何从linux终端装载和卸载存储设备

在这台计算机上,只有一个sd设备文件正在使用。这是/dev/sda。下一个发布的sd设备文件将是/dev/sdb。这意味着当我们将软盘驱动器连接到计算机时,Linux将使用/dev/sdb连接到软盘驱动器。

我们将告诉mount将文件系统挂载到软盘驱动器的软盘上,软盘驱动器连接到/dev/sdb到/mnt挂载点。

将软盘**软盘驱动器,并将软盘驱动器连接到计算机上的USB端口。发出以下命令:

sudo mount /dev/sdb /mnt

如何从linux终端装载和卸载存储设备

文件系统标签

我们可以使用mount的-l(label)选项来找出文件系统中附加了什么标签(如果有的话)。标签只不过是任意名称。它们没有功能用途。

我们使用-t(type)选项要求mount只报告vfat文件系统。

mount -l -t vfat

如何从linux终端装载和卸载存储设备

您将在清单末尾的方括号中找到标签。这个软驱的标签是NORTUN。

我们可以通过/mnt挂载点访问软盘驱动器。

cd /mnt ls ls -l AMATCH.C

如何从linux终端装载和卸载存储设备

软盘包含C语言源代码文件。其中一份文件的日期戳显示,上次修改日期是1992年10月。它可能比我们很多读者都老。(不用说,诺顿作为一个标签的意义在时间的迷雾中消失了。)

如果我们通过grep命令重复df管道以列出sd设备文件,我们将看到现在有两个。

df | grep /dev/sd

如何从linux终端装载和卸载存储设备

我们的软盘驱动器在/dev/sdb上的显示与我们预期的一样。驱动器中软盘上的文件系统安装在/mnt。

要卸载软盘,我们使用umount并将设备文件作为参数传递给它。

sudo umount /dev/sdb

如何从linux终端装载和卸载存储设备

umount lazy选项

如果您(或其他用户)在尝试卸载文件系统时正在使用它,会发生什么情况?卸载将失败。

sudo umount /dev/sdb

如何从linux终端装载和卸载存储设备

它失败,因为用户的当前工作目录在他试图卸载的文件系统中。Linux足够聪明,不会让你把你坐的树枝锯断。

要克服这个问题,请使用-l(lazy)选项。这会导致umount等待文件系统能够安全卸载。

sudo umount -l /dev/sdb ls cd ~ ls /mnt

如何从linux终端装载和卸载存储设备

即使发出了umount命令,文件系统仍然被挂载,用户可以正常地列出文件。

一旦用户将目录更改为主目录,软盘文件系统就被释放并卸载。尝试列出/mnt中的文件不会产生任何结果。

安装samba共享

Samba是一组软件服务,允许在Linux和Unix类操作系统以及Windows操作系统之间交换访问网络共享。

设置Samba超出了本文的范围。但是,如果您有权访问提供给您的Samba共享,那么这就是在Linux中装载它的方式。

与测试机连接到同一网络的Raspberry Pi上有一个Samba共享。这是一个名为Backup的目录,它将Samba名称命名为“share”。共享目录位于安装在Pi上的U盘上。

用户名是pi,树莓pi的网络名是marineville.本地.

ssh [email protected] ls /media/pi/USB64/Backup exit

如何从linux终端装载和卸载存储设备

用户发出SSH命令并被提示输入Raspberry Pi密码。

它们提供密码并经过身份验证。终端窗口提示变为马里内维尔pi因为它和树莓皮相连。

它们在/media/pi/USB64/Backup列出共享目录的内容。内容有两个目录,一个叫dave,一个叫pat。所以现在我们知道在安装Samba共享时会发生什么。

它们键入exit以断开与Raspberry Pi的连接,提示变回戴夫@howtogeek。

要使用Samba,必须安装cifs-utils包。

如果您使用的是Ubuntu或其他基于Debian的发行版,请使用apt get将此软件包安装到您的系统上。在其他Linux发行版上,请改用Linux发行版的包管理工具。

sudo apt-get install cifs-utils

如何从linux终端装载和卸载存储设备

安装完成后,使用如下命令装载共享,更改IP地址、共享名和装载点(必须已经存在)以适应您的环境。

sudo mount -t cifs -o credentials=/etc/samba/creds,uid=1000,gid=1000 //192.168.4.13/share /media/dave/NAS

如何从linux终端装载和卸载存储设备

我们来分解一下命令的各个部分。

  • -cifs:文件系统类型为cifs。
  • -o credentials=/etc/samba/creds,uid=1000,gid=1000:opti***参数是一个名为creds的文件的路径,该文件是安全的,包含Raspberry Pi用户的用户名和密码;用户ID(uid)和组ID(gid),用于设置文件系统根目录的所有者和组。
  • //192.168.4.13/share:带有Samba共享的设备的网络位置,以及共享目录的Samba名称。共享的根目录是一个名为Backup的目录,但是它的Samba共享名被设置为share。
  • /media/dave/NAS:装载点的名称。必须提前创建挂载点。

通过访问我们位于/media/dave/NAS的挂载点,我们可以通过网络访问Raspberry Pi上的共享目录。我们可以看到树莓皮上的两个文件夹叫戴夫和帕特。

cd /media/dave/NAS

如何从linux终端装载和卸载存储设备

创建和装载文件系统

您可以使用dd命令创建一个映像文件,然后使用mkfs在其中创建一个文件系统。然后可以挂载该文件系统。这是练习和实验mount的好方法。

我们使用if(input file)选项告诉dd使用来自/dev/zero的零值流作为输入文件。

of(输出文件)是一个名为geek\u fs的新文件。

我们使用bs(block size)选项请求1 MB的块大小。

我们使用count选项告诉dd在输出文件中包含20个块。

dd if=/dev/zero of./geek_fs bs=1M count=20

如何从linux终端装载和卸载存储设备

为我们创建图像文件。它只包含零值。

我们可以使用mkfs命令在geek\u fs文件中创建一个工作文件系统。t(type)选项允许我们选择文件系统类型。我们正在创建一个ext4系统。

mkfs -t ext4 ./geek_fs

如何从linux终端装载和卸载存储设备

这是所有需要有一个工作的文件系统。

让我们把它挂载到/media/dave/geek上,然后使用chown设置所有者和组所有者,以允许访问它。

sudo mount ./geek_fs /media/dave/geek sudo chown dave:users /media/dave/geek

如何从linux终端装载和卸载存储设备

它有用吗?让我们换成新的文件系统,复制一个文件来查看。

cd /media/dave/geek cp /etc/fstab . ls -l

如何从linux终端装载和卸载存储设备

我们能够将目录更改为新的文件系统,并且成功地复制了/etc/fstab文件。起作用了!

如果我们使用mount列出挂载的文件系统,但使用-t(type)选项将其输出限制为ext4文件系统,那么我们将看到现在有两个挂载的ext4文件系统。

mount -t ext4

如何从linux终端装载和卸载存储设备

重新安装文件系统

重新装载文件系统使用-o重新装载选项。通常是将文件系统从只读(测试)状态更改为读写(生产)状态。

我们再装一次软驱。这次我们将使用-r(只读)标志。然后我们将通过grep进行管道装载,并查看软盘文件系统的详细信息。

sudo mount -r /dev/sdb /mnt mount | grep /mnt

如何从linux终端装载和卸载存储设备

如您所见,突出显示的ro表示文件系统是以只读方式装载的。

使用带有rw(读写)标志的-o remount选项,我们可以在一个命令中卸载和重新装载具有新设置的文件系统。

sudo mount -o remount,rw /mnt

通过grep重复mount的管道显示ro已经被rw(突出显示)所取代。文件系统现在处于读写模式。

mount | grep /mnt

(不是)移动文件系统

您以前可以用一个命令卸载一个文件系统并将其重新装载到另一个装载点上。

mount中的-M(move)选项专门允许您这样做。但它不再适用于转移到systemd的Linux发行版。这是大多数大牌。

如果我们试图将文件系统从/mnt移到./geek,它将失败并给出如下所示的错误消息。试图列出文件系统中的文件。/geek不返回任何结果。

sudo mount -M /mnt ./geek ls ./geek

如何从linux终端装载和卸载存储设备

解决方法是使用-B(bind)选项,我们之前使用该选项将原始装载点绑定到新的装载点。

sudo mount -B /mnt ./geek ls ./geek

除了不释放原来的挂载点,这将有同样的实际结果。

最终观察结果

使用--makeprivate选项可以强制在Linux的systemd版本上进行移动。这里不介绍这种技术有两个原因。

  1. 它可能有不可预知的行为。
  2. 它不是持久性的,需要在每次重新启动时重复。

Devuan Linux使用SysV init not systemd。一台计算机装载了最新版本的Devuan并进行了测试。-M(move)选项在该系统上按预期工作。

除了-M(move)选项的systemd问题之外,您应该发现mount和umount的使用非常简单。当您面对损坏的系统时,这些命令非常有用,您必须开始手动将文件系统拼接起来。

  • 发表于 2021-04-03 13:37
  • 阅读 ( 200 )
  • 分类:互联网

你可能感兴趣的文章

如何在ubuntu中加密文件和文件夹

在任何平台上,加密都是每个人都应该认真对待的事情。你可能认为你在Linux上比在Windows甚至macOS上更安全。但是Linux真的像你想象的那样安全吗? ...

  • 发布于 2021-03-11 16:31
  • 阅读 ( 854 )

在linux中运行ms dos游戏和应用程序的3种方法

... 你最喜欢的DOS游戏是什么?如何在Linux上运行DOS?你认为我们会摆脱DOS吗?请在下面的评论中告诉我们! ...

  • 发布于 2021-03-11 18:00
  • 阅读 ( 251 )

使用linux命令行安装硬盘和分区

... Udisks是许多Linux发行版中使用的重要软件。它负责管理存储设备,如USB闪存和硬盘驱动器。它附带了一个名为udisksctl的命令行工具。在此工具下,所有分区命令都遵循以下模式: ...

  • 发布于 2021-03-16 13:53
  • 阅读 ( 194 )

如何在ubuntu上访问google驱动器帐户

...gle驱动文件并不难,你只需要知道怎么做就行了。下面是如何使用Gnome在线帐户来实现这一点。 ...

  • 发布于 2021-03-25 21:49
  • 阅读 ( 270 )

使用这些linux命令高效地管理远程ssh连接

... 但不一定要这样。是时候学习如何只使用别名通过SSH高效登录、传输单个文件或目录、执行远程SSH命令以及轻松地将远程服务器装载到本地目录了。 ...

  • 发布于 2021-03-28 06:44
  • 阅读 ( 227 )

如何在ubuntu中安装deb文件?

...供应商的网站才能下载并安装扩展名为.deb的文件。但是如何安装deb文件呢? ...

  • 发布于 2021-03-28 15:48
  • 阅读 ( 506 )

linux下如何用gocryptfs加密文件

...载和卸载加密的文件系统,并进一步简化过程。 相关:如何在Linux上创建别名和Shell函数

  • 发布于 2021-04-01 18:42
  • 阅读 ( 289 )

如何在linux上使用snap包

...盒中。 如果它们不是以通常的方式安装的,那么它们是如何处理的呢?嗯,单个包文件被下载、解压缩,并作为一个SquashFSvirtual文件系统装载。然后将它作为一个虚拟环境呈现给您。所有这些都发生在幕后。你所知道的只是你...

  • 发布于 2021-04-02 12:19
  • 阅读 ( 313 )

如何在linux上编写fstab文件

...并将ROTA(旋转)列添加到显示中,l**lk将使用1表示旋转存储设备(机械驱动),使用0表示非旋转存储设备(固态驱动)。 l**lk -o +ROTA | grep sd 我们在显示器的右边有一个额外的列,它是ROTA(旋转)列。如您所见,“SSD”对设备...

  • 发布于 2021-04-03 00:45
  • 阅读 ( 156 )

如何在linux上使用mkfs命令

...建文件系统,然后才能使用连接到Linux计算机的任何数据存储设备。学习如何使用mkfs和其他实用程序来为各种文件系统实现这一点。我们教你怎么做。 mkfs**文件系统 mkfs命令生成文件系统。在其他操作系统上,创建文件系统称...

  • 发布于 2021-04-03 02:03
  • 阅读 ( 202 )
ijvr7821
ijvr7821

0 篇文章

相关推荐