如何安装SD卡?

我的电脑有一个SD卡槽。当我把一个可用的SD卡插入槽中时,什么都没有发生。但是当我插入CD或DVD,或者插入USB驱动器时,介质会被挂载并可用。对于SD卡,我需要做一些特殊的操作吗?
硬件细节:
我在戴尔XPS L502X上运行11.10版本。该卡槽标记为"SDXC/MMC - MS/Pro"(根据维基百科,这是不同类型的SD卡)。

6通常情况下,您不需要做任何特殊的操作。您能否更新问题并附上您正在使用的Ubuntu版本?此外,您可以打开终端(按下ctrl-alt-t),输入"tail -f /var/log/syslog",插入一张SD卡,观察会弹出哪些消息。如果您不知道这些消息的含义,您也可以将插入SD卡时出现的行粘贴到您的问题中。所有这些信息有助于查看可能导致您的读卡器出现问题的原因。 - roadmr
1@roadmr 我原本打算将syslog的结果与Huckle的建议一起发布,但是当我插入SD卡时...什么都没发生!也许我漏掉了什么,但根据下面命令的输出,我认为它甚至不知道插槽在那里。 - lofidevops
请您更新问题,提供您计算机的品牌/型号、Ubuntu版本以及运行“sudo lspci -nn”命令的输出。然后我们可以检查您的Ubuntu版本是否支持您的读卡器。 - roadmr
@roadmr 更新了,并在 https://gist.github.com/77efea8cb1e4ca6eae1a 中包含了更简洁的 lspci 输出。 - lofidevops
谢谢,我在lspci输出中没有看到读卡器,所以可能它连接到USB总线上了,你能否发布lsusb的输出?再说,USB读卡器完全不工作是很少见的。 - roadmr
@roadmr 谢谢,lsusb在gist页面上(在详细的lspci下方)。 - lofidevops
我尝试了下面大部分的答案,然后意识到我的SD卡在/mnt/目录下。 - Josh
7个回答

我有同样的笔记本电脑,在Ubuntu 12.04上插槽是可以使用的,但是当插入卡片时操作系统似乎无法识别。短期内你有两个选择:
1. 插入SD卡后重新启动。 2. 进行PCI重新扫描 ``` echo 1 | sudo tee /sys/bus/pci/rescan ```
这个有解决办法的错误在这里列出。

在第二个选项中,重定向(>)应该是一个管道符号(|)。已编辑。 - edwin
6第二点之后我应该做什么?顺便说一下,我的输出是1。 - LRDPRDX

有几件事情你可以做,以确保一切都按预期工作。

1)确认Ubuntu知道你的SD卡插槽,并知道如何处理它
2)确认Ubuntu知道你插入了某个东西
3)确认Ubuntu理解你插入的东西上的文件系统。

1)在命令行上检查以下命令的输出:sudo lspci -v -nnsudo lsusbsudo lshw这里是一个很好的指南,可以帮助你理解lshw,其中列出了一个示例SD卡读卡器。

2)然后,在插入SD卡之前和插入几秒钟后运行以下命令:ls -la /dev/sd*。该命令列出了Ubuntu所知道的所有硬盘、CD、DVD、软盘、SD卡等(这些被称为块设备)。

理想情况下,第二次运行时会看到一些在第一次运行时没有看到的条目。 例如:

$ls -la /dev/sd*
brw-rw---- 1 root disk 8,  0 2012-01-14 11:27 /dev/sda
brw-rw---- 1 root disk 8, 16 2012-01-14 11:27 /dev/sdb
brw-rw---- 1 root disk 8, 32 2012-01-14 11:27 /dev/sdc
brw-rw---- 1 root disk 8, 33 2012-01-14 11:27 /dev/sdc1
brw-rw---- 1 root disk 8, 34 2012-01-14 11:27 /dev/sdc2
brw-rw---- 1 root disk 8, 35 2012-01-14 11:27 /dev/sdc3
brw-rw---- 1 root disk 8, 36 2012-01-14 11:27 /dev/sdc4
brw-rw---- 1 root disk 8, 37 2012-01-14 11:27 /dev/sdc5

(Now insert the SD card)

$ls -la /dev/sd*
brw-rw---- 1 root disk 8,  0 2012-01-14 11:27 /dev/sda
brw-rw---- 1 root disk 8, 16 2012-01-14 11:27 /dev/sdb
brw-rw---- 1 root disk 8, 32 2012-01-14 11:27 /dev/sdc
brw-rw---- 1 root disk 8, 33 2012-01-14 11:27 /dev/sdc1
brw-rw---- 1 root disk 8, 34 2012-01-14 11:27 /dev/sdc2
brw-rw---- 1 root disk 8, 35 2012-01-14 11:27 /dev/sdc3
brw-rw---- 1 root disk 8, 36 2012-01-14 11:27 /dev/sdc4
brw-rw---- 1 root disk 8, 37 2012-01-14 11:27 /dev/sdc5
brw-rw---- 1 root disk 8, 64 2012-01-14 11:28 /dev/sdd

看到最后多了一个/dev/sdd,那就是SD卡。
3)检查Ubuntu是否能识别驱动器上的文件系统。我敢打赌它要么是Fat32,要么是NTFS。你可以通过运行以下命令来检查你的Ubuntu副本是否能理解这些文件系统(应该可以):cat /proc/filesystems。在这个列表中,vfat代表Fat32,fuse代表NTFS。(注意:这个列表并不详尽。)
更好的方法是尝试手动挂载SD卡。按顺序运行以下命令,直到其中一个成功为止(将步骤2中的字母替换为/dev/sdX1中的X):
sudo mount /dev/sdX1 /mnt
sudo mount -t vfat /dev/sdX1 /mnt
sudo mount -t ntfs /dev/sdX1 /mnt
sudo mount -t msdos /dev/sdX1 /mnt

没有输出意味着操作成功,你应该能够使用Nautilus导航到你的SD卡,路径为/mnt。如果以上方法都不起作用,请尝试将你的SD卡插入Windows机器并运行chkdsk命令,或者验证文件系统类型。

3非常感谢您提供如此详细的答案,不幸的是,我还没有能够完成第二步(而且我想我作弊才能走到那一步😉)- 我在 https://gist.github.com/77efea8cb1e4ca6eae1a 上看不到任何类似SD卡的东西 - 如果您能进一步解答或者这引发了一个新问题“我的SD卡在哪里?!!111!”请告诉我。谢谢! - lofidevops
你能验证它在另一个操作系统(比如Windows)上是否可用吗? - Huckle
很不幸,我不能这样做,Windows机器没有SD卡插槽,但我会看看能否弄到另一张卡——即使症状不同,尝试这个方法是否值得(且不会有害)?http://askubuntu.com/questions/78881/dell-inspiron-9400-sd-card-reader-not-working - lofidevops
还将文件系统输出添加到gist链接中 - fuse存在,但vfat不存在。 - lofidevops
1/proc/filesystems不会列出所有可用的文件系统,但它是一种快速获取常见文件系统的方法,比查看mount命令的man页更简单。然而,我认为你的问题存在于硬件上。你有使用虚拟机的经验吗?在虚拟机中运行Windows可能会提供一些见解。 - Huckle
嗨。我遇到了同样的问题。当我输入sudo mount -t ntfs /dev/sdc /mnt时,我收到以下错误信息。 “读取引导扇区错误:输入/输出错误 无法挂载'/dev/sdc':输入/输出错误 NTFS文件系统可能不一致,或者存在硬件故障,或者是软RAID/虚拟RAID硬件。在第一种情况下,请在Windows上运行chkdsk /f命令,然后重启两次进入Windows。使用/f参数非常重要!如果设备是软RAID/虚拟RAID,则首先激活... 请参阅'dmraid'文档以获取更多详细信息。” - PasanW
如果您不需要SD卡的内容,我建议您测试一下适用于Linux的文件系统。如果仍然无法正常工作,那么可能是硬件问题。如果可以正常工作,那么问题可能出在文件系统上。 - Huckle

这对我来说似乎更好用:

sudo fdisk -l(小写的L)

这将显示所有的/dev/sdX名称、块以及有关"磁盘"容量/空间的更多信息。

然后,我只需使用以下命令:

sudo mkdir /media/sdcard/(创建一个用于挂载SD卡的目录)

(mount命令)(位置名称/dev/sdd1/)(挂载到创建的文件夹) sudo mount /dev/sdd1/ /media/sdcard/

如果你愿意,可以将其挂载到media,然后这是用于卸载的umount命令:

sudo umount /dev/sdd1/

然后,您可以使用sudo rmdir /sdcard删除该目录。


