我有一个 1GB USB 闪存驱动器,我想将其用作 Linux 发行版的安装介质。我的第一个实验是在一台旧笔记本电脑上安装 Arch(足够旧,如果我真的搞砸了,那也没关系)。我下载了ISO镜像,并将USB插入端口;它自动安装。按照 Arch 安装指南页面上的说明,我运行了dd if archlinux-XXXX.iso of /dev/sdg1
.然后我看不到 USB 上的任何文件(无论是使用ls
还是 nautilus)。我卸载了它,然后将其重新插入,上面有一些文件。恐怕我记不清它们到底是什么了,但我很确定我看到了一个名为/boot
.
然后我将其插入笔记本电脑,笔记本电脑无法从闪存驱动器启动。我将 USB 插回我的主计算机,却被告知:
Unable to mount 168 MB Filesystem
Error mounting: mount: wrong fs type, bad option, bad superblock on /dev/sdg1,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try dmesg | tail or so
该命令dmesg | tail
给出以下内容: [338915.672127] UDF-fs:找不到锚点 [338915.672133] UDF-fs:找不到分区 (1) [338955.452708] UDF-fs:找不到锚点 [338955.452714] UDF-fs:重新扫描blocksize 2048 [338955.479829] UDF-fs:找不到锚点 [338955.479834] UDF-fs:找不到分区 (1) [338955.527366] UDF-fs:找不到锚点 [338955.527373] UDF-fs:使用块大小 2048 重新扫描 [338955.5 55208]UDF -fs:未找到锚点 [338955.555213] UDF-fs:未找到分区 (1)
所以我很好奇这里发生了什么。我是不是在某个地方做错了什么?为什么错误消息提到的是 168 MB 设备,而它应该是 1 GB?另外,有什么办法可以挽救闪存驱动器,或者是烤面包吗?
编辑:来自fdisk /dev/sdg
命令的信息(m 寻求帮助):p [打印分区表]
Disk /dev/sdg: 1021 MB, 1021125120 bytes
64 heads, 32 sectors/track, 973 cylinders, total 1994385 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: 0xe797d5bb
Device Boot Start End Blocks Id System
/dev/sdg1 * 0 327679 163840 17 Hidden HPFS/NTFS
答案1
如果您的工作时间是Arch Linux 官方安装指南,请注意它说:
确保使用 /dev/sdX 而不是 /dev/sdX1
假设您这样做dd
了/dev/sdg1
(而不是在问题中输入错误的命令),您已将 ISO 映像复制到闪存驱动器上的分区中。该分区可能太小,无法容纳 ISO,并且引导扇区/dev/sdg
未受影响。
也许最好的办法是dd
使用正确的目标重新图像。一旦完成,fdisk
可能会说你没有分区表。请注意,在您的fdisk
输出中,设备总大小是正确的,即 1021 MB。很难说为什么驱动器可能被格式化为 168 MB 分区。
只要分区足够大,就可以将 ISO 放在分区中,但这不太可能是可启动的。