DOS-friendly bootable ISOs with mkisofs

I’ve used WinImage and WinISO in a Windows 2000 virtual machine for years to create and modify ISO images, but I decided in the spirit of the occasion to learn how to do the same thing on FreeBSD. The experience also taught me a few things about how bootable CDs actually work.

My biggest surprise was realising that ISO 9660 makes no provision for bootable media. This makes sense given earlier machines couldn’t boot from CDs, but I had long assumed this was only a BIOS limitation. Bootable CD support came with the El-Torito extension, so named for the restaurant where the developers first conceived of its design. It can even include multiple boot records for various architectures.

Jörg Schilling’s excellent cdrecord tools includes mkisofs, which can be used to create bootable ISOs that support this. The FreeBSD Handbook’s storage chapter includes a section on creating CDs with it, but I wanted to be able to boot on legacy x86 machines like 486s and early Pentiums. I scoured the mkisofs manpage(8) and came up with these options:

mkisofs                             \
    -eltorito-boot "BOOTFLOPPY.IMG" \
    -input-charset "cp437"          \
    -iso-level 1                    \
    -joliet                         \
    -output "OUTPUT.ISO"            \
    -rational-rock                  \
    -volume-set "DISKNAME"          \
    "$_source file"

The options are:

  • -eltorito-boot is the floppy image you want to boot from
  • -input-charset "cp437" for DOS-based systems
  • -iso-level 1 enforces DOS-style 8.3 filenames
  • -joliet isn’t ISO standard, but is useful for 95/NT
  • -output is the exported ISO image
  • -rational-rock adds Rock Ridge extensions
  • -volume-set is the CD volume name the OS displays

Rock Ridge extensions aren’t used on DOS or 16-bit Windows as far as I can tell, but doesn’t impact its use and is valuate when attached to other systems, so I still include anyway.

From my experience with WinISO, I knew that bootable CDs for early machines used floppy disk images, which would be emulated by the optical drive on boot. One common trick was to embed a Windows 98 boot disk with CD-ROM drivers into an otherwise-unbootable CD, like those for Windows 95 or earlier OS/2. In an age where blank CDs are easier to find than blank floppy disks, I’ve even been know to create bootable DOS installers.

I’ve wrapped this in a shell script on my lunchbox if you want to use.


FreeBSD 13.0-RELEASE available!

The BSD Daemon

As I said in February, I haven’t been this stoked for a FreeBSD release in a while. The announcement page, release notes, and errata list all the details. Thanks to everyone on the release engineering team.

You can download from the official mirrors, or John-Mark Gurney has also made magnet links for torrents.

I’ll be working at getting OrionVM’s FreeBSD 13 template finalised in the next couple of weeks.


Perceptions of remote work

I was about to pipe some unsolicited marketing spam to the bin, but a shockingly-insightful tidbit caught my eye:

In the hybrid workplace, technology can be a double-edged sword, enabling a sense of belonging and human connection while also creating overwhelm and fatigue. Getting the balance right is critical.

That’s… true. They summarised what I’ve written for paragraphs here over the last year into two sentences.

Independent research revealed that while 78% of HR managers believe they have done a good job of keeping in touch with home workers about their Health & Safety, just 28% of remote workers agreed.

I’d be interested to see what that independent research was, but it definitely wouldn’t surprise me based on anecdotal evidence among people I know.


A 740-page Tennant Schrobmachine

My silly blog here has reached seven hundred and forty pages, which sounds much longer when you write the numbers out in English in lieu of digits. At ten posts per page, that means we have… wait, let me check.

$ bc 740 * 10
==> File 740*10 is unavailable

I always make that mistake!

I used to mark such milestones with a Tennant floor cleaning device with a similar model number or feature, like this silly post from 2009. Here’s the Tennant 7400, which has the same model number as this blog has posts:

Photo of a small, ride-on floor sweeping machine.

This Dutch Industrial cleaning site mentions:

