格式化 USB 时“物理块大小是 2048 字节,但 Linux 说它是 512” - 如何创建可启动的 USB 没有此错误

Sev*_*Tux 102 filesystem partitioning gparted

我正在使用:

dd  if=/path/to/my/ubuntuiso/ubuntu.iso  of=/dev/sdb1  bs=4M  &&  sync
Run Code Online (Sandbox Code Playgroud)

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

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

安装媒体按预期工作,但是当我在工作完成后尝试格式化该 USB 记忆棒时,我收到以下警告:

在此处输入图片说明

Pendrive 的分区看起来很奇怪:

在此处输入图片说明

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

在使用 Gparted 苦苦挣扎之后,我会以某种方式对其进行格式化。但是为什么会这样呢??有没有更好的方法可以在 16.04 中创建可启动的 Ubuntu?

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

Zan*_*nna 122

一种为 UEFI 系统制作实时 USB 的命令行方法

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

安装先决条件:

sudo apt-get install p7zip-full
Run Code Online (Sandbox Code Playgroud)

假设目标USB在 /dev/sdb

(请先使用lsblkor 或gnome-disksorsudo fdisk -l进行检查,并确保您知道要格式化的内容)

确保设备没有挂载文件系统并在必要时卸载它,例如:

udisksctl unmount -b /dev/sdb1
Run Code Online (Sandbox Code Playgroud)

销毁现有分区表:

sudo sgdisk --zap-all /dev/sdb
Run Code Online (Sandbox Code Playgroud)

创建新的 GPT:

sudo sgdisk --new=1:0:0 --typecode=1:ef00 /dev/sdb
Run Code Online (Sandbox Code Playgroud)

格式化为 FAT32:

sudo mkfs.vfat -F32 /dev/sdb1
Run Code Online (Sandbox Code Playgroud)

核实:

sudo fdisk -l /dev/sdb
Run Code Online (Sandbox Code Playgroud)

应该输出类似:

Device     Start      End  Sectors  Size Type
/dev/sdb1   2048 15663070 15661023  7.5G EFI System
Run Code Online (Sandbox Code Playgroud)

挂载驱动器并将iso解压到它上面,用你之前下载的iso的实际文件名替换'name-of-iso'

sudo mount -t vfat /dev/sdb1 /mnt
sudo 7z x name-of-iso -o/mnt/
Run Code Online (Sandbox Code Playgroud)

卸载

sudo umount /mnt
Run Code Online (Sandbox Code Playgroud)

现在重新启动并享受 Ubuntu ^_^

(这是我最初学会这样做的地方。)

  • 这样做......但这需要包`p7zip-full`,如果你在你的答案中添加对`tar`做同样的事情会更好。 (3认同)
  • 哇!非常感谢 。它运作良好。[分区看起来很干净](http://i.stack.imgur.com/PhI7I.png)。如果您在答案中使用诸如“tar”之类的内置工具添加提取,那将是最好的。(或者甚至添加 7z 在 `p7zip-full` 中可用) (3认同)
  • 我赞成这篇文章,因为它是一个很好的描述,显示了“所有”基本步骤:-) 但也有一些工具可以为懒惰的用户自动制作东西;-) (3认同)
  • 这是唯一一个在 16.04 下为我工作的人。谢谢!默认应用程序会因错误的块大小问题损坏许多媒体,并创建一个只读文件系统,由于块大小问题,我无法恢复该系统。这种方法允许用户享受所有剩余的可用空间。 (3认同)
  • Ubuntu 17.04 的 usb-creator(启动盘创建器)每次都会“损坏”我的 USB 驱动器。这里的一步一步是将其恢复到正常可写状态的唯一方法。gparted 不能。 (3认同)

小智 41

以下是我如何解决在将 USB 用作安装介质后尝试重新格式化时出现此错误的问题:

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

接受的答案太复杂而无法使用,因为它需要大量输入并记住特定的磁盘名称(否则您最终可能会遇到严重的问题)。我的超级容易实现。

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

Sev*_*Tux 17

发现问题是由于usb-creator-gtk. 它在创建可启动媒体期间设置了不正确的块大小。

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


way*_*ure 14

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

sudo dd if=/dev/zero of=/dev/sdd bs=2048 count=32
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用Startup Disk Creator将映像刻录到驱动器。


tru*_*k96 7

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

sudo apt-get install unetbootin
Run Code Online (Sandbox Code Playgroud)

  • @SeverusTux 实际上,unetbootin 只不过是第三者。它可以通过 apt-get 获得。 (7认同)
  • 感谢您的关注,但我的问题不是“任何替代方案?”我的问题是“为什么这些方法没有按预期工作?”。我也很感激任何其他不涉及 **3rd party** 工具的方法。 (3认同)

小智 6

尝试 dd if=/path/to/my/ubuntuiso/ubuntu.iso of=/dev/sdb 这种方式从来没有让我失望。(注意b 最后不是 b1 -如果存在,将破坏其他分区)

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

在未登录图形环境时从 TTY 执行此操作也有助于跟踪问题。

编辑:您可以使用 ISO/dev/null来覆盖分区表,而不是使用 ISO 。

  • `/dev/null` 指向 'nothing' 并用于输出,但 **`/dev/zero`** 生成零字符(ascii 0)。 (2认同)

归档时间:

查看次数:

112214 次

最近记录:

8 年,2 月 前