如何在Windows中修复syslinux错误创建可启动的USB驱动器?

我下载了Ubuntu 12.04桌面版,并试图使用通用USB安装程序创建可启动的USB驱动器。
然而,我一直收到以下消息:
An error(1) occurred while executing syslinux. Your USB drive won’t be bootable.

我已经使用FAT32格式化了USB(包括快速和完全格式化),甚至尝试了只用FAT格式。但是错误仍然出现。我也关闭了所有防火墙,但没有任何改变。
为什么会发生这种情况?

没有在USB驱动器上进行分区。它只是1GB FAT32格式化的。运行Windows 7。 - Sab
在同一时间的Windows系统事件日志中是否有其他消息,可能提供更多关于实际错误的信息?(要查看系统事件,请打开Windows 事件查看器。) - irrational John
syslinux已经改变了它的界面。以前是syslinux <device>,现在是syslinux install <device>。Unetbootin需要更新它的调用。请参考man syslinxman syslinux-legacy - shawnhcorey
我也遇到过这个问题,除了一个解决方法外,其他方法都没有对我起作用:在制作 USB 驱动器之前禁用 Windows 安全性,然后在完成后重新启用,参考 @CJBS 在下面的 2019 年回答。 - Leo
9个回答

我也使用了通用USB安装程序,也遇到了那个问题。

尝试将驱动器重新格式化为NTFS,然后再试一次。应该可以解决。


1但我认为驱动器应该是FAT32格式的才能启动 - Sab
我知道!每个人都说过(看上面的问题),但是NTFS对我有效,而FAT32则不行。 - Emerson Hsieh
3那对我没用。可能还有其他问题,我无法弄清楚。 - Sab
3这对我来说在2012年7月21日有效。我选择了NTFS格式(与其他人的说法相反),结果运行良好。 - EGHDK
@EDGHK 谢谢!!终于有人能证明了!! - Emerson Hsieh
1刚刚对我来说很有效 - DanH
保证这个答案。在尝试了几次使用FAT32后,它解决了我的问题。Windows 7 Professional 64位 - Spencer D
@Sab 我的意思就是,我可以将安装程序烧录到格式为NTFS的U盘上,但是grub无法启动,显示不支持的文件系统。这是Ubuntu 15版本。 - Abhijeet Apsunde
对我也起作用 - Thamaraiselvam

我在Ubuntu 12.04桌面版64位系统上遇到了同样的问题。我尝试了两次,都是同样的错误:Syslinux显示一个警告,然后关闭并提示“无法启动”。所以,在打开通用USB安装程序之前,我先格式化了USB盘,并且没有勾选“格式化驱动器”选项(复选框),这样就可以正常工作了。

下载 Windows 版的 Unetbootin 并尝试使用:

http://unetbootin.sourceforge.net/

在继续制作可启动的USB之前,最好先检查所下载的ISO文件的md5sum值。

https://help.ubuntu.com/community/HowToMD5SUM#MD5SUM_on_Windows

这样做可以避免以后发现下载文件损坏而带来的很多麻烦。
Chris
编辑:@emersonhsieh,我认为LiveUSB必须格式化为FAT才能从中启动。
@ Chris 我的是fat32格式,但不起作用。在重新格式化为ntfs后,错误消息就没有了。
@eversonhsieh:我曾经遇到过制造商在USB闪存驱动器上放置分区表会导致一些问题的情况。解决办法是完全删除分区表,重新创建并以FAT格式重新格式化。
Chris
我将此添加为另一个编辑,因为我的下面的评论似乎被“显示更多”链接隐藏起来了。我认为这个问题非常重要,所以在这里清楚地写出来,因为它给很多人,包括我自己,带来了问题。
好的,我刚刚用Unetbootin和Ubuntu启动盘创建器在一块Verbatim 2Gb的U盘上验证了这个问题。问题出在制造商放在设备上的分区表上。也许它没有标记为可引导,或者里面有一些非标准的东西。解决办法是删除设备上的分区表,并重新创建一个新的分区表。然后你可以创建一个新的分区并将其格式化为FAT32,它就能正常工作了。Chris

