14

The FreeDos project offers a number of downloads, but all of these contain an installer that tries to install FreeDos from an installation media onto the harddisk. Selecting the mobile stick as installation target is not supported. Since USB sticks are usually large enough to contain the OS plus applications, writing onto the harddisk is often not intented. Some pages point to tools like Rufus, which can create a bootable FreeDos installation from a template, but this disk is then missing the typical FreeDos components. So how can a complete FreeDos be installed onto a bootable USB stick to create a live USB version with FreeDos?

6 Answers 6

16

Unfortunately the current information on the FreeDOS Wiki is not up to date, but with the help from FreeDos Developer Jim Hall I could find the solution:

  1. Download the USB “Full” installer from the FreeDOS page.
  2. Unpack the downloaded zip
  3. Use a USB formatting tool (for example rufus) to write the image to USB (take care to write over the right drive)
  4. Move the directory D:\FDSETUP\BIN to D:\BIN
  5. Edit first and last two lines in D:\FDCONFIG.SYS as follows

    !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
    
  6. Edit D:\AUTOEXEC.BAT as follows (Windows will hide this file, but you can open it by directly giving the filename). Only the line setting the DOSDIR needs to be changed and some display code at the end of AUTOEXEC.BAT are to be removed

    @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
    
  7. Delete D:\SETUP.BAT

  8. Done, safe your files and safely remove the USB stick

Boot and test

The USB key now boots directly into FreeDOS and loads into high memory, leaving roughly 600KB of common memory for programs.

3
  • 2
    this explains how to get a barebones bootable freedos stick (which is great!) but how do add the rest of the tools in FDSetup directory (unzip, ...) to this stick? "the rest" is 99% of the freedos installer payload...
    – bernstein
    Jul 14, 2019 at 23:00
  • This explains how to put everything from the installer onto a stick, so it includes the tools from the Full Installer package.
    – Peter B.
    Jul 30, 2019 at 21:19
  • 2
    Peter I think @bernstein is refering to the bonus packages that come with freedoss full (i.e. the packages inside "FDSETUP\PACKAGES" ) which are all zipped up and not setup. Any solution to that in addition to your already great answer?
    – moo
    Aug 28, 2019 at 18:00
3

The easiest version I've found so far is this one: https://www.scivision.dev/freedos-flash-bios-linux/

Determine USB drive device (e.g. /dev/mmcblk0) by issuing this command before and after USB drive insertion:

lsblk

Format (permanently erase) this USB drive with

umount /dev/mmcblk0

mkdosfs -F 32 /dev/mmcblk0

Download the FreeDOS “USB Full Image” and extract the FD*.img file. Write this image to the USB stick:

dd if=FD*.img of=/dev/mmcblk0 bs=4M

the image write will take a minute or two, depending on the write speed of the USB stick. To be sure it’s done, wait for this command to exit in a second Terminal window:

sync

3

As of 2022-12-20, after various attempts, they only way I was able to get any FreeDOS live (i.e., whether full or not) onto a USB thumb drive was using Rufus (it's current version is 3.21 as of now) and choosing FreeDOS from the “Boot selection” dropdown list. I let Rufus create a bootable thumb drive, mounted the drive, and manually copied whichever software I needed to the drive. Using this drive, FreeDOS booted by default in a laptop from year 2014 but not (or at least not by default) in a laptop from year 2022.

At least 3 other methods failed for me:

  1. In Linux, letting unetbootin put FreeDOS 1.0 to my thumb drive according to https://wiki.ubuntuusers.de/BIOS_aktualisieren/#DOS-USB-Methode (outcome: doesn't boot on the 2014 laptop).

  2. In Linux, letting unetbootin put self-downloaded Full or Legacy FreeDOS 1.3 to my thumb drive according to https://wiki.ubuntuusers.de/BIOS_aktualisieren/#DOS-USB-Methode (outcome: neither Full FreeDOS nor Legacy FreeDOS boot on the 2014 laptop),

  3. Using “odin“ FreeDOS edition according to http://wiki.freedos.org/wiki/index.php/How_to_Create_a_USB_Boot_Disk_Using_FreeDOS (outcome: the URL given there is rotten away).

Of course, I don't claim I tried all possible options and variations of 1.-3. and all BIOS/UEFI boot options of all laptops. So, dear reader, your experiences might vary.

1
  • June 2023. This was the only solution that worked for me.
    – pdwalker
    Jun 12 at 3:52
3

To detail breversa's answer, which then worked for me:

  • find out USB device and partition as described (e.g., whole USB stick is /dev/sdc, with first partition /dev/sdc1)
  • use mkdos on the partition level (e.g., /dev/sdc1)
  • use dd on the whole device level, not on the partition level (i.e., use dd [...] of=/dev/sdc)
  • otherwise, dd will produce an invalid partition and the USB stick is not bootable
  • you can then mount /dev/sdc1 and add any additionally needed files (a BIOS/firmware updater in my case)
  • no additional changing of FreeDOS files was necessary in my case
  • if my hardware gave a 'boot error' (or whatever) message, I found that in most cases the 'culprit' is the USB stick itself; different models work with different computers (or don't); usually, newer USB sticks work better than older ones
1

I'm pretty sure the OP wants to create a complete LiveUSB install of FreeDOS. This creates a USB flash drive that boots FreeDOS and has all the software installed:

https://www.trishtech.com/2017/07/how-to-create-bootable-live-freedos-usb-drive/

1
  • 3
    TL;DR: Install in a VM and copy VHD contents to a FreeDOS USB prepared with Rufus. Worked for me.
    – gronostaj
    Aug 12, 2020 at 9:51
0

Yes, the rufus way works, and so far it's the only way I know to make a FreeDOS USB boot. But it partitions and formats the drive without alignment, which will produce excessive write/erase activity of the flash memory and prematurely wear out the drive. That's not a problem if you're just flashing a BIOS or something, but it is if you will be often updating files.

BTW, if you use the trishtech link, there is a problem installing FreeDOS into VirtualBox, at the "install freedos to hdd" screen. If you just go ahead, you will get rolling "illegal instruction" messages. Workaround: Press Tab, then add " raw" (no quotes) to the boot line, then press Enter.

1
  • 6
    "But it partitions and formats the drive without alignment" That is simply false. I am the main developer for Rufus and I spent a lot of time ensuring that the partitions are aligned, unless you have a very different definition of what "alignment" means: github.com/pbatard/rufus/blob/master/src/drive.c#L1541-L1548
    – Akeo
    Oct 5, 2019 at 20:18

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .