90s Offline Linux Possible Today ?  


All sources, tools, and code are available here

Friday two weeks ago was almost a forced corporate holiday. A massive outage of Rogers caused mayhem in Canada. Everything from selective 911 outages, and payment settlement systems, to a complete loss of cellular service in all Rogers-serviced cells to Internet outages. Years of festering complacency of government watchdogs, like the CRTC, and the lack of competition in the telecom sector were likely contributing factors to the outage. As a business or individual, you take these things for granted. In many cases, like in my business, cellular systems are used as a backup for the rare occasion of a data outage, which kind of turn out to be useless if they feed into the same failed infrastructure.

DJ Case for Backups

For a long time, I have been a fan of optical backups, particularly for long-term archival storage like M-Disc. With the increase in data densities, I went from DVD to Blu-ray, and most recently 4-layer BDXL. While 100GB seems low in comparison to other backup media types, the promise of 1000-year data retention, and the fact that external Blu-ray drives consume little power compared to a full-blown NAS rack, means that these could be considered viable media even in the face of a sustained power outage. You can run a laptop with a Blu-ray drive attached on a 60W solar panel or battery-backup source for days. If you own an old DJ case for 500 CDs or so, this also makes a brilliant container for indexing backups. While Mitsubishi Kagu Media (a.k.a. Verbatim) and many government testers advise against sleeves for long-term archival, some boxes like these come with soft-cloth-backed sleeves that do not scratch or stick to the optical media side, as long as you stay away from humid or damp environments. 400+ sleeves yield about 40TB. Since Blu-ray is nonmetallic, the data might even survive a NEMP attack or extensive solar storm. Since optical media seems to fall out of fashion, for easy access you can pack a slimline Blu-Ray rewriter in the same box.

This brings back memories of the 90s. I have my first vivid memories of converting from MS-DOS and various Windows versions to SuSE Linux in the late 90s. You would get half a meter of manuals and a binder of 5 or more CDs after paying a sizable (or as a high-schooler not so sizable) amount to install. Those CDs had everything to bootstrap any box at the time to a decent Linux system. The option to add remote mirrors via FTP was an extra feature and not the requirement you have today. I survived from the early to the late 90s mainly on a 14.4KBaud dial-up modem, and later a 128KBaud ISDN modem. So any extensive downloads were a risky and expensive proposition since you paid initially overland phone rates to connect to the handful of ISP providers that existed at the time in Germany, and you could get interrupted at any time by the family’s need to make phone calls from the same phone line. To get an idea of the bandwidth, if you were curious enough to have found the adult section on some shady IRC server at the time. Streaming video was impossible over dial-up or ISDN.

You had to wait minutes in excitement to just download one SVGA-sized picture of your favourite scantly-clad model (in 1993 I think I fell for Cindy Crawford). Let’s illustrate what this looks like…

Cindy Crawford 1993

Most tools, projects, “other applications”, and “private collections” made the rounds on 3.5″ floppies or for a brief period on Iomega ZIP disks. Only a few kids could save up their allowance to buy CD writers. Those that did, found ways to recoup their investment by offering under-the-hand CD copy services. Data exchange back then required real social skills, unlike today.

Way back Ubuntu used to ship in this form too, and still to this day supports adding external media as an apt source. So it got me thinking if you could not just mirror every package Ubuntu has to offer and create optical media. In fact, going through blogs you can find references all the way up to Ubuntu 12. I tried and succeeded to get some of those tools ported forward to Ubuntu 18.04, which I currently use at home and in the office these days. Here is what you need

  • A working recent Ubuntu Linux machine.
  • About 500 GB of storage.
  • apt-mirror
  • debpartial utilities (adapted here for a more modern Ruby version)
sudo apt-get install apt-mirror ruby
# Now adapt your mirror list (see below)
sudo vi /etc/apt/mirror.list
sudo apt-mirror
# Pick a directory where to stage symlinks for the BDXL split
sudo mkdir <bdxl_dir>
./debpartial.rb --nosource --size 98000000000 
   --section=main,restricted,universe,multiverse 
   --arch=amd64 
   --dist=bionic,bionic-security,bionic-updates,bionic-proposed,bionic-backports 
  <mirror_dir>/archive.ubuntu.com/ubuntu/ 
  <bdxl_dir>
# create symlinks for the created indexes
./debcopy.rb -l <mirror_dir>/archive.ubuntu.com/ubuntu/ <bdxl_dir>/Debian<i>/
# now symlinks for 98GiB partitions are stored in <bdxl_dir>/Debian<XXX>
# create isos following the symlinks as follows
sudo mkisofs -joliet-long -f -J -r -V "Ubuntu 18.04 <i>/3" -o ubuntu-18.04-$(date -I)-complete-amd64-bdxl<i>.iso dvds/Debian<i>/
# These isos can then be burned via your favourite program to a BDXL media

The configuration of /etc/apt/mirror.list really depends on your architecture and the apt sources you want to mirror. A good starting point is to look at your /etc/apt/sources.list{.d} on a system that is representative of what you want to mirror. You also have to set the base_path to where the mirror is saved at. Example for /etc/apt/mirror.list:

############# config ##################
#
set base_path     <mirror_dir>
#
# set mirror_path  $base_path/mirror
# set skel_path    $base_path/skel
# set var_path     $base_path/var
# set cleanscript $var_path/clean.sh
# set defaultarch  &lt;running host architecture>
# set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
set nthreads     20
set _tilde 0
#
############# end config ##############
 
deb http://archive.ubuntu.com/ubuntu bionic main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu bionic-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu bionic-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu bionic-proposed main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu bionic-backports main restricted universe multiverse

Now with the media in hand, you can use synaptic or apt-cdrom to add them as a package mirror.

Synaptic Add CD-ROM

I have been doing the same evaluation for development tools; a Yocto-based Linux SDK in particular, local git mirrors, and and selective PyPi mirroring. I am working on a similar offline install for Windows 10 and Microsoft Visual Studio (or at least all required command line build tools), but have not succeeded in getting all the required packages in offline form, the look-and-feel of the Microsoft Update Catalog seems designed to discourage this endeavour. Some tools that would require online activation at installation are also an issue. Luckily some vendors like JetBrains still permit code-based installations for complete island systems, that are typically found in sensitive or defence-related settings.


Published: 2022-07-18
Updated  : 2025-10-04
Not a spam bot? Want to leave comments or provide editorial guidance? Please click any of the social links below and make an effort to connect. I promise I read all messages and will respond at my choosing.
← A New Pal Fixing a Nice Toy Car →