====== Editable Mintstick ======
Following are instructions to partition, format and prepare a USB stick to be able to boot and contain adjustments like additional drivers/packages or configuration files.
===== Partition USB Device =====
Gparted GUI method:
gparted
* delete partitions
* create msdos partition table
* add fat32 partition
* add boot flag
Parted command line method:
umount /dev/sdX1
parted /dev/sdb print
#delete existing partitions
parted /dev/sdb rm 1
parted /dev/sdb rm 2
parted /dev/sdb rm 3
#create new partition
parted /dev/sdb mklabel msdos
parted /dev/sdb mkpart primary fat32 0% 100%
parted /dev/sdb align-check opt 1
parted /dev/sdb set 1 boot on
parted /dev/sdb set 1 lba on
#Format as fat32
mkfs.vfat -F 32 -n 'MINTSTICK' /dev/sdX1
alt:
apt-get install parted
parted --script /dev/sdX mklabel gpt
parted --script --align=optimal /dev/sdX mkpart ESP fat32 1MiB 100%
parted --script /dev/sdX set 1 boot on
mkfs.vfat -n MINTSTICK /dev/sdX1
mount -t vfat /dev/sdX1 /mnt
cd /mnt
uniso < /path/to/isofile.iso
cd ~
umount /mnt
===== Bootloader (MBR) =====
Both syslinux and grub are disk-based boot loaders, and perform similar functions. They are the first software loaded from disk to run. syslinux has pretty much taken a more minimalist approach, whereas GRUB was much more extensive. GRUB also supports different filesystems through the use of a secondary loader.
Ubuntu and its derivatives use both grub and syslinux. GRUB is shown when the ISO image is booted on EFI-capable machine. SYSLINUX is shown when the ISO image is booted on BIOS-only machine.
Plymouth handles the progress dot animation, regardless of GRUB or SYSLINUX is shown.
==== Syslinux ====
Syslinux is FAT filesystem based.
initialise using:
syslinux --install /dev/sdX1
This will alter the boot sector on the disk and copy a file named ldlinux.sys into its root directory.
On boot time, by default, the kernel will be loaded from the image named LINUX in the root of the boot media. This default can be changed, see the section on the syslinux configuration file.
#Manual MBR installation and re-enabling partition boot flag
dd conv=notrunc bs=440 count=1 if=/usr/lib/syslinux/mbr.bin of=/dev/sdX
parted /dev/sdX set 1 boot on
This will write the Syslinux mbr code (mbr.bin) into the master boot record of the drive,
and mark first partition as active (bootable).
Copy a Linux kernel image (like vmlinuz) to the root (/dev/sdX1) of your media.
Lastly, create a 'syslinux.cfg' file in the root of your media (/dev/sdX1) and
enter any configuration options you need/want.
Additional information: https://wiki.archlinux.org/index.php/Syslinux
==== Grub ====
sudo mkdir -p /mnt/usb
sudo mount /dev/sdX1 /mnt/usb
sudo grub-install --target=i386-pc --boot-directory="/mnt/usb/boot" /dev/sdX
EFI installation. Does not install in MBR:
sudo mkdir -p /mnt/usb
sudo mount /dev/sdX1 /mnt/usb
grub-install --target=x86_64-efi --efi-directory=/mnt/usb --bootloader-id=GRUB
===== Copy data =====
sudo mkdir -p /mnt/usb
sudo mount /dev/sdX1 /mnt/usb
sudo mkdir -p /mnt/iso
sudo mount -o loop /tmp/LinuxMint.iso /mnt/iso
sudo cp -av /mnt/iso/* /mnt/usb/