我正在尝试使用 FreeDos 创建一个可启动 USB 记忆棒,以便在 Centos 6.5 中更新 BIOS,请按照以下说明进行操作:赫托贝网
我使用以下命令创建了空的 30MB img 文件dd
:
[root@dumbledore freedos_boot]# dd if=/dev/zero of=FreeDos-image.img bs=1M
count=30
30+0 records in
30+0 records out
31457280 bytes (31 MB) copied, 0.0756911 s, 416 MB/s
上述文章的作者说这个命令应该复制 30MB,我得到 31MB。这是一个问题吗?
然后我用它parted
在生成的 FreeDos-image.img 文件中创建分区。
root@dumbledore freedos_boot]# parted FreeDos-image.img
GNU Parted 2.1
Using /home/dthacker/freedos_boot/FreeDos-image.img
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit %
(parted) mklabel msdos
(parted) mkpart primary fat16 0 100%
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? C
(parted) mkpart primary fat32 0 100%
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? I
(parted) set 1 boot on
(parted) p
Model: (file)
Disk /home/dthacker/freedos_boot/FreeDos-image.img: 100%
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 0.00% 100% 100% primary boot, lba
文件系统类型应为 FAT16,但尚未设置。
我需要做哪些不同的事情才能正确设置?
答案1
我是 chtaube.eu 上这些说明的作者:)
dd 在大小方面有点不一致:bs=1M
定义块大小为 1兆比字节表示 1024*1024 字节。 30 兆字节为 30*1024*1024 = 31457280 字节。dd
的最终输出使用十进制兆字节,1 MB = 1000*1000 字节。这就是为什么它显示为 31 MB。所以没有什么可担心的。我保守地选择了略小于 32 MB 的大小,以确保它适合标榜为“32 MB”的 USB 闪存驱动器。
我刚刚在 Arch Linux 和 Debian 上检查了这个问题parted
,并且能够重现该问题。
对我来说,这看起来像是一个外观问题parted
,因为(打印)命令的输出p
显示“空白”文件系统,而分区实际上正确创建为 FAT16。
fdisk -l FreeDos-image.img
您可以像我在下面的打字稿中所做的那样检查这一点:
ct@darkstar ~/tmp % dd if=/dev/zero of=Freedos.img bs=1M count=30
30+0 records in
30+0 records out
31457280 bytes (31 MB) copied, 0.150141 s, 210 MB/s
ct@darkstar ~/tmp % parted Freedos.img
WARNING: You are not superuser. Watch out for permissions.
GNU Parted 3.1
Using /home/ct/tmp/Freedos.img
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit %
(parted) mklabel msdos
(parted) mkpart primary fat16 0 100%
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? i
(parted) set 1 boot on
(parted) p
Model: (file)
Disk /home/ct/tmp/Freedos.img: 100%
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 0.00% 100% 100% primary boot, lba
(parted) q
ct@darkstar ~/tmp % fdisk -l Freedos.img
Disk Freedos.img: 30 MiB, 31457280 bytes, 61440 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
Disklabel type: dos
Disk identifier: 0x0007cae1
Device Boot Start End Blocks Id System
Freedos.img1 * 1 61439 30719+ e W95 FAT16 (LBA)
ct@darkstar ~/tmp %
所以你这边应该没有什么问题。不管怎样,谢谢你指出这一点。我将更深入地研究parted
的行为并相应地更新我的页面上的手册。