Tennant 7400 Schrobmachine Verhuur machine: De Tennant 7400 opzit-schrobzuigmachine is een eenvoudig te bedienen machine dit mede dankzij de gemakkelijke besturing is deze machine zeer geschikt voor magazijn, parkeergarages en bouwopleveringen.

I tried running this through babelfish.altavista.com, but the site no longer exists.


The XTree Fan Page

XTreeGold for DOS was one of the first programs I ever used as a kid, and it left a lasting impression. Text-based tools like Norton Commander couldn’t touch it at the time, and thirty years later we’re still using inferior GUI file managers. The ability to “tag” files across multiple directories and perform an action against them (say, copying) was a stroke of genius, as was its intuitive UI and hotkeys.

The bundled XTreeGold icon for Windows

I’ve got a longer post about XTree in the works, but for now I was so happy to find this fansite by Mathias Winkler. The web design is even reminiscent of the software’s splash screen and UI.

My favourite page was on hidden hotkeys. I love finding easter eggs and hidden tricks in old software.


MediaWiki toasts the sunflower logo

The MediaWiki software that powers Wikipedia among thousands of other sites has a new logo. It was announced on the MediaWiki news page on April Fools, so I initially thought it was a well-executed prank.

The old (left) and new (right) logo.

Erik Möller’s cheerful sunflower logo cleverly incorporated wiki syntax as a frame. Isarra Anthere even did a classy, simplified version in 2018 for smaller sizes and textile prints, while preserving the original pallete and shape.

By comparison, you know how they say the opposite of love isn’t hate, it’s indifference? This new logo is inoffensive, indistinct, bland, and forgettable. The worst I can say about its design is meh. For a branding exercise, it doesn’t invoke anything about wiki software whatsoever; it looks like a gas company.

I’m glad the Wikimedia Foundation updated Paul Stansifer’s whimsical spherical puzzle for Wikipedia in 2010, instead of replacing it with a dull mark. The rush to make the web look corporate is, to use a Marie Kondo analogy, not the stuff of joy. 🌻


Feedback about a slow CF card

Yesterday I wrote about a new CF card with better specifications performing worse as a boot disk on my Pentium 1 tower. I didn’t have hard figures, but the machine was noticeably sluggish when performing writes compared to the slower 16 GiB card it replaced. I got more than a dozen comments from people like you who read this, thank you!

Turns out that among the electrical engineers and developers among you, my theory that there’s a protocol mismatch is almost certainly false. To recap, I thought maybe its use of UDMA7 somehow confused the VIA firmware on this 1998 motherboard, but that’s not how this hardware works. Hales and Jonathan Belford even sent me photos showing the discrete controller next to the flash memory, which makes sense. CF cards are designed to be backwards compatible, and to implement all prior specifications.

I’m still leaving open the remote possibility that’s an incompatibility, if only based on the fact that this motherboard has surprised me before. My favourite was the MIDI not working on my Sound Blaster AWE32 card when I had a PCI Adaptec SCSI card installed, but not a PCI Jaz Jet SCSI accelerator card. It also stubbornly refuses to recognise more than 64 MiB of memory, regardless of the density, layout or voltage of the DIMMs I buy for it, and the board’s supposed support for up to 288 MiB [sic].

But by far the most likely issue in this case is either a faulty card, or a ripoff. We’ve all seen the photos of SSDs being sold that are merely a SD card and some glue in a case. I bought this from a (supposedly!) reputable seller in Australia, so I’d hope it wasn’t the latter. But I’d be interested to see!

Now I’m motivated to do some proper tests. I’ll boot it into NT4 and NetBSD next weekend and run it through its paces. I also remembered I have a PCI ATA controller card that I originally bought for an ISA machine; I might try that too to isolate if the controller on the motherboard is flaky.


Antranig on blogging regularly

I was catching up on RSS this morning and saw this shoutout by Antranig on his English blog:

Ruben blogged recently about blogging regularly and it kind of hit me: Why don’t I blog regularly? I love blogging. I improved my Armenian by blogging for years, I wanted to be a blogger so bad that I asked my friends to rent me a domain and a hosting service since I didn’t have money when I moved to Armenia after the war. But yet again, it’s very hard for me to write my thoughts in English.

