我制作了一个可启动的 USB 闪存驱动器来运行 Ubuntu。该驱动器在我尝试的大多数笔记本电脑/计算机上都能正常工作:它无法在我的(最喜欢的)Acer Aspire 5745(Windows 7 64 位)上启动。开机屏幕上显示 SYSLINUX 4.06 EDD 4.06-pre1 (...),并且只是停留在那里。在今天早上尝试启动 Acer 之前,我一直在使用 Ubuntu 12.04.1 64 位。我也尝试启动 10.04(将此视为讨论中的修复),结果相同。
我确实想使用 Acer 进行开发,并且不想从硬盘上删除 Windows 7。有什么解决方案/答案吗?
我使用的是 16 GB Cruzer 驱动器(我一直在“玩”,直到今天早上 Staples 送来两块 32 GB 的 Kingston 驱动器)。虽然 Cruzer 驱动器在其他笔记本电脑上运行良好,但在 Acer 上却不行。我格式化了其中一块 32 GB 的 Kingston 驱动器,它立即启动了。我看到的其他遇到同样问题的可怜人得到了教训。感谢您的快速回复,并告诉您的朋友解决方案。让我有点困惑...
答案1
很晚才开始写这篇文章。
前言
问题似乎是分区表不一致,这在出厂格式化的 USB 拇指驱动器上很常见。分区表的某些方面使其不适合制作 liveUSB。
问题
我对此的研究似乎表明,问题源于以 DOS 6.x 格式编写的分区表,这是一种已知存在缺陷的实现。以下是 Linux cfdisk 手册页中的解释(cfdisk 是一个用于操作磁盘分区表的基于文本的实用程序):
DOS 6.x 警告
The DOS 6.x FORMAT command looks for some information in the first sec‐ tor of the data area of the partition, and treats this information as more reliable than the information in the partition table. DOS FORMAT expects DOS FDISK to clear the first 512 bytes of the data area of a partition whenever a size change occurs. DOS FORMAT will look at this extra information even if the /U flag is given -- we consider this a bug in DOS FORMAT and DOS FDISK.
该问题的表现通常包括以下部分或全部症状:
- Testdisk 和类似程序将识别分区表是由 DOS 5.x 创建的
- Ubuntu 中的启动盘创建器通常会拒绝使用 USB 拇指驱动器,因为它找不到有效的分区表,但错误消息并未明确说明这一点。
- 磁盘实用程序和 Gparted 无法删除分区表,因为它们无法识别分区表。相反,它们不能制作分区表,因为它们也认识到某物那里。
- 在拇指驱动器上运行 fdisk -l 通常会声明它没有分区表,即使您知道有一个分区表并且如果它仍在正常安装则可以向其中写入数据。
- 尝试使用驱动器并在其上放置 ext 类型的分区表(如果成功)有时会导致不一致 - 驱动器可能无法在其他机器上运行,或者突然无法在格式化的机器上安装。这些似乎是“死机”的 USB 拇指驱动器,因为设备固件被识别但无法安装并且分区表根本无法读取。我怀疑一些相当新的拇指驱动器被扔掉了,包括我的一个,在我弄清楚问题所在之前。
受影响的设备
根据我的个人经验,存在此问题的设备有:
Verbatim 白色“Stor N Go”4 和 8 GB 设备 许多 Kingston 4Gb 设备 Woolworths“essentials”4GB 设备
所有这些设备的共同点通常是它们声称兼容 Linux 操作系统,并且它们通常包含一些用于同步 Windows 数据文件夹的 Windows 备份软件。
我不知道为什么 USB 拇指驱动器制造商会提供看起来像是分区表格式的设备,而这种格式在发布时就存在问题。任何较新的格式可能都可以正常工作,即使按照今天的标准它可能并不完美。
解决方案
dd if=/dev/zero of=/dev/sdX bs=512 count=1
这一小行代码只是在设备 /dev/sdX 上的分区表顶部写入零
您需要将 sdX 更改为有故障的 USB 闪存盘的正确设备。
警告:使用错误的设备名称将彻底删除您指向的任何设备的分区表 - 硬盘驱动器、外部备份驱动器,任何东西。这将导致删除驱动器上可能存在的任何和所有分区,如果您没有备份所有重要数据,这将给您带来很大的麻烦。您已收到警告
一旦分区表被删除,您将必须使用 gparted 之类的程序来创建新分区,并添加一个或多个分区以便可以使用该设备。根据我的经验,这种修复方法快速、简单且永久有效。我通常会在我购买的所有新 USB 闪存盘设备上都这样做。
也可以使用 Linux 命令行实用程序(例如 fdisk 和 extfs)来创建新的分区表。我会在时间允许的情况下添加一些详细信息。
参考
答案2
这个问题的另一个原因显然是电流流向设备。对我来说,就像接受答案中常见的赞同评论一样,任何命令都会给出no medium found
输出。
切换到另一个 USB 端口可能会有帮助。