7这对我也起作用了。只是我的命名为/dev/mmcblk0p1,原因不明。 - Espressofa
2此外,我不得不在SD卡插槽上放一点水(实际上是唾液),使系统识别它,然后我有了/dev/mmcblk0p1。我希望我的回答能有所帮助。 - iMitwe
建议将 sudo mount /dev/sdd1/ /media/sdcard/ 更改为 sudo mount /dev/sdd1 /media/sdcard - Cullen SUN

经过一年多的时间,我在使用Ubuntu笔记本读取SD卡的方法中找到了一个永久解决方案。

引用自引用页面:

«按照以下步骤进行操作。

  1. 备份文件/etc/modules

    sudo cp /etc/modules /etc/modules.bak

  2. 在/etc/modules中添加一行

    gksu gedit /etc/modules 或者 sudo vi /etc/modules

3.将此内容添加到文件末尾的新行中:

tifm_sd

当你重新启动时,你的读卡器将会正常工作。当你把SD卡插入读卡器时,它会自动挂载。
但是等一下,不想要重新启动机器吗?回到终端,你这个急性子,输入以下命令:
sudo modprobe tifm_sd

就这些了。重启后,我的笔记本电脑识别出插入的SD卡,并在Nautilus中打开了SD卡。

2试过了。在Ubuntu 12.04上对我没用。 - Planky
3对我来说起作用了。只是modprobed一下,嘿! - fccoelho
+1 在 HP EliteBook 8740w 上的 Debian Jessie 上解决了问题。 - Slashback

好的,根据您提供的非常详细的硬件信息(谢谢!),看起来系统似乎没有检测到读卡器;就像它没有连接到PCI或USB总线上一样。就好像它不存在一样。
您确定读卡器是正常工作的吗?可能是连接松动了(请检查读卡器与主板之间的电缆)。另外,请检查BIOS/设置中是否禁用了它。

1我也遇到了同样的问题,我可以确认SD卡在Windows系统中是可用的。 - Josiah
Josiah:你有完全相同的电脑型号吗?如果没有,那很可能不是同一个问题。 - roadmr
是的,保存制造商和型号+我正在使用相同的Ubuntu版本。我发现只要在计算机启动之前插入SD卡,它就会被识别出来。 - Josiah

好的,我在一台自建的计算机上尝试了所有这些方法,双启动了Windows XP SP3和Ubuntu 10.04(Lucid)。以下是结果:

在Ubuntu中,自动挂载无法识别卡片,但如果我在启动时将卡片插入我的多功能读卡器中,那么它会在启动时被识别,并且我可以“安全地移除驱动器”,但如果我重新插入它,系统就再次无法识别它,但请参阅最后两段。

将同一台机器引导到Windows XP SP3(双启动),并在启动后插入卡片,它会被正常识别,并且可以取出和重新插入。

在由Ubuntu托管的VirtualBox 4.1.18中运行Windows XP,内核为4.6.32.41,并尝试读取卡片,只有当卡片插入插槽并打开该特定(多功能读卡器)USB设备时,它才能正常工作。我可以反复插入和拔出卡片,但每次插入都必须检查和取消选中多卡设备。

现在,这里有个奇怪的地方。如果我打开VirtualBox进入Windows XP会话,并让卡片在Windows XP会话中显示,然后关闭虚拟会话但保持卡片插在多功能读卡器中,那么卡片将出现在我的Ubuntu桌面上。

因此,如果我想在Ubuntu启动后访问卡片,解决方法就是启动VirtualBox,启动Windows XP,插入卡片,确认在"My computer"中看到它,然后关闭VirtualBox会话。哦,是的(稍后在进一步实验后添加的评论)。如果我通过Nautilus"卸载"卡片,并将其移除,而不是使用"Safely Remove Drive",那么我可以重新插入它,它会立即被识别。
真希望Ubuntu能直接识别它!!

如果SD卡没有卷标,请尝试使用Windows或Mac机器添加一个。例如(使用Windows),其中H:是SD卡。
chkdsk H:/f label H:NEW_LABEL

2你可以在Ubuntu中使用磁盘工具或GParted分区编辑器轻松地添加卷标。 - Eliah Kagan
只有在你能够先安装它的情况下。 - user67782
4不,GParted肯定会更改未挂载分区的卷标。我刚刚再次确认了一下。请参见此截图。(而且,我已经做过很多次了。) - Eliah Kagan
只使用Ubuntu的好解决方案。感谢@d3vid提出的问题。 - user67782