为什么我不能在 ArchLinux 上挂载我的 U 盘?

Jus*_*tin 10 linux arch-linux usb-flash-drive

我刚开始运行 ArchLinux,事情进展顺利,直到我遇到了这个问题——我觉得我错过了一些明显的东西,但我不确定它是什么。

当我尝试挂载 U 盘时,在 /dev 中找不到该设备。

这是我插入棒时的 dmesg:

USB 1-8: new high speed USB device using ehci_hcd and address 6
Run Code Online (Sandbox Code Playgroud)

根据相关的 ArchLinux 页面,我认为我应该在那里看到设备节点。不过我没看到。

这是我的 lsusb 输出:

Bus 001 Device 006: ID 13fe:1f00 Kingston Technology Company Inc. DataTraveler 2.0 4GB Flash Drive / Patriot Xporter 32GB (PEF32GUSB) Flash Drive
Run Code Online (Sandbox Code Playgroud)

当我查看 /dev 时,我看到 sda、sda1..sda4,但我很确定那只是我的硬盘驱动器及其分区。

有没有人对我缺少的东西有任何猜测?

小智 5

重新启动为我解决了这个问题。这可能与我更新内核并出于某种原因需要重新启动的事实有关。


小智 2

在 /dev 中,您确实看到硬盘驱动器为 /sda 和 /sdb 等。如果您转到 /dev/disk/by-id/,您将看到由唯一设备名称组成的不同列表。

当您安装它时,请使用该名称,就像使用 /sda 一样。

使用唯一设备名称而不是 /sda 之类的名称的优点是,无论启动顺序如何,设备每次都会以相同的方式安装,或者重新启动时留下的拇指驱动器可能会更改 USB 驱动器顺序等。

这是我的 Cowen mp3 播放器的安装命令(一行):

mount /dev/disk/by-id/usb-COWON_J3_0221001E55027D511123241626337D51-0:0 /media/cowon-j3-main
Run Code Online (Sandbox Code Playgroud)

为了将 micro Sd 安装在同一设备中,我返回到 /dev/disk/by-id 来查找它的名称,然后像这样安装它(一行):

mount /dev/disk/by-id/usb-COWON_J3_EXT_0221001E55027D511123241626337D51-0:1-part1 /media/cowen_j3_card/
Run Code Online (Sandbox Code Playgroud)

当然,您必须首先创建挂载目录。我通常将带有固定介质的驱动器放在 /mnt/ 中,将带有可移动介质的驱动器放在 /media/ 中。其他人则采取不同的做法。

一旦您可以从命令行直接使用它,您可以将其放入文件系统表中(以 root 身份编辑 /etc/fstab)以使其更容易安装。

以下是我的 fstab 的摘录,显示了我如何安装 4 个不同的 mp3 播放器(每个设备各 1 行,如果其中有 microSD 卡,则每个设备 2 行):

# -------- Rockbox 模式下的 Sansa 4gb e260
/dev/disk/by-id/usb-Rockbox_Internal_Storage_90000000000000000A4B4520213ED0490-0:0-part1 /media/sansa-main auto noauto,用户 0 0

/dev/disk/by-id/usb-Rockbox_SD_Card_Slot_90000000000000000A4B4520213ED0490-0:1-part1 /media/sansa-main auto noauto,用户 0 0

# -------- Sansa 8gb e280 Sansa 模式
/dev/disk/by-id/usb-SanDisk_Sansa_e280_D008E2146237B49F0000000000000000-0:1-part1 /media/sansa-main auto noauto,用户 0 0

# -------- 考恩 J3
/dev/disk/by-id/usb-COWON_J3_0221001E55027D511123241626337D51-0:0 /media/cowen_j3_main/ auto noauto,用户,rw 0 0

/dev/disk/by-id/usb-COWON_J3_EXT_0221001E55027D511123241626337D51-0:1-part1 /media/cowen_j3_card/ auto noauto,用户,rw 0 0

# -------- 考恩 S9
/dev/disk/by-id/usb-COWON_S9_1600001E55166FBC1025241539136FBC-0:0 /media/cowen_s9/ auto noauto,用户,rw 0 0

一旦它位于 fstab 中,我可以用这种更短的方式安装它,而不是像上面那样使用完整命令安装它:

mount /media/cowen_s9_main
Run Code Online (Sandbox Code Playgroud)

它做同样的事情。

回顾一下:首先,创建用于安装它的安装点(目录)。其次,在 /dev/disk/by-id 中发现唯一的设备名称。 第三,使用您的唯一名称和您决定的挂载点组装并运行挂载命令。

然后我通常“ls”安装点以确保设备存在并且可读。

ls /media/cowen_s9_main
Run Code Online (Sandbox Code Playgroud)

我比你可能需要的更详细,但其他人也会读到这篇文章。另外,由于这里的编辑,fstab 摘录中的注释已从前面删除了 octothorpe (#)——它们需要在那里才能工作。

  • 但这并不能真正回答当设备节点不存在时该怎么办。 (3认同)