我的电脑有一个 SD 卡插槽。当我将工作的 SD 卡放入插槽时,没有任何反应。当我放入 CD 或 DVD 或插入 USB 驱动器时,介质已安装并可用。我需要为 SD 卡做些什么特别的事情吗?
硬件细节
我在戴尔 XPS L502X 上运行 11.10。卡槽标有“SDXC/MMC - MS/Pro”(维基百科告诉我是各种 SD 卡类型)。
我确定这一定很简单,但在这里找不到。
如何从拥有一张空白 SD 卡到拥有一张可以启动 Raspi 的 SD 卡?
我正在尝试克隆可能包含多个分区的 SD 卡,其中一些分区是 Ubuntu 无法识别的。通常,我想克隆整个卷,而不仅仅是某些分区。所以,我挂载 SD 卡并在日志查看器中看到类似的内容:
kernel: [ 262.025221] sdc: sdc1 sdc2
alex@u120432:~$ ls /dev/sdc*
/dev/sdc /dev/sdc1 /dev/sdc2
Run Code Online (Sandbox Code Playgroud)
由于我想复制整个磁盘,我执行:
dd if=/dev/sdc of=sdimage.img bs=4M
Run Code Online (Sandbox Code Playgroud)
创建文件 sdimage.img,7.9 GB(7,944,011,776 字节)(SD 卡为 8 GB)。现在我挂载另一张 SD 卡并执行:
dd if=sdimage.img of=/dev/sdc bs=4M
Run Code Online (Sandbox Code Playgroud)
问题是第二个 dd 命令挂在某个阶段,永远不会成功。此后,我无法重新启动或关闭计算机,我只需要关闭电源即可。
这是正确的方法吗?也许还有另一种克隆 SD 卡的方法?
操作系统:Ubuntu 12.04(精确穿山甲),32 位。
我最近阅读了很多关于假冒 MicroSD 卡和 USB 拇指驱动器的文章,它们声称拥有大量空间(即使您询问您的计算机),而实际提供的空间却少得多。我最近买了一个 SanDisk USB 驱动器(声称 128 GB)并想测试它的大小。它不是通过 ebay 或其他方式购买的,但我真的很想在有效使用它之前测试实际尺寸。
我可以在上面复制东西,再复制回来,看看文件是否正常。我也可以用哈希和其他东西自动化它。但我希望有一个更准确的解决方案。我在 Windows 上读到过,H2testw 可以解决问题。有没有一种简单的方法可以在 Ubuntu/Linux 上进行测试?也许是一种专门的、运行良好的工具?
更新:明确地说,这个想法是验证控制器告诉 linux 系统的大小是否正确(因此不会丢失任何数据)。我不是想看看我是否得到 128 GB 而不是 127.3 GB。我想测试我写的所有数据是否都可以再次读取。不幸的是,我只能在英文技术网站上找到一些关于此的信息。不过,有很好的德国资源。我实际上正在寻找这样的应用程序,但对于 Ubuntu/Linux:https : //www.raymond.cc/blog/test-and-detect-fake-or-counterfeit-usb-flash-drives-bought-from -ebay-with-h2testw/
更新 2:我试图用英语收集一些资源。由于时间关系,我没有详细阅读所有这些内容。
由于下面奇怪的批评,一些解释。
这是对
“清楚地弄清楚你要解决的问题是什么,以及“假驱动”的定义是什么。”
似乎有些人不明白这个问题。所以我尽量详细地解释它,尽管我认为这对我的问题有很大的影响。
您的操作系统或 unix 工具为您提供的 USB 设备容量可能是错误的。这是致命的,因为您的操作系统规定了您可以发送的数据量。发送的数据超出其实际容纳量,您将丢失数据。这是个问题。那么,为什么会发生这种情况呢?
您无需非常了解 USB 协议即可理解问题。串行接口具有共同属性,即客户端设备(USB 驱动器)需要通过此串行接口告知其自身的容量。这意味着客户端设备需要它自己的控制器,并了解有关设备用途的一些知识,在这种情况下,它是容量。当它接收到存储某些东西的命令时,它还决定做什么。如果控制器以这种方式编程,它可以忽略命令或用数据覆盖某些内容。
这是什么意思?无论您的 unix 工具告诉您有关驱动器容量的信息:这就是工具要求驱动器的内容,仅此而已。这就是 h2testw 的发明目的:它使用稍后解释的方法测试实际大小,并将其与驱动器所说的进行比较。如果这不一样,您可能会丢失数据,因为您存储数据的所有常见操作都依赖于您的操作系统的信息,这只是询问控制器。为什么只问?测试需要时间并覆盖驱动器上的所有数据。因此,操作系统需要依赖这些信息是很自然的。
像h2testw这样查看真实容量,确实可以用dd写驱动器的数据,再读一遍,看看是不是和你写的一样。完全合法。硬件和驱动器的性质使它变得更加复杂。例如,考虑写缓存。您需要确保不从缓存中读取。这只是为什么它不像看起来那么容易的一个例子。还认为只写零意味着信息的低熵,可以在阅读时重建。只是细节上没那么容易。当然,您仍然可以手动完成。
但为什么,什么时候可以自动化呢?为什么要上班?f3 正如我在下面的回答中所提出的,实现了许多贡献者的大量想法(认为它是一种扩展的 h2testw),并且它还实现了几种具有不同权衡的方法。开发人员想出了他们手头上不同的假驱动器(又名假冒驱动器)的技巧。所以,虽然我理解理论和问题(似乎是因为这些问题在德国科技媒体中得到了很好的解释,但在英语媒体中却没有),但我并没有假装了解一切,这就是我在上面提到的原因。这只是我理解的理论,我更像是一个软件人。但作为一名信息学学生,我对它的理解足以看到问题。
“尝试了解基本的 Unix 实用程序”
实际上我已经回答了这个问题,但要明确说明:Unix 工具仅使用 USB 协议(当然仅适用于 USB …
我最近升级到 ubuntu 16.04,但我的 SD 卡读卡器不工作。系统根本检测不到阅读器。的输出lsusb相当缺乏信息:
lsusb
Bus 001 Device 002: ID 8087:8000 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 005: ID 8087:07dc Intel Corp.
Bus 002 Device 004: ID 0bda:572a Realtek Semiconductor Corp.
Bus 002 Device 003: ID 046d:c245 Logitech, Inc. G400 Optical Mouse
Bus 002 Device 002: ID 04f3:024c Elan Microelectronics Corp.
Bus 002 Device 001: ID …Run Code Online (Sandbox Code Playgroud) 我的笔记本中有一个 MicroSD 读卡器。当我将 MicroSD 存储卡插入其中时,我无法在其中写入任何数据 - 它是只读的。当我尝试在 root 下执行时,也会发生同样的事情。而且我无法更改它的权限策略。所有 microSD 卡都会出现此问题(我测试了 2 张卡)。我在 Ubuntu 12.04 LTS 上遇到过它,现在我在 Ubuntu 12.10 上,问题仍然存在。当我尝试在我的手机中插入这样一张“只读”卡时,一切正常,我可以在上面写数据。那么,谁能告诉我,我怎样才能在卡上写入数据?
UPD:这里的fdisk -l输出:
Disk /dev/sdc1: 2013 MB, 2013135360 bytes
62 heads, 62 sectors/track, 1022 cylinders, total 3931905 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
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
Run Code Online (Sandbox Code Playgroud)
卡的文件系统是msdos. 对我来说这很奇怪。
UPD2:我在我的卡适配器上发现了一个小的“锁定”开关,当我将它插入我的笔记本电脑时,它打开了。也许,我得找点胶水什么的才能把开关卡住…… …
我有带 WinUSB 的 Ubuntu 14.10,我有一个带有 4GB SD 卡和空 FAT32 分区的 Windows 8.1 Pro ISO。每次我尝试使用它时,它都会说“安装失败,退出代码:256”。我该如何解决?
我正在按照本教程让我的读卡器工作:http : //ubuntuforums.org/showthread.php?t=636867
但是我无法卸载我的 sdhci 模块:
sudo modprobe -rv sdhci mmc_core mmc_block
modprobe: FATAL: Module sdhci is in use.
Run Code Online (Sandbox Code Playgroud)
我应该如何进行?
是否有适用于 Ubuntu 的 SD 卡诊断实用程序?我想在我的 SD 卡上运行测试以检查容量、写入速度等。我有一个适用于 Windows 的,但我正在寻找 Linux 风格并希望找到一些源代码。
我使用以下命令创建了我的 Raspberry Pi SD 卡的映像dd:
sudo dd if=/dev/sdf of=/home/myusername/raspberry-backup-2014-04-10.img
Run Code Online (Sandbox Code Playgroud)
SD 卡包括两个分区(一个 vfat,一个 ext4),当我插入卡时会自动挂载。
我的问题:如何从 .img 文件挂载这些分区?
更多细节:
$ fdisk -l raspberry-backup-2014-04-10.img
Disk raspberry-backup-2014-04-10.img: 3974 MB, 3974103040 bytes
255 heads, 63 sectors/track, 483 cylinders, total 7761920 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
Disk identifier: 0x000981cb
Device Boot Start End Blocks Id System
raspberry-backup-2014-04-10.img1 8192 122879 57344 c …Run Code Online (Sandbox Code Playgroud)