这FreeDos 项目提供了许多下载,但所有这些都包含一个安装程序,该安装程序会尝试将 FreeDos 从安装介质安装到硬盘上。不支持选择移动棒作为安装目标。由于 USB 棒通常足够大,可以容纳操作系统和应用程序,因此通常不打算写入硬盘。有些页面指向以下工具:鲁弗斯,它可以从模板创建可启动的 FreeDos 安装,但此磁盘缺少典型的 FreeDos 组件。那么如何安装完整的 FreeDos到一个可启动的 USB 记忆棒,用来使用 FreeDos 创建实时 USB 版本吗?
答案1
不幸的是,目前关于FreeDOS 维基不是最新的,但在 FreeDos 开发人员 Jim Hall 的帮助下,我找到了解决方案:
- 下载USB“完整”安装程序来自 FreeDOS 页面。
- 解压下载的 zip 文件
- 使用 USB 格式化工具(例如 rufus)将图像写入 USB(注意写入正确的驱动器)
- 将目录 D:\FDSETUP\BIN 移动到 D:\BIN
编辑 D:\FDCONFIG.SYS 中第一行和最后两行如下
!COUNTRY=001,858:\BIN\COUNTRY.SYS !LASTDRIVE=Z !BUFFERS=20 !FILES=40 DOS=HIGH DOS=UMB DOSDATA=UMB DEVICE=\BIN\HIMEMX.EXE SHELLHIGH=COMMAND.COM \BIN /E:2048 /P=\AUTOEXEC.BAT
编辑 D:\AUTOEXEC.BAT 如下(Windows 会隐藏此文件,但您可以直接给出文件名来打开它)。只需要更改设置 DOSDIR 的行,并删除 AUTOEXEC.BAT 末尾的一些显示代码
@echo off SET DOSDIR= SET LANG= SET PATH=%dosdir%\BIN SET DIRCMD=/P /OGN /Y rem SET TEMP=%dosdir%\TEMP rem SET TMP=%TEMP% rem SET NLSPATH=%dosdir%\NLS rem SET HELPPATH=%dosdir%\HELP rem SET BLASTER=A220 I5 D1 H5 P330 rem SET COPYCMD=/-Y DEVLOAD /H /Q %dosdir%\BIN\UDVD2.SYS /D:FDCD0001 SHSUCDX /QQ /D3 rem SHSUCDHD /QQ /F:FDBOOTCD.ISO FDAPM APMDOS rem SHARE rem NLSFUNC %dosdir%\BIN\COUNTRY.SYS rem DISPLAY CON=(EGA),858,2) rem MODE CON CP PREP=((858) %dosdir%\CPI\EGA.CPX) rem KEYB US,858,%dosdir%\bin\keyboard.sys rem CHCP 858 rem PCNTPK INT=0x60 rem DHCP rem MOUSE rem DEVLOAD /H /Q %dosdir%\BIN\UIDE.SYS /H /D:FDCD0001 /S5 SHSUCDX /QQ /~ /D:?SHSU-CDR,D /D:?SHSU-CDH,D /D:?FDCD0001,D /D:?FDCD0002,D /D:?FDCD0003,D rem MEM /C /N SHSUCDX /D rem DOSLFN rem LBACACHE.COM buf 20 flop SET AUTOFILE=%0 SET CFGFILE=\FDCONFIG.SYS alias reboot=fdapm warmboot alias reset=fdisk /reboot alias halt=fdapm poweroff alias shutdown=fdapm poweroff rem alias cfg=edit %cfgfile% rem alias auto=edit %0 vecho /p Done processing startup files /fCyan FDCONFIG.SYS /a7 and /fCyan AUTOEXEC.BAT /a7/p
删除 D:\SETUP.BAT
- 完成后,保存文件并安全移除 USB 驱动器
开机并测试
USB 密钥现在可直接启动到 FreeDOS 并加载到高内存,为程序留下大约 600KB 的公共内存。
答案2
到目前为止我发现的最简单的版本是这个: https://www.scivision.dev/freedos-flash-bios-linux/
通过在插入 USB 驱动器之前和之后发出此命令来确定 USB 驱动器设备(例如 /dev/mmcblk0):
lsblk
使用以下方法格式化(永久清除)此 USB 驱动器
umount /dev/mmcblk0
mkdosfs -F 32 /dev/mmcblk0
下载 FreeDOS “USB 完整映像” 并解压文件
FD*.img
。将此映像写入 USB 记忆棒:
dd if=FD*.img of=/dev/mmcblk0 bs=4M
图像写入将需要一两分钟,具体取决于 USB 棒的写入速度。为确保写入完成,请等待此命令在第二个终端窗口中退出:
sync
答案3
详细说明 breversa 的答案,这对我有用:
- 按照描述找到 USB 设备和分区(例如,整个 USB 棒
/dev/sdc
,带有第一个分区/dev/sdc1
) - 使用
mkdos
分区级别(例如,/dev/sdc1
) - 使用
dd
整个设备级别,不是在分区级别(即使用dd [...] of=/dev/sdc
) - 否则,
dd
将产生无效分区,并且 USB 无法启动 - 然后你可以挂载
/dev/sdc1
并添加任何额外需要的文件(在我的情况下是 BIOS/固件更新程序) - 在我的案例中,不需要对 FreeDOS 文件进行额外的更改
- 如果我的硬件出现“启动错误”(或其他)消息,我发现大多数情况下“罪魁祸首”是 USB 驱动器本身;不同型号适用于不同的计算机(或不适用);通常,较新的 USB 驱动器比较旧的驱动器工作得更好
答案4
我很确定 OP 想要创建 FreeDOS 的完整 LiveUSB 安装。这将创建一个启动 FreeDOS 并安装所有软件的 USB 闪存驱动器:
https://www.trishtech.com/2017/07/how-to-create-bootable-live-freedos-usb-drive/