很不幸,unetbootin不支持Ubuntu 12.04桌面版。校验和似乎相同。 - Sab
@user65646 我知道!每个人都这么说,但对我来说NTFS有效,而FAT32则不行。 - Emerson Hsieh
Unetbootin 不太关心是哪个发行版。只需选择“Diskimage”选项,并将 Unetbootin 指向硬盘上的 ISO 文件即可。(12.04 可能尚未在下载区的“发行版”部分更新。) - fabricator4
好的,让我试一下。 - Sab
我曾多次使用FAT32和Unetbootin来制作各种可启动的.iso镜像,而且一直都很顺利。 - Eliah Kagan
好的,我刚刚用Unetbootin和Ubuntu启动盘创建器在一块Verbatim 2Gb的驱动器上验证了这个问题。问题出在制造商放在设备上的分区表上。也许它没有标记为可引导,或者里面有一些非标准的东西。解决办法是删除设备上的分区表,并重新创建一个新的分区表。然后你可以创建一个新的分区并将其格式化为FAT32,这样就可以正常使用了。Chris - fabricator4
有没有办法在Windows 7上删除分区表?另外,当你格式化设备时,分区表不是会重新创建吗?或者我理解错了吗? - Sab
完全同意“问题在于制造商在设备上放置的分区表。”在我的情况下,这帮助解决了问题:Windows 10:计算机管理,磁盘管理,删除卷,创建卷,格式化为NTFS。 - Hartmut Pfarr

我解决了这个问题。我尝试将存储设备从FAT32格式转换为NTFS格式 - 但没有结果。我尝试在运行安装程序之前格式化存储设备 - 但也没有结果。然后,我使用系统的Windows格式进行了缓慢、长时间的格式化(右键单击鼠标上的存储设备图标,并取消选择“快速格式化”选项)。祝好运!:-)

这是我在遵循本主题中一些最受好评的答案后的经验。
1. 使用Windows内置的格式化工具以NTFS格式进行格式化可以消除syslinux错误,但我无法从U盘启动。
2. 无论是快速还是彻底地使用exFAT格式进行格式化都无法解决问题,syslinux错误仍然存在。
3. Universal USB Installer有一个设置,可以按照图像中的突出显示来格式化fat32: enter image description here 通过这个设置,工具成功地格式化了U盘,安装程序被复制到了U盘上,并且我可以从U盘启动。

+1 是为了尝试现有的答案并找出仍然适用的方法。此外,还有一个很好的截图,展示在Windows中选择哪些选项来创建可启动的USB。 - user37165
新版本的USB安装程序已经移除了这个选项。为什么呢? - Calydon

FAT32的最大分区大小为32GB。如果您使用的是较新的闪存驱动器,它很可能大于32GB - 因此会出现问题。
请删除所有分区和卷,并创建一个大小不超过32GB的新卷。
现在ISO -> USB程序可以成功重新格式化为FAT32。

禁用Windows勒索软件保护

Windows勒索软件保护阻止了syslinx的正常工作。实际上,它显示了一个弹出通知,指示被阻止工作。

在禁用Windows勒索软件保护后,我成功地写入了Ubuntu镜像。

如何禁用Windows勒索软件保护?

开始 ➜ (输入)设置 ➜ Windows安全 ➜ 病毒和威胁防护 ➜ 勒索软件保护 ➜ 管理勒索软件保护 ➜ 受控文件夹访问 ➜ 设置为关闭

在USB镜像创建完成后可以重新启用此功能。


这是唯一解决我的方法。 - Leo

我遇到了“SYSLINX ERROR”的同样问题 使用NTFS格式格式化您的U盘,然后加载您的iOS(注意:不要再次使用可启动软件格式化U盘,否则它将无法工作)。 这样就可以正常工作了。

我的经验是确保在UUI的要求中提到的启动过程中不使用GPT。
例如,重新运行Rufus以确保使用MBR引导。