闪存驱动器自行卸载

闪存驱动器自行卸载

昨天,我将闪存驱动器正确安装到主目录中的文件夹中。但是,我必须重新启动计算机才能完成安装更新,当我重新登录时,我的闪存驱动器已被卸载。它回到了“文件”中的“设备”选项卡中,我必须像昨天一样重新安装它。这是我最初安装闪存驱动器的方式:

sudo umount /media/my_name/MY_NAME 
sudo mount -t vfat -o rw,auto,user,fmask=0022,dmask=0000 /dev/sdx1 /home/my_name/folder_name
sudo mount -o remount,exec /home/my_name/folder_name

这些命令以前在其他电脑上对我都很好用。这就是为什么我不明白为什么我必须重新安装我的闪存驱动器。

编辑:我刚刚再次重启了电脑,结果还是一样。现在我发现每次电脑重启时我的闪存驱动器都会被卸载。

谢谢。

答案1

如果没有“/etc/fstab”的内容,很难(永久)说出您的 mount 命令做了什么。如果您可以将其与另一个类似配置的系统进行比较,您应该能够发现差异。

答案2

该文件/etc/fstab通常包含有关将设备安装到安装点以供命令使用的信息,mount而无需传递文件系统、选项等信息。一个特殊用途是保存自动安装(通过mount -a)的信息,例如在启动时发出的信息。

文件的格式和内容在 中有详细说明man fstab。以下是针对您的特殊问题的简短描述,该问题仅适用于本地设备(对于 NFS、CIFS、循环设备等,情况略有不同)。

/etc/fstab是一个文本文件,可以使用任何文本编辑器进行编辑。以 开头的行#是注释,空行将被忽略,其他行包含六个条目,以空格或制表符分隔:

<device> <mountpoint> <fstype> <options> <dumpfreq> <fsckpass>

其中,对于外部设备,最后两个条目通常设置为 0。这些条目是:

  • 设备:要挂载的文件系统的块特殊文件(或指向它的链接)
  • mountpoint:设备挂载位置
  • fstype:文件系统的类型
  • 选项:给予mount命令的挂载选项。

在你的例子中,你可以写

/dev/sdx1 /home/my_name/folder_name vfat rw,auto,user,fmask=0022,dmask=0000,exec 0 0

但你不应该这样做。

首先,您无法确保始终拥有相同的设备名称(例如 /dev/sdb1),因为添加第二个闪存盘时,该名称可能会发生变化。因此,最好使用 UUID 或分区的标签(如果已标记)。要找出问题ls -l /dev/disk/by-uuidls -l /dev/disk/by-label查找指向相应分区的条目:例如:

ridgy@desk:~$ ls -l /dev/disk/by-uuid
lrwxrwxrwx 1 root root 10 Jan  1 12:16 0de814aa-0263-423a-a9f3-f2919db02700 -> ../../sdb2
lrwxrwxrwx 1 root root 10 Jan  1 12:16 9325-22B3 -> ../../sdb1
lrwxrwxrwx 1 root root 10 Jan  1 12:16 acf415b5-cdbf-4c18-9226-2a9be8d65d78 -> ../../sda2
lrwxrwxrwx 1 root root 10 Jan  1 12:16 cd14a697-5bec-4a6c-8c55-2afb3a410ee6 -> ../../sda3
lrwxrwxrwx 1 root root 10 Jan  1 12:16 E596-07F2 -> ../../sda1

例如,/dev/sdb1 的 UUID 为 9325-22B3 等,并且

ridgy@desk:~$ ls -l /dev/disk/by-label
lrwxrwxrwx 1 root root 10 Jan  1 14:02 data -> ../../sdc1

表示 /dev/sdc1 有一个标有 的文件系统data

因此您应该输入UUID=<uuid>LABEL=<label>来代替设备节点。

接下来,在启动期间以这种方式挂载时,所有挂载都由 root 完成。特别是对于 FAT 文件系统,这意味着拥有root所有目录和文件的所有者和组,这通常是不期望的。因此,您还应该将 UID 和 GID 作为选项传递给挂载:uid=<my_uid>,gid=<my_gid>

最后,由于这是一个外部 USB 驱动器,如果设备不存在(拔出),启动过程将停止很长时间,等待设备准备就绪。为避免这种情况,请添加选项nofail,这样mount当设备不可用时就不会失败。

为了结束,你可以很小心操作如下:

备份当前/etc/fstabsudo cp /etc/fstab /etc/fstab.bck如果您以任何方式损坏了您的/etc/fstab,您的系统可能会无法启动!然后您可以从 Live USB/DVD 启动并恢复原始 fstab。

使用您最喜欢的编辑器,使用 sudo 权限编辑文件/etc/fstab(例如sudo nano /etc/fstab)。确保您知道如何使用编辑器!

最后添加以下行

UUID=<my_uuid> /home/my_name/folder_name vfat rw,auto,user,fmask=0022,dmask=0000,uid=<my_uid>,gid=<my_gid>,exec,nofail 0 0

您必须根据您的值替换 uuid、uid 和 gid。如上所述,如果文件系统已标记,UUID=<my_uuid>您也可以使用。LABEL=<my_label>

现在,由于给出了选项auto,如果设备可用,文件系统将在启动时挂载。如果没有,您可以稍后连接并发出mount /home/my_name/folder_name,因为该选项user允许任何用户挂载,并且/etc/fstab与您的挂载点相对应的条目包含所有必要的信息。

相关内容