我的 USB 适配器上有一张 MicroSD 卡(插入我机器上的 USB 端口,用作 USB 闪存驱动器)。我使用 Unetbootin 将其设为 Kubuntu 的可启动 USB 闪存驱动器。但我需要在它工作时取消。所以我从控制台终止了 Unetbootin 进程。
从那时起,我无法格式化 MicroSD 或删除 Kubuntu 创建的文件夹。我也试过了mkdosfs
,但没有成功。我也无法再安装驱动器了?我该怎么做才能让这个驱动器再次可用?
尝试在 GParted 中创建新的分区表(如 Eliah Kagan 的回答中所述)不起作用。它失败并显示错误消息“imposible crear tabla de particiones”(“无法创建分区表”)。
答案1
问题分析
存储卡和 USB 闪存盘内部的硬件类型相同,因此这两种设备适用的方法相同。术语“驱动器”既可以指 USB 闪存盘,也可以指存储卡(存储卡可以通过 USB 适配器或计算机内置插槽连接)。
困惑:驱动器中有一些数据,使分区工具感到困惑,认为驱动器无法工作。在这种情况下,您可以简单地“擦除”驱动器的一部分(用零覆盖)。通常只需擦除第一个兆字节(驱动器头端的兆字节)就足够了。
该驱动器是只读的:我并不是说存在一个只读文件系统,而是驾驶可读但不可写(如 CDROM 或 DVD)。这可能是由某些帮助系统或竞争系统引起的,因此值得根据此列表尝试,
- 在一些 U 盘和许多存储卡上,有一个用于写保护的小型机械开关,可以在读/写和只读之间切换。您可能无意中将其设置为只读。
- 重新启动计算机并再次尝试使用 mkusb 恢复或擦除第一个兆字节。
- 断开其他 USB 设备。有时 USB 设备会相互干扰功能。
- 尝试其他 USB 端口和/或其他卡适配器。
- 尝试另一台计算机。
- 在另一台计算机上尝试另一个操作系统(Windows、MacOS)。
- 如果您仍然无法擦除驱动器的第一个兆字节,并且驱动器是只读的,则它可能已“卡住”,下一步就是它将完全“变砖”。有一个限制,您必须接受 U 盘已损坏且无法修复,至少使用像您和我这样的普通用户可用的工具无法修复。请参阅此链接:Pendrive 寿命
找不到驱动器:为了使用像你我这样的普通用户可用的修复和分区工具,驱动器必须被计算机系统识别并列出,例如通过命令行工具
lsusb
或lspci
。您可以使用详细选项获取更多详细信息lsusb -v
该驱动器还必须被命令行工具识别为大容量存储设备
lsblk
。两个命令行sudo lsblk -f sudo lsblk -m
应该以某种方式列出驱动器,以便您可以识别它。以下命令行甚至更好,因为它还列出了型号(通常包括 pendrive 或卡适配器的品牌名称和/或型号)。
sudo lsblk -o model,name,size,fstype,label,mountpoint
(您可以从这里复制并粘贴到终端窗口以避免输入错误。)
查看持久实时驱动器
/dev/sdd
和克隆的仅实时驱动器/dev/sde
可以产生以下输出,MODEL NAME SIZE FSTYPE LABEL MOUNTPOINT ... Extreme sdd 14,6G ├─sdd1 4,5G ntfs usbdata /media/sudodus/usbdata ├─sdd2 1M ├─sdd3 244M vfat usbboot ├─sdd4 874M iso9660 Lubuntu 16.04.1 LTS amd64 /media/sudodus/Lubuntu 16.04.1 LTS amd64 └─sdd5 9,1G ext4 casper-rw /media/sudodus/casper-rw Transcend 4GB sde 3,8G iso9660 Lubuntu 16.04.1 LTS i386 └─sde1 858M iso9660 Lubuntu 16.04.1 LTS i386 ...
插入内部插槽的内存卡可能会被识别,如
/dev/mmcblk0
以下示例所示,其中英特尔 NUC 从 SD 卡插槽中的适配器中的 microSD 卡启动,MODEL NAME SIZE FSTYPE LABEL MOUNTPOINT mmcblk0 29.7G ├─mmcblk0p1 300M vfat EFI /boot/efi ├─mmcblk0p2 1M ├─mmcblk0p3 6.5G ext4 root / └─mmcblk0p4 512M swap [SWAP]
在这种情况下,没有列出型号名称。您可能会相信,无论如何您都在“查看”该卡,但还有其他工具可以帮助您识别该卡,
parted
并且lspci
,sudo parted -ls Model: SD SP32G (sd/mmc) Disk /dev/mmcblk0: 31.9GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 316MB 315MB fat32 boot, esp 2 316MB 317MB 1049kB bios_grub 3 317MB 7262MB 6946MB ext2 root 4 7262MB 7799MB 537MB linux-swap(v1) lspci ... 00:1e.6 SD Host controller: Intel Corporation Sunrise Point-LP Secure Digital IO Controller (rev 21) ...
- 如果找不到驱动器,请按照上一段中的列表尝试“驱动器是只读的:“在某些 U 盘上......””。
- 如果找到该驱动器并将其识别为大容量存储设备,则希望您可以按照下一章的操作成功。
希望这“仅仅”是混乱
尝试将驱动器还原到标准存储设备
安装和使用韓國(mkusb-dus),它可以格式化驱动器并将其恢复为标准存储设备(具有 MSDOS 分区表和具有 FAT32 文件系统的分区)。这些说明适用于多种类型的驱动器(USB 闪存盘,存储卡, 硬盘驱动器,硬盘、固态硬盘、固态硬盘),但可能最常用于 USB 闪存盘和存储卡。
如果您运行标准 Ubuntu,则可能需要额外的指令来获取存储库 Universe。(Kubuntu、Lubuntu ... Xubuntu 已自动激活存储库 Universe。)
sudo add-apt-repository universe # only for standard Ubuntu
sudo add-apt-repository ppa:mkusb/ppa # and press Enter
sudo apt-get update
sudo apt-get install mkusb mkusb-nox usb-pack-efi
请参阅这些链接,其中包含更详细的说明,
mkusb 擦除第一个兆字节作为恢复的第一步
有时,一些数据会“欺骗”软件,让软件认为驱动器无法正常工作,即使驱动器是好的,只需擦除第一个兆字节即可删除这些数据。例如,您可能会使用无法正确识别或理解分区表或系统结构的工具“查看”驱动器
- 如果它是从 iso 文件克隆的,或者
- 驱动器上是否有 RAID 配置的痕迹。
所以你可以
- 让 mkusb 将驱动器恢复到标准存储设备(方便的标准解决方案),或者
- 让 mkusb 擦除第一个兆字节,然后使用另一个工具,如果您想要另一个分区表和/或其他文件系统。分区如果您正在运行图形用户界面(窗口管理器或桌面环境),那么它是一个很好的工具。
如果 mkusb 失败该怎么办
如果 mkusb 失败,则表示系统未找到驱动器或驱动器为只读。在这种情况下,您应该按照“驱动器为只读”段落中的列表进行尝试(上文)。
答案2
虽然有点晚了,但这是我的意见。
我弟弟的闪存驱动器不知怎么地在 Windows 上无法使用,在 Linux 上只能读取。尝试使用 GParted 创建新的分区表没有成功,所以我尝试了 dd 选项。这个也没有成功,但经过一番折腾之后,我使用了以下命令:
sudo dd if=/dev/zero of=/dev/sdb bs=1M count=40
此后,我可以再次使用 GParted,它运行正常。显然,第一个块不是问题,但问题出在第一个块和第 40 个块之间。
答案3
在软件中心安装该gparted
软件包(或在终端/Konsole 中运行,sudo apt-get update
然后按sudo apt-get install gparted
)。这将为您提供 GParted 分区编辑器。
然后运行 GParted。在屏幕右上角的下拉菜单中的设备列表中找到 MicroSD/USB 驱动器。确保您拥有正确的设备。(您可以查看其大小来帮助判断这一点。)它将是很坏如果您不小心格式化了包含宝贵数据的其他驱动器或您的 Ubuntu 系统!
选择正确的设备后,运行Device...
> Create Partition Table...
。使用默认选项(即,只需单击Apply
,不要更改 下的选项Advanced
)。请注意,虽然 GParted 中的其他修改仅在您应用更改时执行,但创建新分区表会清除驱动器上的所有内容,单击后立即执行Apply
。
现在在设备上创建一个 FAT32 分区(如果是,则创建一个 FAT16 分区)非常分区很小,比如只有几兆字节,或者如果您知道您需要一个 FAT16 分区,例如,因为您按照说明要求使用 FAT16 分区)。新的 FAT32 分区应覆盖整个驱动器(这是 GParted 中的默认设置)。您将在那里看到分区,但这只是向您展示它将要当您应用更改时看起来就像这样。
然后应用您的更改(通过单击绿色复选标记)。退出 GParted。
你应该可以在任何 Nautilus(即文件浏览器)窗口的以下位置找到新分区:设备在左侧。单击下方的分区以安装该分区设备在鹦鹉螺中。
现在您应该能够使用 UNetbootin 来写入它。
答案4
我刚刚在我的 Linux 上测试过它,你应该使用磁盘工具。(系统 > 管理 > 磁盘工具)
- 如果已安装,请单击
unmount volume
。如果出现错误,请尝试从桌面卸载它,如果仍然出现错误,请将其移除并重新插入。 - 单击
format drive
并保留默认设置。(这是主引导记录) - 删除完成后点击
Create partition
,选择NTFS,保持默认即可。
这些步骤是我自己测试过的,如果还有其他问题,请告诉我。