diff --git a/docs/css/extra.css b/docs/css/extra.css index cb246ef..ab82570 100644 --- a/docs/css/extra.css +++ b/docs/css/extra.css @@ -111,3 +111,7 @@ figure figcaption { .md-icon, .md-source__repository { color: #ffffff; } + +.admonition p { + font-size: 120%; + } diff --git a/docs/images/usb/boot-device.jpg b/docs/images/usb/boot-device.jpg new file mode 100644 index 0000000..f23c335 Binary files /dev/null and b/docs/images/usb/boot-device.jpg differ diff --git a/docs/images/usb/screenshots/haiku-boot.png b/docs/images/usb/screenshots/haiku-boot.png new file mode 100644 index 0000000..46fbc85 Binary files /dev/null and b/docs/images/usb/screenshots/haiku-boot.png differ diff --git a/docs/images/usb/screenshots/haiku.png b/docs/images/usb/screenshots/haiku.png new file mode 100644 index 0000000..e782af6 Binary files /dev/null and b/docs/images/usb/screenshots/haiku.png differ diff --git a/docs/images/usb/screenshots/ungoogled-chromium.png b/docs/images/usb/screenshots/ungoogled-chromium.png new file mode 100644 index 0000000..3f0d7d2 Binary files /dev/null and b/docs/images/usb/screenshots/ungoogled-chromium.png differ diff --git a/docs/usb/index.md b/docs/usb/index.md index f98a369..bfb6976 100644 --- a/docs/usb/index.md +++ b/docs/usb/index.md @@ -1,14 +1,15 @@ # The Mostly Harmless USB disk -
- -
+
+ +
The answer to the ultimate free software problem: "How do I liberate or fix a computer when I don't always have a bootable USB disk handy?"
-More details about the MH-USB: +Details and rationale for the MH-USB: ## Operating Systems @@ -19,172 +20,354 @@ installation: ### Alpine -image -
-image +
+ image +
+ +!!! tldr "About" + Alpine Linux is a security-oriented, lightweight Linux distribution + based on musl libc and busybox. + + Alpine Linux is an independent, non-commercial, general purpose + Linux distribution designed for power users who appreciate security, + simplicity and resource efficiency. + +
+ image +
- Website: - OS Image: - Path on USB: `/OS/alpine-standard-3.15.0-x86_64.iso` +- Type: **Live + Installer**
### Debian GNU/Linux -image -
-image +
+ image +
+ +!!! tlr "About" + Debian is a complete Free Operating System! Also known as Debian + GNU/Linux, it is a GNU/Linux distribution composed of free and + open-source software. + +
+ image +
- Website: - OS Image: - Path on USB: `/OS/debian-live-11.2.0-amd64-cinnamon.iso` +- Type: **Live + Installer**
### Devuan GNU+Linux -image -
-image +
+ image +
+ +!!! tldr "About" + Devuan GNU+Linux is a fork of Debian without systemd that allows + users to reclaim control over their system by avoiding unnecessary + entanglements and ensuring Init Freedom. + +
+ image +
- Website: - OS Image: - Path on USB: `/OS/devuan_chimaera_4.0.0_amd64_desktop-live.iso` +- Type: **Live + Installer**
### Fedora -image -
-image +
+ image +
+ +!!! tldr "About" + Fedora Workstation is a polished, easy to use operating system for + laptop and desktop computers, with a complete set of tools for + developers and makers of all kinds. + +
+ image +
- Website: - OS Image: - Path on USB: `/OS/Fedora-Workstation-Live-x86_64-35-1.2.iso` +- Type: **Live + Installer**
### GNU Guix -image -
-image +
+ image +
+ +!!! tldr "About" + Guix is an advanced distribution of the GNU operating system + developed by the GNU Project—which respects the freedom of computer + users. + + Guix supports transactional upgrades and roll-backs, + unprivileged package management, and more. When used as a standalone + distribution, Guix supports declarative system configuration for + transparent and reproducible operating systems. + +
+ image +
- Website: - OS Image: - Path on USB: `/OS/guix-system-install-1.3.0.x86_64-linux.iso` +- Type: **Live + Installer**
### Haiku -image -
-image +
+> image +
+ +!!! tldr "About" + Haiku is an open-source operating system that specifically targets + personal computing. Inspired by the BeOS, Haiku is fast, simple to use, + easy to learn and yet very powerful. + + Specifically targeting personal computing, Haiku is a fast, efficient, + simple to use, easy to learn, and yet very powerful system for computer + users of all levels. + + Additionally, Haiku offers something over other + open source platforms which is quite unique: The project consists of a + single team writing everything from the kernel, drivers, userland + services, tool kit, and graphics stack to the included desktop + applications and preflets. + +
+ image +
- Website: - OS Image: - Path on USB: `/OS/haiku-r1beta3-x86_64-anyboot.iso` +- Type: **Live + Installer**
### LibreELEC +
image +
+ +!!! tldr "About" + LibreELEC is a lightweight ‘Just enough OS’ Linux distribution + purpose-built for Kodi on current and popular mediacentre hardware. + + Kodi is a media center and entertainment hub that brings all your + digital media together into a beautiful and user friendly package. It is + 100% free and open source, very customisable and runs on a wide variety + of devices. It is supported by a dedicated team of volunteers and a huge + community. - Website: - OS Image: - Path on USB: `/OS/LibreELEC-Generic.x86_64-10.0.1.img` +- Type: **Live + Installer**
### Manjaro -image -
-image +
+ image +
+ +!!! tldr "About" + Manjaro is a user-friendly Linux distribution based on the + independently developed Arch operating system. Within the Linux + community, Arch itself is renowned for being an exceptionally fast, + powerful, and lightweight distribution that provides access to the very + latest cutting edge - and bleeding edge - software. + + Developed in Austria, France, and Germany, Manjaro provides all the + benefits of the Arch operating system combined with a focus on + user-friendliness and accessibility. Manjaro follows Archlinux and + officially only offers a 64 bit version. Manjaro is suitable for + newcomers as well as experienced Linux users. + +
+ image +
- Website: - OS Image: - Path on USB: `/OS/manjaro-kde-21.2.1-220103-linux515.iso` +- Type: **Live + Installer**
### netboot.xyz -image -
-image +
+ image +
+ +!!! tldr "About" + netboot.xyz lets you PXE boot various operating system installers or + utilities from a single tool over the network. This lets you use one + media for many types of operating systems or tools. The iPXE project is + used to provide a user friendly menu from within the BIOS that lets you + easily choose the operating system you want along with any specific + types of versions or bootable flags. + + You can remote attach the ISO to servers, set it up as a rescue option + in Grub, or even set up your home network to boot to it by default so + that it's always available. + +
+ image +
- Website: - OS Image: - Path on USB: `/OS/netboot.xyz.iso` +- Type: **Live + Installer**
### Open Media Vault -image -
-image +
+ image +
+ +!!! tldr "About" + openmediavault is the next generation network attached storage (NAS) + solution based on Debian Linux. It contains services like SSH, (S)FTP, + SMB/CIFS, DAAP media server, RSync, BitTorrent client and many more. + Thanks to the modular design of the framework it can be enhanced via + plugins. + +
+ image +
- Website: - OS Image: - Path on USB: `/OS/openmediavault_5.6.13-amd64.iso` +- Type: **Installer**
### OpenWRT -image -
-image +
+ image +
+ +!!! tldr "About" + The OpenWrt Project is a Linux operating system targeting embedded + devices. Instead of trying to create a single, static firmware, OpenWrt + provides a fully writable filesystem with package management. This frees + you from the application selection and configuration provided by the + vendor and allows you to customize the device through the use of + packages to suit any application. + +
+ image +
- Website: - OS Image: - Path on USB: `/OS/openwrt-21.02.0-x86-64-generic-ext4-combined.img` +- Type: **Live + Installer**
### Proxmox VE -image -
-image +
+ image +
+ +!!! tldr "About" + Proxmox VE is a complete, open-source server management platform for + enterprise virtualization. It tightly integrates the KVM hypervisor and + Linux Containers (LXC), software-defined storage and networking + functionality, on a single platform. With the integrated web-based user + interface you can manage VMs and containers, high availability for + clusters, or the integrated disaster recovery tools with ease. + +
+ image +
- Website: - OS Image: - Path on USB: `/OS/proxmox-ve_7.1-2.iso` +- Type: **Installer**
### Qubes OS -image -
-image +
+ image +
+ +!!! tldr "About" + Qubes OS is a free and open-source, security-oriented operating + system for single-user desktop computing. Qubes OS leverages Xen-based + virtualization to allow for the creation and management of isolated + compartments called qubes. + +
+ image +
- Website: - OS Image: - Path on USB: `/OS/Qubes-R4.0.4-x86_64.iso` +- Type: **Installer**
### RaspberryPi OS -image +
+ image +
+ +!!! tldr "About" + Your Raspberry Pi needs an operating system to work. This is it. + Raspberry Pi OS (previously called Raspbian) is the official supported + operating system. - Website: - OS Image: @@ -195,52 +378,101 @@ installation: ### System Rescue -image -
-image +
+ image +
+ +!!! tldr "About" + SystemRescue (formerly known as SystemRescueCd) is a Linux system + rescue toolkit available as a bootable medium for administrating or + repairing your system and data after a crash. It aims to provide an easy + way to carry out admin tasks on your computer, such as creating and + editing the hard disk partitions. It comes with a lot of Linux system + utilities such as GParted, fsarchiver, filesystem tools and basic tools + (editors, midnight commander, network tools). It can be used for both + Linux and windows computers, and on desktops as well as servers. This + rescue system requires no installation as it can be booted from a CD/DVD + drive or USB stick, but it can be installed on the hard disk if you + wish. The kernel supports all important file systems (ext4, xfs, btrfs, + vfat, ntfs), as well as network filesystems such as Samba and NFS. + +
+ image +
- Website: - OS Image: - Path on USB: `/OS/systemrescue-8.06-amd64.iso` +- Type: **Live**
### Tails -image -
-image +
+ image +
+ +!!! tldr "About" + Tails is a portable operating system + that protects against surveillance and censorship. + +
+ image +
- Website: - OS Image: - Path on USB: `/OS/tails-amd64-4.25.img` +- Type: **Live + Installer**
### Trisquel GNU/Linux -image -
-image +
+ image +
+ +!!! tldr "About" + Trisquel GNU/Linux is a fully free operating system for home users, + small enterprises and educational centers. + +
+ image +
- Website: - OS Image: - Path on USB: `/OS/trisquel-mini_9.0.1_amd64.iso` +- Type: **Live + Installer**
### Ubuntu -image -
-image +
+ image +
+ +!!! tldr "About" + Ubuntu comes with everything you need to run your organisation, + school, home or enterprise. All the essential applications, like an + office suite, browsers, email and media apps come pre-installed and + thousands more games and applications are available in the Ubuntu + Software Centre. + +
+ image +
- Website: - OS Image: - Path on USB: `/OS/ubuntu-20.04.3-desktop-amd64.iso` +- Type: **Live + Installer**
@@ -248,7 +480,13 @@ installation: ### The Raspberry Pi Imager -image +
+ image +
+ +!!! tldr "About" + The Raspberry Pi Imager is the quick, safe and easy way to install an + operating systems to a microSD card or USB disk. - Website: - Image: @@ -256,6 +494,30 @@ installation: ### Ungoogled Chromium +!!! tldr "About" + ungoogled-chromium is Google Chromium, sans dependency on Google web + services. It also features some tweaks to enhance privacy, control, and + transparency (almost all of which require manual activation or + enabling). + + ungoogled-chromium retains the default Chromium experience as closely as + possible. Unlike other Chromium forks that have their own visions of a + web browser, ungoogled-chromium is essentially a drop-in replacement for + Chromium. + + ungoogled-chromium addresses these issues in the following ways: + + - Remove all remaining background requests to any web services while building and running the browser + - Remove all code specific to Google web services + - Remove all uses of pre-made binaries from the source code, and replace them with user-provided alternatives when possible. + - Disable features that inhibit control and transparency, and add or + modify features that promote them (these changes will almost always + require manual activation or enabling). + +
+ image +
+ - Website: - Image: diff --git a/docs/usb/start.md b/docs/usb/internals.md similarity index 100% rename from docs/usb/start.md rename to docs/usb/internals.md diff --git a/docs/usb/use.md b/docs/usb/use.md index e69de29..b6ffa7d 100644 --- a/docs/usb/use.md +++ b/docs/usb/use.md @@ -0,0 +1,107 @@ +# Using the MH-USB Disk + +## Organisation of the MH-USB Disk + +The files on the MH-USB disk are arranged as follows: + +``` +MH-USB/ + /OS/ <-- Contains OS Images + /Tools/ <-- Contains some tools and software + /RPi/ <-- OS Images for the Raspberry Pi + /ventoy/ <-- Config files for the Ventoy/Grub2 bootloader + (Important - do not modify!) +``` + +The MH-USB partition of the USB disk is formatted with [exFAT](https://en.wikipedia.org/wiki/ExFAT). +This enables universal access to the data on any operating system that supports exFAT. + +## Booting on physical computer + +You boot the USB disk on a physical computer (dekstop, laptop, single-board +computer or laptop) by simply plugging it in and choosing it as a boot device. + +The MH-USB runs the [GRUB2](https://www.gnu.org/software/grub/) boot +loader and will boot just fine with a "legacy" BIOS or UEFI BIOS. + +The USB make would show up as a USB disk called "Generic Flash Drive": + +
+ +
+ +Just choose it as the boot device and you will be greeted by the MH-USB +boot screen. + +## Booting on a virtual machine + +You can also boot the USB using a virtual machine. On a GNU/Linux +system, one can use QEMU to boot the USB. + +First check the device name assigned to the USB disk. A quick way to +check it out would be to use the `lsblk` command like this: + +``` shell-session +$ lsblk -o NAME,SIZE,HOTPLUG -P -d | grep "HOTPLUG=\"1\"" | cut -d" " -f1 +NAME="sdb" +``` + +The command above will list out all the USB disks attached to your +computer. (Actually, all "HOTPLUG" storage devices - which includes USB +storage.) + +### Booting a virtual machine with SeaBIOS + +To boot the USB disk using QEMU + SeaBIOS, install the `qemu` package +from your GNU/Linux OS repository and then run: + +``` shell-session +$ DEVICE=`lsblk -o NAME,SIZE,HOTPLUG -P -d | grep "HOTPLUG=\"1\"" | cut -d"\"" -f2` +$ sudo qemu-system-x86_64 \ + -enable-kvm -rtc base=localtime -m 2G -vga std \ + -drive file=/dev/$DEVICE,readonly=on,cache=none,format=raw,if=virtio +``` + +This will boot the USB via QEMU and show you the boot screen in a popup window. + +### Booting a virtual machine with a UEFI BIOS + +If you want to try booting the USB with QEMU with the `tianocore` UEFI BIOS, first install the OVMF +(Open Virtual Machine Firmware) packages. On Debian and Debian-based distributions run: + +``` shell-session +# apt-get install ovmf +$ BIOS="/usr/share/qemu/OVMF.fd" +``` + +On Archlinux-based distributions run: + +``` shell-session +# pacman -S edk2-ovmf +$ BIOS="/usr/share/edk2-ovmf/x64/OVMF.fd" +``` + +```bash +$ DEVICE=`lsblk -o NAME,SIZE,HOTPLUG -P -d | grep "HOTPLUG=\"1\"" | cut -d"\"" -f2` +$ sudo qemu-system-x86_64 \ + -bios $BIOS \ + -enable-kvm -rtc base=localtime -m 2G -vga std \ + -drive file=/dev/$DEVICE,readonly=on,cache=none,format=raw,if=virtio +``` + +## Writing an image to another USB drive + +While a multi-boot USB is nice, there might be times when you want to write an OS image to another +USB disk. The MH-USB includes the "RaspberryPi Imager" (`rpi-imager`) tool to help you write an OS +image to a USB disk safely and quickly. + +You can run the the `rpi-imager` directly from the USB. Insert the MH-USB into a GNU/Linux (or +Windows) computer and mount it. In the `Tools/` directory on the USB, you will see binaries for the +Raspberry Pi imager. You can use it to write any of the bootable operating system images to another +USB. + +*[TODO: Include more details and screenshots!]* + +## Working with Raspberry Pi images + +*[TODO: Include details with screenshots]* diff --git a/mkdocs.yml b/mkdocs.yml index d80d6fd..080a6ab 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -36,10 +36,10 @@ nav: - (LC230) User Guide: lc230/user-guide.md - (LC230) Troubleshooting: lc230/troubleshooting.md - MH-USB: - - (MHUSB) Introduction: usb/index.md - - (MHUSB) Getting Started: usb/start.md + - (MHUSB) About & Contents: usb/index.md - (MHUSB) Using the USB disk: usb/use.md - (MHUSB) Add / Update images: usb/update.md + - (MHUSB) Internals: usb/internals.md - (MHUSB) Advanced Options: usb/advanced.md - (MHUSB) Troubleshooting: usb/troubleshooting.md - Routers: