格式化USB时,“物理块大小为2048字节,但Linux表示为512字节”-如何创建没有此错误的可引导USB


95

我正在使用:

dd  if=/path/to/my/ubuntuiso/ubuntu.iso  of=/dev/sdb1  bs=4M  &&  sync

为了在较旧的Ubuntu版本上创建可启动的Ubuntu USB驱动器。运行良好。有时我使用了该Startup Disk Creator程序,效果很好。

但是,当我在Ubuntu 16.04 LTS上使用相同的方法时,在格式化之后会收到一些警告。

安装介质可以按预期工作,但是当我在完成工作后尝试格式化USB记忆棒时,出现以下警告:

在此处输入图片说明

Pendrive的分区看起来很奇怪:

在此处输入图片说明

它还显示了我的16GB随身碟为64GB。

在与Gparted苦苦挣扎之后,我将以某种方式格式化它。但是为什么会这样呢?在16.04中是否有更好的方法来创建可启动的Ubuntu?

编辑:有一个相关的问题在这里。但是我的问题不是关于如何正确格式化它。我的问题是“如何创建没有该错误的可启动USB”。&“这是该错误的原因”


对于UEFI,我使用sgdisk命令-在过去的几个月中,我已经通过这种方式制作了6个发行版的实时USB,并且对我来说效果很好
Zanna

@Zanna请解释sgdisk的用法
Severus Tux

您确定这是正确的设备吗?如果应该是16GB,则可能是/ dev / sdc或其他名称。许多SD卡的容量为64GB,通常无法启动。您的驱动器不一定总是显示相同的(sdb sdc),而这完全取决于首先安装的驱动器。
mchid

1
mkfs在ISO之后格式化USB 。不管USB创建方法如何,都可以工作。
UniversallyUniqueID

Answers:


118

用于UEFI系统的实时USB的命令行方法

请注意:这将删除目标设备上的所有数据。

安装先决条件:

sudo apt-get install p7zip-full

假设目标USB位于 /dev/sdb

请先使用lsblkgnome-diskssudo fdisk -l进行检查,并确保您知道要格式化的内容)

确保设备没有安装的文件系统,并在必要时将其卸载,例如:

udisksctl unmount -b /dev/sdb1

销毁现有分区表:

sudo sgdisk --zap-all /dev/sdb

创建新的GPT:

sudo sgdisk --new=1:0:0 --typecode=1:ef00 /dev/sdb

格式化为FAT32:

sudo mkfs.vfat -F32 /dev/sdb1

核实:

sudo fdisk -l /dev/sdb

应该输出类似:

Device     Start      End  Sectors  Size Type
/dev/sdb1   2048 15663070 15661023  7.5G EFI System

挂载驱动器并将iso解压缩到驱动器上,将“ name-of-iso”替换为您先前下载的iso的实际文件名

sudo mount -t vfat /dev/sdb1 /mnt
sudo 7z x name-of-iso -o/mnt/

卸下

sudo umount /mnt

现在重启并享受Ubuntu ^ _ ^

这是我最初学会的方法。)


3
这样做...但是这需要软件包p7zip-full,如果您tar在回答中添加相同的方法会更好。
西弗勒斯·图克斯

3
哇!非常感谢你 。它运作良好。 分区看起来很干净。最好使用tar答案中的内置工具添加提取功能。(甚至添加7z在中可用p7zip-full
Severus Tux

2
我赞成这篇文章,因为它是一个很好的描述,显示了“所有”基本步骤:-)但是也有一些工具可以自动为懒惰的用户做事;-)
sudodus

3
这是在16.04下为我工作的唯一工具。谢谢!默认应用程序使用错误的块大小问题损坏了muy媒体,并创建了由于块大小问题而无法还原的只读文件系统。该方法使用户可以享受所有剩余的可用空间。
user334639 '10 -10-7

3
Ubuntu 17.04的usb-creator(启动磁盘创建器)每次都会“破坏”我的USB驱动器。而这里的逐步操作是将其还原为正常可写状态的唯一方法。gparted不能。
isync

39

这是我解决了将USB用作安装媒体后尝试重新格式化USB时出现此错误的问题:

  • 首先在应用程序>磁盘下打开磁盘应用程序
  • 选择可启动笔式驱动器。
  • 右上角会有一个选项菜单
  • 选择格式化驱动器选项(CTRL+ F
  • 将显示一个弹出窗口。选择0分区并格式化磁盘
  • 现在,磁盘将为空,但系统将无法识别它。但是您可以在“磁盘应用程序”上看到。
  • 选择笔式驱动器并重新格式化。现在,pendrive可以被任何系统检测到。

可接受的答案使用起来过于复杂,因为它需要大量键入和记住特定的磁盘名称(否则您可能会遇到严重的问题)。我的是超级容易实现。


2
+1,但我认为该问题的标题具有误导性-我已对其进行了编辑。对于这个问题,公认的答案是一种按照OP要求创建安装媒体的方法,而不仅仅是格式化驱动器(而且无论使用哪种方法,您都必须确保在格式化时选择了正确的设备!)
Zanna

好的,谢谢让我知道。现在,按照编辑后的标题,可以在格式化驱动器后使用启动盘创建器来创建全新的安装媒体。
Gopal Prasad

谢谢。右上角的菜单找不到。
Tor Klingberg '18

16

发现问题是由于中存在错误usb-creator-gtk。在创建可启动媒体期间,它设置了不合适的块大小。

如果此错误影响到您,则可以在此处进行标记:https : //bugs.launchpad.net/ubuntu/+source/usb-creator/+bug/1589028


1
在上述网站的最后一条评论中,有一个名为EoflaOE的用户,在其下方,您会看到这些评论以及影响我的内容以及我的建议,因此您永远不会像上次那样损坏USB。如果需要制作自己的可引导USB,请使用Rufus或Universal USB Creator,直到修复该错误为止。
Eofla

14

这要容易得多。只需替换/dev/sdd为您的设备地址即可。可以在“ 磁盘”或“ Gparted”实用程序中找到。

sudo dd if=/dev/zero of=/dev/sdd bs=2048 count=32

然后,您可以使用启动磁盘创建器将映像刻录到驱动器。


7

我在Ubuntu(旧版本和16.04)上都使用了UNetbootin,它在我的PC上运行良好。这是更多信息的链接。

sudo apt-get install unetbootin

3
感谢您的关注,但我的问题不是“任何替代方案?”我的问题是“为什么这些方法无法按预期方式工作?”。我还要感谢不涉及第三方工具的任何其他方法。
西弗勒斯·图克斯

7
@SeverusTux实际上,unetbootin就是第三方。可通过apt-get获得。
mchid

不允许安装磁盘映像(多分区),坚持已安装一个分区。
Gringo Suave

5

dd if=/path/to/my/ubuntuiso/ubuntu.iso of=/dev/sdb 这种方式尝试 永远不会让我失望。(请注意,b末尾不是b1-如果存在,将销毁其他分区)

您是否检查过ISO是否已损坏?

在未登录图形环境的情况下,也可以通过TTY进行此操作,这有助于跟踪问题。

编辑:您可以使用/dev/null覆盖分区表来代替使用ISO 。


像这样:dd if = / dev / null of = / dev / sdb?这似乎无能为力
–quantumbutterfly

2
/dev/null指向'nothing'并用于输出,但/dev/zero生成零个字符(ASCII 0)。
sudodus

2

有关块大小的投诉可能是由读取iso9660文件系统的软件中的错误引起的。gparted已发布新版本,并且至少在Ubuntu 17.10中可用,该错误已得到解决。


您可以mkusb用来克隆驱动器。此方法对驱动器的内容不敏感,因此非常可靠。

这也是非常安全的,因为mkusb围绕着强大但危险的dd命令“安全地绑上了皮带” 。目标驱动器显示得非常清楚,您有一个最终检查点,您可以在其中进行两次检查,以确保将其安装到正确的驱动器上(并避免出现错误)。

看到此链接:https : //help.ubuntu.com/community/mkusb

如果仍然无法使用,您可以根据以下链接进行尝试,

无法格式化我的USB驱动器。我已经尝试过使用mkdosfs和gparted-问题分析

请注意,您不必从格式化开始,因为mkusb仍然会覆盖驱动器的先前内容。您可以直接进行

  • 从iso文件(或映像文件)安装操作系统或
  • 将驱动器还原到标准存储设备

1

所选答案带来的问题:插入式笔驱动器现在不可见。(我使用的是Lubuntu 16.04 64位)解决方案:打开Disks实用程序进行安装。

In Lubuntu: Start menu > Preferences > Disks.

所选答案起作用的原因是,我们回到了USB驱动器写入可引导ISO的旧方法,并且仍然保留了可写USB驱动器,剩余空间可用于存储其他文件(从另一个现有的OS我们没有运行实时操作系统)。从Startup Disk Creator16.04版开始,它将清除USB,创建一个类似于CD的只读分区,使USB的其余部分未分配(因此32GB驱动器变成了900mb只读驱动器),而我不是能够在未分配空间中创建任何辅助分区。

更新:Unetbootin似乎可以完成这项工作,笔驱动器仍然可见,插入时没有隐藏,并且磁盘的其余部分仍可用于存储其他数据。但是,当我启动笔记本电脑时,磁盘没有被识别为可启动USB!我使用了UNetBootin的Ubuntu版本。


1.如果从开发人员的PPA安装Unetbootin,可能会比较幸运,因为Ubuntu的存储库中的版本可能太旧了(不是最新的版本,无法应付Ubuntu的新版本);2.此问题标题中的错误消息是因为该软件无法理解克隆的引导驱动器的iso9660文件系统;因此,可能会出现错误消息。3.如果将驱动器还原到标准存储设备时遇到问题,可以根据我的答案中的链接使用mkusb。(也可以使用gparted和Disks,但是可能更困难。)
sudodus

0

即使在全新的SSD上,我也遇到了完全相同的问题。我使用了Linux Mint 18.1和Ubuntu 16.04 LTS ISO版本。无论我重新下载ISO的次数,重写ISO的次数以及执行上述建议的所有步骤来解决错误提示的问题,它都不会消失。奇怪的是,我确实安装了Mint 18.1,并想进行全新安装,但随后遇到了错误。我什至使用相同的USB记忆棒和SSD安装Windows 10,然后使用Ubuntu 16.04 / Mint 18.1重新编写了相同的USB磁盘AGAION,但安装失败。我的观点是ISO文件有问题或我的特定硬件不兼容。我浪费了我生命中的几个小时。

** 解决方案:已下载Ubuntu 17.04 ISO并已安装。在完全相同的硬件,相同的USB驱动器/记忆棒上可以正常工作,而Ubuntu 16.04则没有任何硬件。****


0

显然,错误在于部分错误地读取了驱动器,而不是dd命令或Startup Disk Creator程序

Depart的Debian错误报告:https : //bugs.debian.org/cgi-bin/bugreport.cgi? bug =788808

解决方法:如果使用fdisk而不是parted,则将看到正确的分区。使用fdisk而不是parted,直到修复了bug为止。


0

令人遗憾的是,许多这些GUI磁盘实用程序不仅允许您删除USB上的分区,而不仅仅是提示诸如以下的愚蠢错误:

Physical block size is 2048 bytes, but Linux says it is 512 bytes

该错误对话框结合以下问题:

Would you like delete the partition table on this device (all data will be lost)?

由于它不执行此操作,因此您可以使用以下命令立即自己执行操作:

sudo sgdisk --zap-all /dev/sd?

在执行上面的命令之前,请确保两件事:

  1. 确保您的终端已登录到您认为正确的计算机中。
  2. 确保设备路径正确(请参阅上面命令中的问号,您需要将其更改为正确的设备路径)。

正如其他人提到的,您可以使用以下方法找出设备路径:

sudo fdisk -l

之后,您可能可以使用出现此错误时所使用的实用程序来继续。

顺便说一句,这个问题的dd命令解决方案对于我的需求来说太慢了。我真正想做的就是摆脱该错误,而无需等待dd将整个驱动器归零。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.