Skip to content

sakkke/mindeb

Repository files navigation

mindeb

Changelog

Features

  • Minimal: The ISO image is about 400MB. This size is half of Archiso.
  • Easy: Installation is just copying the system files. So installable offline as well.
  • Compatible: System follows upstream Debian. Basic firmware and basic middlewares are included by default.

Installation guide

Pre-installation

Login

Login with the following information:

  • Username: mindeb
  • Password: mindeb

Console keyboard layout

List available keyboard layouts:

ls /usr/share/keymaps/*

Set the keyboard layout:

loadkeys {keymap}
  • {keymap} example: jp106

Run shell as root

sudo -s

List disks information

lsblk

Partition the disks

Optionally, destroy data structures:

sgdisk -Z '{disk}'

Partition the disks:

cgdisk '{disk}'
Partitions requirements
  1. The disk must have the EFI system partition and the root partition.
  2. The root partition must have the partition name mindeb.
Partitions example
  1. EFI system partition
  • First sector: default
  • Size in sectors: 300M
  • Hex code or GUID: ef00
  • Partition name: default
  1. Root partition
  • First sector: default
  • Size in sectors: default
  • Hex code or GUID: default
  • Partition name: mindeb

Format the partitions

mkfs.fat -F 32 '{EFI system partition}'
mkfs.ext4 '{Root partition}'
  • {EFI system partition} example: /dev/sda1
  • {Root partion} example: /dev/sda2

Mount the file systems

Mount the root partition to /mnt:

mount '{Root partition}' /mnt

Mount the EFI system partition to /mnt/boot/efi:

mount --mkdir '{EFI system partition}' /mnt/boot/efi

Installation

Install the system files

cp -Ta /run/live/rootfs/10-main.squashfs /mnt
  • /run/live/rootfs/10-main.squashfs is the entry point for the system files to be copied.

Configure the system

fstab

genfstab -U /mnt >> /mnt/etc/fstab

chroot

arch-chroot /mnt

Time

Set the timezone:

ln -fs '/usr/share/zoneinfo/{timezone}' /etc/localtime
  • {timezone} example: UTC

Generate /etc/adjtime:

hwclock --systohc

Localization

Edit /etc/locale.gen and uncomment needed locales.

{locale}
  • {locale} example: en_US.UTF-8 UTF-8

Generate the locales:

locale-gen

Update the default locale:

update-locale LANG='{lang}'
  • {lang} example: en_US.UTF-8

Set the keyboard layout:

dpkg-reconfigure console-data

Network configuration

Edit /etc/hostname.

{hostname}
  • {hostname} example: mindeb

User

Add a user:

adduser '{username}'
  • {username} example: alice

Add a user to sudo group (recommended):

adduser '{username}' sudo

Reboot

Exit the new system:

exit

Restart the machine:

reboot

Build

./bin/mindeb-build

Build requirements

OS: Debian-based Linux distribution Commands:

  • mmdebstrap
  • arch-chroot
  • mkfs.fat
  • mksquashfs
  • xorriso
  • sudo (optional)

Build requirements installation

sudo apt -y install mmdebstrap arch-install-scripts dosfstools squashfs-tools \
  xorriso sudo

Test the ISO image

./bin/mindeb-run

Test requirements

  • qemu-img
  • qemu-system-x86_64
Test requirements installation
sudo apt -y install qemu-utils qemu-system-x86

License

MIT