启动时未调用“mount -a”?

Gui*_*ian 5 startup fstab debian cubieboard

我在启动时安装外部硬盘驱动器时遇到问题。

简短的问题

应该mount -a在启动过程中启动吗?我怎样才能检查它呢?

整个故事

与此主题相关

我通过添加以下行使用 fstab 文件挂载了我的硬盘:

#device        mountpoint             fstype    options  dump   fsck

/dev/sda2    /home/yourname/mydata    vfat    defaults    0    0
Run Code Online (Sandbox Code Playgroud)

它在我打电话时挂载,mount -a但在启动时未挂载。

我玩过 auto/noauto 挂载选项。正如预期的那样,使用 时noautomount -a不会安装我的驱动器。所以默认的 auto 值应该是好的。

这就是为什么在我看来这个mount -a电话没有在启动时运行......

该系统是在cubieboard A10 上运行的 nano-headless cubian X1(与树莓派非常相似)

感谢您的任何建议。

本主题不同,因为我的硬盘驱动器手动正确启动,问题仅在启动时出现。

Tro*_*con 5

fstab 中具有默认设置的任何内容都应自动挂载,因此您可能无法将其指向正确的设备(特别是因为内部驱动器通常是 sda,而外部驱动器通常是 sdb、sdc 等)这是我的设置方式启动外部驱动器以在启动时自动挂载:

1. 识别您的设备

运行sudo fdisk -l以获取已连接驱动器的列表。您应该找到一个与您要自动挂载的驱动器的大小和分区设置匹配的驱动器。例如,我的 16GB 闪存驱动器如下所示:

    Disk /dev/sdd: 14.9 GiB, 16007561216 bytes, 31264768 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos Disk identifier: 0x00000000

    Device     Boot Start      End  Sectors  Size Id Type
/dev/sdd1           8192 31264767  31256576 14.9G  c W95 FAT32 (LBA)
Run Code Online (Sandbox Code Playgroud)

由于这是我系统上唯一接近正确大小的设备,我的可移动驱动器必须是 sdd,它的主分区必须是 sdd1。(您的可能是 sdb 或 sdc;我的字母如此之高,因为我的计算机中有很多驱动器。)

您可以通过运行sudo mount /dev/device /mnt然后检查 /mnt 文件夹以查看该分区的内容是否正确来测试以确保您拥有正确的设备。(务必将“设备”替换为您自己的块设备。例如,sudo mount /dev/sdb1 /mnt。)要再次卸载设备,请使用sudo umount /dev/device.

2. 找到您设备的 UUID

我们想这样做是因为块设备可能会改变。例如,现在我的 16GB 驱动器是 sdd,但是如果我向计算机添加更多驱动器,它可能会显示为 sde 或 sdf。此时,我的 fstab 会尝试挂载错误的驱动器!与块设备标识符不同,UUID 内置于分区中并且永远不会更改(除非您重新格式化驱动器)。这使其成为安装可移动驱动器的一种更可靠的方式。

要查找您的设备 UUID,只需使用 blkid 命令:

sudo blkid
Run Code Online (Sandbox Code Playgroud)

对于我的驱动器,我正在寻找的行看起来像这样(我用 Xs 替换了实际的 UUID):

/dev/sdd1: UUID="XXXX-XXXX" TYPE="vfat"

请注意,这不仅告诉我 UUID,还告诉我文件系统类型(我们稍后将需要)。

3. 编辑您的 fstab 文件

这是最棘手的一步。首先,在您喜欢的文本编辑器中以 root 身份打开 /etc/fstab:

sudo gedit /etc/fstab
Run Code Online (Sandbox Code Playgroud)

(请注意,如果您使用的是 Mate 桌面环境,您应该使用 pluma 而不是 gedit。KDE 也有它自己的文本编辑器。)

现在,您需要在此文件的末尾添加一行,这将导致您的驱动器在启动时自动挂载。(#在您的条目之前添加一个描述性行(以行以匹配在前面步骤中收集的信息):

#External hard drive    
UUID=XXXX-XXXX /media/exdrive           vfat    defaults,user        0       0
Run Code Online (Sandbox Code Playgroud)

的第一部分是您要挂载的分区的 UUID。使用您从运行中获得的 UUID blkid

第二部分是您希望分区安装到哪个文件夹。确保该文件夹确实存在!在我的示例中,我可以sudo mkdir /media/exdrive用来创建我想要使用的文件夹。将此文件夹放在您的主文件夹之外可能是个好主意,以便其他用户仍然可以访问该驱动器。如果您希望它更易于访问,您可以随时创建指向它的链接。

第三部分定义了你的分区应该被挂载的文件系统。使用 from 的输出blkid来查找您的文件系统类型。我的例子中的驱动器有一个 fat32 文件系统,所以我需要使用vfat. 或者,您可能有 ntfs、ext4 或其他一些类型。

第四部分指定挂载选项。这变得很复杂,所以如果你想更多地阅读这个主题,你可以在这里这样做:https : //help.ubuntu.com/community/Fstab#Options 对于大多数遵循本指南的人来说,defaults,user应该可以正常工作。

最后两部分(在我们的示例中为 0 和 0)与备份实用程序转储有关,以及 fsck 是否以及以何种顺序检查磁盘。在我们的设置中两者都不需要,因此将两者都保留为 0 是安全的。

4. 测试一下!

您的计算机现在应该会在启动时自动挂载驱动器,并且如果在启动后连接,仍应将其挂载到正确的位置。