I keep having this discussion with my girlfriend Clara about her native Cantonese, and my dad about German. I’d selfishly love for these people to write in English, but being able to speak a second language and English is incredibly useful. If I lament the decline of English bloggers of late, the pool of Cantonese and Armenian writers who also understand English would be even smaller.

I know a lot of engineers for whom English is their second language, but they write in it for exposure. There’s no question I benefit greatly from writing in a language that Americans can natively understand, for example. But by the same token, if I ever saw myself “competing” with other writers (I don’t, to be clear!), the pool of English writers is massive. Clara is interested in anime and manga, my dad is into Italian motorbikes and travel, and Antranig has some of the most considered and well-written posts on BSD I’ve read in years… maybe writing in their native tongues would be even more engaging and useful for people.

I’ve also been told by people over the years that blogging has helped them write and communicate better in English. Antranig’s English is excellent, but if anyone else wants to get into writing and blogging better, I’d be happy to help :).


How do you use your computer?

You know when you’re filling out a survey, and it asks you to pigeonhole either something about yourself, or how you use something? I’m always struck by the limited range of choices, and the assumption of atomicity.

Albacore on Twitter uncovered a new settings screen in a Windows 10 build that will let you report how you use your computer. You can choose from:

  • Gaming
  • Family
  • Creativity
  • Schoolwork
  • Entertainment
  • Business

Granted you can choose more than one, but I’m still wondering how much useful data they’d get from this. Some have dedicated work or study machines, but barring stringent corporate networks I’d be surprised if people aren’t using their computers for all of this. The same would apply for phones, and especially during remote COVID work.

Schoolwork is also an interesting one, and not just because I didn’t realise that even existed as a single word. I wonder why they didn’t go with education?

It also raises the question about why they’d be interested. For feeding into Telemetry to target you with more ads? Optimisations?

No, I suspect the real reason is so when Microsoft completes the migration of Windows from the Windows NT kernel to Linux, they’ll release flavours for each use case. This is merely market research to justify this to management. Yes, that’s it.


An updated clearance sign

Walk past the entrace to Lemon Grove’s carpark in the Sydney suburb of Chatswood within which I reside, and one may notice a revision to its clearance sign. A lighter patch of yellow next to the scalar value of the ceiling height now exists.

Photo of a carpark entrance with the above-described sign.

Clara and I discussed what that could be for. It could be covering:

  • An innaccurate number. Perhaps the carpark ceiling posessed less clerance than first thought, resulting in the wrong number being printed. Maybe engineers measured it wrong during or after construction. Maybe it was a clerical or printing error.

  • An outdated number. Perhaps the ceiling of the building sank, or the ground rose like a cake. Maybe they built new ductwork or pipes that reduced the ceiling’s effective height. Maybe the road was resurfaced which added just enough height to round the advertised clearance up by a significant figure.

  • A number in the wrong scale. Perhaps the sign was first installed prior to Australian metrication, and the architects had the “metres” sign added by mistake.

  • An erroneous character. Perhaps the 0 underneath the paint was actually the capital letter O, and the building’s management couldn’t deal with being inundated by frustrated typeograpers. Maybe it wasn’t a meaninful shape at all, or an unlucky one, or something vulgar painted either by the original builders or a subsequent vandal.

  • A rip in the space/time continuum. Perhaps covering it with a striking colour sealed it, or rendered it less dangerous. Perhaps the bright colour was to serve as a warning for those so inclined to be affected by such a vortex, or for those actively seeking them.

  • Nothing at all. Perhaps it’s blank space underneath. Maybe the owner of the paint had more than he needed and didn’t want to go to the trouble of disposing it in an environmentally concious way. Maybe they like the visual chaos afforded by the contrast of two differing yellows, or desire to frustrate people who are angered by such visuals.

It’s safe to say that all were contributing factors. Like 2 and 8 to 16. Hey, maybe one of those were a former number on this sign.