我有一个 8 GB 的 U 盘。我曾经使用命令将原始数据写入 U 盘(不创建文件系统)dd
。
今天,当我插入 U 盘时,我无法在上面写入任何内容。当我打开gparted
它时,它显示 U 盘上的总空间为 500 MB。我现在无法在 U 盘上创建新的分区表或分区。
这是fdisk -l
输出。
Disk /dev/sdb: 0 MB, 512000 bytes
255 heads, 63 sectors/track, 0 cylinders, total 1000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00095df6
笔式驱动器出了什么问题?我该如何恢复丢失的空间?
Device Boot Start End Blocks Id System
当我打开 gnome-disks 时,它显示总空间为 8 GB,但是当我尝试使用它创建新分区时,它显示以下错误:
Error creating partition on /dev/sdb: Command-line parted --align optimal --script "/dev/sdb" "mkpart primary ext2 1MiB 7969177599b"' exited with non-zero exit status 1: Error: The location 7969177599b is outside of the device /dev/sdb.
(udisks-error-quark, 0)
答案1
dd
这些说明对我重新格式化 8GB USB 闪存驱动器很有帮助,在我曾经将可启动 iso 文件写入闪存驱动器后,该闪存驱动器变得毫无用处。我将闪存驱动器重新格式化为其原始 FAT32 格式,如下所示:
移除所有 USB 设备,只留下要重新格式化的 8GB USB 闪存盘,这样以后您就不会对 USB 闪存盘的设备名称感到困惑。
列出所有分区。
sudo fdisk -l
搜索命令结果以查找如下输出:
Disk /dev/sdc: 7864 MB, 7864320000 bytes 30 heads, 33 sectors/track, 15515 cylinders, total 15360000 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: 0x00016288 Device Boot Start End Blocks Id System /dev/sdc1 * 2048 15359999 7678976 b W95 FAT32
如果您
7864 MB
在输出中看到类似 (8GB) 的内容(参见上面的示例输出),那么这就是您的 8GB USB 闪存驱动器。在此示例中,它称为/dev/sdc
。现在从 Dash 打开“磁盘”应用程序并再次检查以确保您的 8GB 闪存驱动器的设备名称与您通过运行以下命令获得的名称相同:sudo fdisk -l
。在 msdos 类型的磁盘上创建分区表,有时也称为主引导记录 (MBR)。
sudo parted /dev/sdc mklabel msdos
在此示例中,我使用了
/dev/sdc
在步骤 2 的结果中找到的设备名称。我再怎么强调也不为过运行此步骤之前请验证设备名称!警告:如果您输入了错误的设备名称,您可能会覆盖您的操作系统或另一个包含重要个人文件的分区!所以请小心并再次检查设备名称。打开“磁盘”应用程序并在“磁盘”中检查您的 8GB USB 闪存驱动器的设备名称。它应该是相同的设备名称!现在再检查一次!您不想意外输入错误的设备名称!
添加一个空的“主”分区,它稍后将保存 FAT 文件系统。
sudo parted -a none /dev/sdc mkpart primary fat32 0 8192
在此示例中,我再次使用了
/dev/sdc
在步骤 2 的结果中找到的设备名称。该命令指定起点(从 0 MB)到终点(8192 MB)。如果 8GB USB 闪存驱动器没有完整的 8192 MB 空间,parted 将自动调整它。如果终端返回一条消息,指出起点不能从 0 MB 开始,并且您必须使用其他接近 0 MB 的小数字,请键入 Y 以接受此操作。请注意,该命令正在整个磁盘上创建一个主分区。这个新创建的分区将具有 ID
/dev/sdc1
。这是因为本例中的设备名称为/dev/sdc
,末尾的 1 是因为它是该设备上的第一个分区。通过格式化分区在 /dev/sdc1 分区上创建 FAT 文件系统。
mkfs.vfat -n "8GB-USB" /dev/sdc1
/dev/sdc1
是步骤 4 中的分区 ID。“8GB-USB”是分区标签,可以是您自己选择的标签,只需将标签括在两个双引号字符内即可。
现在,您已拥有一个可立即使用的重新格式化 USB 闪存驱动器,其中具有 8GB FAT 分区。
答案2
问题的一般描述
您可以使用dd
到写入原始数据或者克隆将映像文件或 Ubuntu iso 文件复制到 USB 驱动器。这些数据可以是“任何地方的任何数据”,并且可能会混淆您之后要使用的分区工具,因为该工具需要特定的结构(分区表和文件系统)。
从 iso 文件克隆以创建 USB 启动驱动器
当您将 Ubuntu iso 文件克隆到 USB 驱动器时,USB 驱动器将成为可启动的实时驱动器,可以运行它来“试用 Ubuntu”或将 Ubuntu 安装到内部驱动器中。dd
是一种克隆工具,按原始问题所述使用。 还有其他克隆工具,例如“Disks”别名gnome-disks
、Ubuntu 16.04 LTS 及更新版本中的“Ubuntu 启动盘创建器”、“mkusb”和“Win32 Disk Imager”。从 iso 文件克隆的 USB 驱动器具有只读的 ISO9660 文件系统。这是系统的一项功能,可以在 CD/DVD 驱动器上使用,并且在克隆到 USB 驱动器时会被继承。
从 iso 文件中提取以创建 USB 启动驱动器
还有其他工具,提炼将 Ubuntu iso 文件中的文件复制到 USB 驱动器中的文件系统。'Unetbootin'、'LinuxLive' 和 'Rufus' 是提取工具。'mkusb' 是提取工具,用于创建持久实时驱动器。USB 驱动器中的提取系统可以读写。
使 USB 驱动器再次可读/写
持久实时驱动
如果你想使用 U 盘来启动 Ubuntu Live 并存储文件,我建议你创建一个执着的实时驱动器。这可以在 Windows 中使用“LinuxLive”和“Unetbootin”完成,在 Ubuntu 中使用“mkusb”和“Unetbootin”。请参阅以下链接及其中的链接,
askubuntu.com/.../如何制作一个持久实时的 usb-of-ubuntu-...
help.ubuntu.com/community/mkusb/persistent
将 USB 驱动器还原到标准存储设备
否则你可以恢复使用“mkusb-dus”将 USB 驱动器插入标准存储设备。驱动器的第一个兆字节将被擦除,并自动创建一个具有 FAT32 文件系统的新 MSDOS 分区表。当其他工具对某些数据感到困惑时,此方法也有效。
请参阅以下链接以及其中的链接,
答案3
闪存设备不会永远存在。当它们发生故障时,有时会出现与您报告的类似症状。虽然值得尝试这里的其他建议,但您的设备很可能已经坏了,您必须更换它。
答案4
运行gparted
,选择您的闪存驱动器,然后转到Device
-> Create Partition Table
,然后从列表中选择一个,msdos
就可以了,然后您应该能够创建新的分区。