如何使用自定义选项安装可移动存储?

如何使用自定义选项安装可移动存储?

如何更改 KDE 设备管理器挂载的可移动设备的挂载选项?

答案1

运行 Kubuntu saucy,向 /etc/fstab 添加条目对我来说是可行的。根据 udisks2 文档,只要没有挂载选项违反系统安全策略,fstab 就会受到尊重。文档还提到在违反安全策略的情况下触发用户授权请求,但是,我不需要担心这个问题,所以我在这里不讨论它。

首先,收集有关所选文件系统所需的信息。使用设备管理器挂载它。打开 shell 终端窗口并:

$ mount
/dev/sda5 on / type ext4 (rw,errors=remount-ro)
/dev/sda1 on /windows type fuseblk (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)
/dev/sdb1 on /media/user/16G-USB type vfat (rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,uhelper=udisks2)

您将看到比我这里更多的设备。您正在寻找的设备可能安装在 /media 下。您可以通过在文件管理器中找到它来验证其安装点。

接下来,获取分区的 UUID 以在 /etc/fstab 中识别它是个好主意。设备文件(在我的情况下为 /dev/sdb1)不能保证会命名您的设备。例如,如果您使用多个可移动驱动器,则设备文件将按连接顺序给出。使用设备的标签也不明智,因为对于给定制造商的给定型号的任何给定大小的设备,标签可能都是相同的。

$ ls -l /dev/disks/by-uuid
lrwxrwxrwx 1 root root 10 Mar 27 03:02 345A-B2EE -> ../../sdb1
lrwxrwxrwx 1 root root 15 Mar 25 11:35 5E0C-165B -> ../../mmcblk0p1
lrwxrwxrwx 1 root root 10 Mar 25 11:36 60cdd746-3be0-4d48-a03f-45ba7381db4f -> ../../sda5
lrwxrwxrwx 1 root root 11 Mar 25 11:36 7913b72d-ab44-477e-9751-05f69baebfd6 -> ../../zram0
lrwxrwxrwx 1 root root 10 Mar 25 11:36 A6305C91305C69F7 -> ../../sda1
lrwxrwxrwx 1 root root 11 Mar 25 11:36 c5323b04-6d7b-42d9-89ff-d1eddd2c008e -> ../../zram1
lrwxrwxrwx 1 root root 10 Mar 25 11:36 d1980c70-8ee4-4f44-a4d3-fa1e12b2b123 -> ../../sda6

查找指向您从上面的“mount”命令中选择的设备名称的 UUID。在我的例子中,设备是 /dev/sdb1,因此 UUID 是 345A-B2EE。

现在以 root 身份编辑您的 /etc/fstab。 请小心操作。错误可能会导致您的系统无法启动!备份您当前的 /etc/fstab!

sudo cp /etc/fstab /etc/fstab.bak

例如,使用“pico”编辑器进行编辑:

sudo pico /etc/fstab

使用 UUID 作为文件系统标识符,fstab 条目具有以下格式:

UUID=<filesystem uuid>  <directory to mount on> <filesystem type> <mount options> 0 0

可以是“自动”,或者更恰当地说,是与您的文件系统相对应的“mount”命令输出中列出的类型。

是用于挂载文件系统的选项的逗号分隔列表。

除了字段分隔符外,请勿在任何地方使用空白(空格、制表符等)。如果您需要表示空格,例如在安装名称中带有空格的目录时,请将空格替换为“\040”。

行尾的 0 0 超出了本指南的范围。别忘了它们!

如果您希望为您的条目添加评论,评论行以“#”开头。

复制上述“mount”命令输出中的挂载选项并仅更改需要的选项可能是明智之举。您需要添加选项“noauto”,这样您的系统就不会在启动时尝试挂载可能不存在的设备。我还删除了“uhelper=udisks2”选项,因为据我所知,只有 udisks2 应该在挂载时传递该选项。

就我而言,我希望我的驱动器在删除时被告知清除已删除文件的块。某些闪存驱动器能够擦除或“修剪”已释放的块,这是一个缓慢的过程。在删除数据时执行此操作意味着以后写入空块的速度会快得多。此操作的挂载选项是“丢弃”。它仅适用于某些文件系统。“vfat”恰好是其中之一。

因此,这是我的最终 /etc/fstab 条目:

#16G Kingston flash drive
UUID=345A-B2EE /media/user/16G-USB vfat rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,discard,noauto 0 0

您可以尝试以 root 身份挂载不存在的内容,对新的 /etc/fstab 进行基本语法检查:

$ sudo mount /faketestfs
[mntent]: line 23 in /etc/fstab is bad
mount: can't find /fakefs in /etc/fstab or /etc/mtab

举个错误示例,我的 fstab 中有一行只包含“mntent”。此测试只会告诉您有一个文件可能让您正常启动。它不一定能捕获您为新条目添加的任何选项中的错误或可能阻止启动的某些错误。

您可能还想使用“diff”命令来确保您所做的更改符合您的预期:

$ diff /etc/fstab /etc/fstab.bak 
17,22c17
< #
< #16G Kingston USB Flash Drive
< UUID=345A-B2EE /media/user/16G-USB     vfat    rw,nosuid,nodev,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush,discard,noauto       0   0
---
> 

输出显示除新添加内容之外的任何条目都可能意味着您的系统无法启动。

如果您对任何一个测试都不满意,请撤消您的更改:

sudo cp /etc/fstab.bak /etc/fstab

然后重新开始。

PS:这可能有些冗长,但我想我应该针对不同经验水平的人来写一下。

干杯,乔恩

相关内容