显示的 U 盘容量小于实际容量

显示的 U 盘容量小于实际容量

我有一个 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 格式,如下所示:

  1. 移除所有 USB 设备,只留下要重新格式化的 8GB USB 闪存盘,这样以后您就不会对 USB 闪存盘的设备名称感到困惑。

  2. 列出所有分区。

     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

  3. 在 msdos 类型的磁盘上创建分区表,有时也称为主引导记录 (MBR)。

     sudo parted /dev/sdc mklabel msdos
    

    在此示例中,我使用了/dev/sdc在步骤 2 的结果中找到的设备名称。我再怎么强调也不为过运行此步骤之前请验证设备名称!

    警告:如果您输入了错误的设备名称,您可能会覆盖您的操作系统或另一个包含重要个人文件的分区!所以请小心并再次检查设备名称。打开“磁盘”应用程序并在“磁盘”中检查您的 8GB USB 闪存驱动器的设备名称。它应该是相同的设备名称!现在再检查一次!您不想意外输入错误的设备名称!

  4. 添加一个空的“主”分区,它稍后将保存 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 是因为它是该设备上的第一个分区。

  5. 通过格式化分区在 /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-...

www.linuxliveusb.com/

help.ubuntu.com/community/mkusb/persistent

unetbootin.github.io/

将 USB 驱动器还原到标准存储设备

否则你可以恢复使用“mkusb-dus”将 USB 驱动器插入标准存储设备。驱动器的第一个兆字节将被擦除,并自动创建一个具有 FAT32 文件系统的新 MSDOS 分区表。当其他工具对某些数据感到困惑时,此方法也有效。

在此处输入图片描述

请参阅以下链接以及其中的链接,

help.ubuntu.com/community/mkusb

help.ubuntu.com/community/mkusb/wipe

答案3

闪存设备不会永远存在。当它们发生故障时,有时会出现与您报告的类似症状。虽然值得尝试这里的其他建议,但您的设备很可能已经坏了,您必须更换它。

答案4

运行gparted,选择您的闪存驱动器,然后转到Device-> Create Partition Table,然后从列表中选择一个,msdos就可以了,然后您应该能够创建新的分区。

相关内容