Go to file
BodgeMaster 2084efbbde package selections/icewm-full: add xscreensaver, volctl 2023-07-23 03:31:28 +02:00
dracut-modules/90void-usb install stage 1 and dracut module: add overlay 2023-06-28 21:28:01 +02:00
kernel.d pre-install kernel hook: only keep 3 old kernels instead of waiting until we run out of disk space 2023-07-14 23:11:02 +02:00
opt system-image: allow for running non-interactively using --yes 2023-07-21 18:59:27 +02:00
package_selections package selections/icewm-full: add xscreensaver, volctl 2023-07-23 03:31:28 +02:00
skel package selections/desktop: add xinitrc, bashrc 2023-07-21 16:33:31 +02:00
README.md rename backup-fs to system-image 2023-07-14 21:27:57 +02:00
install-stage1.sh system-image: allow for running non-interactively using --yes 2023-07-21 18:59:27 +02:00
install-stage2.sh install stage 1 and 2, backup-fs: print a newline after yesno 2023-07-14 20:58:43 +02:00
notes_to_self.txt package selections/icewm-full: add xscreensaver, volctl 2023-07-23 03:31:28 +02:00

README.md

Void Linux Setup for USB Sticks

     _________________________
  .*¯ _  _        __ ___     /|_______
 /   | |//,·¯¯*. / // _ \   //  //   /|
|    | '// ( ) ;/ // // /  //  _¯   ///
|    |_/ '.__.*/_//___.*  //  //   ///
\*·…_____________________/://
 *·…_____________________|;'*

This repository holds scripts for installing a Void Linux setup specialized to run off a USB stick.

This is only for USB sticks (thumb drives, pen drives, whatever you wanna call them). You dont need this if you want to use a USB HDD or SSD because these devices tend to just work properly. If you want to use a USB HDD/SSD, simply download the installer for the Linux distro of your choice and install it on that drive. Most modern distros know how to cope with external drives.

The reason this is useful for USB sticks is that most of them are a bit shit. Trying to run an operating system off a USB drive typically results in a corrupted drive pretty quickly (if you can get the system to install properly in the first place). The scripts and configuration files in this repository are made to address this by keeping changes to the system in RAM until shutdown and therefore lowering disk I/O.

Installation

You need the following:

  • Computer (duh)
    • ???G of RAM or more
    • Can boot off USB (most computers made after 2003)
  • USB stick (at least ???G)
  • Internet connection
    • During the installation, roughly ??? will be downloaded.

There are a couple manual steps to get started before the installer scripts can take over:

  • Set up a Void live medium
    • Download here: https://voidlinux.org/download/
      • The following instructions assume you downloaded the "base" image
    • Burn to CD/DVD or flash it to USB stick
      • Windows should have a built-in thing for burning ISOs to optical media.
      • You can use something like Win32DiskImager or Rufus for USB sticks.
        • This will delete whats on the stick.
  • Boot into Void live and prepare things
    • Things I cant help you with (sorry):
      • How to boot off CD/USB depends on your computer, so youll have to find out elsewhere.
      • Be aware that Void uses a US keymap until you change it. If your keyboard is different, you might need to look up an image of a US keyboard to find the right keys.
    • If booting off the USB stick you want to install to, use (RAM) option
    • Log in as root, password voidlinux
      • It wont display anything while you type in the password but it will accept it.
    • If you need to use WiFi, run void-installer
      • Set your keyboard layout (optional)
      • Connect to your network
      • Abort the installation (dont touch anything else)
  • Download and run stage 1 of the USB installation script
    • The base image doesnt come with a way to download files so you need to install that first: xbps-install -S wget
      • If it yells at you about updating xbps, do that, then try again
    • wget https://lostcave.ddnss.de/git/BodgeMaster/void-minecraft-usb/raw/branch/master/install-stage1.sh
    • bash install-stage1.sh

The scripts will take it from there, asking you for information and downloading things as needed.

How It Works

//TODO: Add detailed documentation of how the thing works, changes to the boot up process, and whatever other scripts are in here

Files

  • install-stage1.sh: sets up the base system and prepares for installation stage 2
  • install-stage2.sh: continues setting up things after booting into the freshly installed base system
  • opt/: contains files to be installed in /opt/void-usb/
    • grub-config: custom grub config generator (probably not necessary but at this point I dont wanna dig into the default one)
    • system-image: helper script to rebuild the squashfs
  • kernel.d/: kernel hooks to be installed in /etc/kernel.d
  • skel/: files to be added to /etc/skel
    • bashrc: my custom .bashrc
    • user-readme.txt: will be displayed on first login
    • xinitrc: what dis look like?
  • notes_to_self.txt: will disappear once finished