{"id":13602305,"url":"https://github.com/laurent85v/archuseriso","last_synced_at":"2025-04-11T08:32:11.507Z","repository":{"id":40441655,"uuid":"184607780","full_name":"laurent85v/archuseriso","owner":"laurent85v","description":"A set of bash script programs to create bootable Arch Linux images and to create bootable USB flash drives with a desktop environment. ","archived":false,"fork":false,"pushed_at":"2025-02-04T10:14:25.000Z","size":1878,"stargazers_count":235,"open_issues_count":2,"forks_count":29,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-02-04T11:23:06.275Z","etag":null,"topics":["archlinux","encryption","liveusb","persistence","rescue","zfs"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/laurent85v.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.rst","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-02T15:40:45.000Z","updated_at":"2025-02-04T10:14:21.000Z","dependencies_parsed_at":"2023-02-15T10:31:03.873Z","dependency_job_id":"a3eab212-9436-41ea-8638-0e07af8fffd9","html_url":"https://github.com/laurent85v/archuseriso","commit_stats":null,"previous_names":[],"tags_count":100,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laurent85v%2Farchuseriso","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laurent85v%2Farchuseriso/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laurent85v%2Farchuseriso/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laurent85v%2Farchuseriso/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/laurent85v","download_url":"https://codeload.github.com/laurent85v/archuseriso/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248361603,"owners_count":21090939,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["archlinux","encryption","liveusb","persistence","rescue","zfs"],"created_at":"2024-08-01T18:01:19.738Z","updated_at":"2025-04-11T08:32:06.494Z","avatar_url":"https://github.com/laurent85v.png","language":"Shell","funding_links":[],"categories":["archlinux"],"sub_categories":[],"readme":"Description\n===========\n\nSet of bash script programs for building bootable images of Arch Linux and for creating bootable USB disks or thumb drives of Arch Linux with a desktop environment.\n\nA list of build profiles of the main desktop environments is provided.\n \n* AUR repository https://aur.archlinux.org/packages/archuseriso\n* ISO hybrid image for DVDs, USB disks and thumb drives http://dl.gnutux.fr/archuseriso/iso\n* Disk image for USB disks and thumb drives http://dl.gnutux.fr/archuseriso/img\n* iPXE Network Boot image http://dl.gnutux.fr/archuseriso/ipxe\n* ZFS packages http://dl.gnutux.fr/archuseriso/zfsonlinux\n\nArchuseriso is based on Archiso https://wiki.archlinux.org/title/Archiso\n\nFeatures\n--------\n\n* 10 desktop environments build profiles\n* 16 languages\n* live usb with data persistence\n* choice of filesystem among Ext4 / Bcachefs / Btrfs / F2FS / ZFS file\n* data encryption\n* bootloader among syslinux, systemd-boot, Grub and rEFInd\n* ISO images and USB disk images\n* ZFS support\n\nPre-configured build profiles\n-----------------------------\n\n* Console\n* Cinnamon\n* Cutefish\n* Deepin\n* Gnome\n* i3\n* Kde Plasma\n* LXQt\n* Mate\n* Sway\n* Xfce\n\nInstallation\n------------\n\nThe recommended installation method from the AUR repository [archuseriso](https://aur.archlinux.org/packages/archuseriso/)\n\nAlternative method from the git repository:\n\n      sudo pacman --needed -S git arch-install-scripts bash dosfstools e2fsprogs erofs-utils grub libarchive libisoburn make mtools parted squashfs-tools syslinux\n      git clone https://github.com/laurent85v/archuseriso.git\n      sudo make -C archuseriso install\n\nOnline images at http://dl.gnutux.fr/archuseriso include archuseriso. The live system can be used for building your disk image without having to install archuseriso on your computer.\n\nNotice that archuseriso was designed for Arch Linux and has not been tested on Arch Linux derivatives.\n\nBuilding iso image and disk image\n---------------------------------\n\nSynopsis:\n\n      aui-mkiso [options] \u003cprofile path\u003e\n\nBuild a Xfce iso image with default options. The following commands are equivalent:\n\n      sudo aui-mkiso xfce\n      sudo aui-mkiso /usr/share/archuseriso/profiles/xfce/\n\nUsing the Kde Plasma profile with the German language option\n\n      sudo aui-mkiso --language=de kde\n\nUsing the Gnome profile with options for adding packages from the Arch Linux repositories and from a user directory containing built AUR packages: \n\n      sudo aui-mkiso --add-pkg=firefox-ublock-origin,ntop --pkg-dir=~/mypackages gnome\n\nUsing the Xfce profile for building a disk image:\n\n      sudo aui-mkiso -m 'img' xfce\n\nHelp [Writing Disc Image](https://wiki.archlinux.org/title/USB_flash_installation_medium#Using_basic_command_line_utilities) and [Burning DVD](https://wiki.archlinux.org/title/Optical_disc_drive#Burning)\n\n\n\nCreating a bootable USB disk or thumb drive with data persistence\n-----------------------------------------------------------------\nWrites an archuseriso iso image to a usb disk image or thumb drive and enables data persistence on the device.\n\nSynopsis:\n\n    aui-mkusb [options] \u003ciso image\u003e \u003cusb device\u003e\n\nExample:\n\n    sudo aui-mkusb aui-xfce-linux_5_7_10-0724-x64.iso /dev/sdc\n\nDisk partitioning:\n\n    GPT layout\n    Partition   Filesystem                 Content\n    #1          Ext4                       Squashfs image\n    #2          EFI FAT                    Boot\n    #3          Ext4|Bcachefs|Btrfs|F2FS   Persistence\n\n#### Btrfs filesystem details\n\nFor the Btrfs filesystem two separate subvolumes are created for data persistence: `rootfs` and `home`.\n\nCreating a bootable USB disk or thumb drive without live mode\n-------------------------------------------------------------\nUncompresses an archuseriso iso image to a usb disk or thumb drive, the procedure acting as a standard installation on the device. The live system settings are reset to Arch Linux defaults, except for the journal which remains configured in volatile mode to limit disk I/O. The resulting system on the usb device makes no difference with an standard installation on an internal hard drive with the benefits of removability.\n\nThis mode is suitable for external ssd drives mainly. For a thumb drive prefer the live mode with data persistence described in the previous paragraph.\n\nSynopsis:\n\n    aui-mkinstall [options] \u003ciso image\u003e \u003cusb device\u003e\n\nExample:\n\n    sudo aui-mkinstall aui-xfce-linux_5_10_9-0121-x64.iso /dev/sdc\n\n\nThe disk partitioning:\n\n    GPT layout\n    Partition   Filesystem type   Content\n    #1          EFI FAT           Boot\n    #2          Ext4|Brtfs|F2FS   System\n\n\nDisk image\n----------\nThe GPT disk image format is a bootable USB disk image with data persistence builtin to write directly to a USB disk or thumb drive.\n\nWrite the disk image to the usb device, e.g. with a usb key /dev/sdc:\n\n    # cat aui-xfce-linux_6_2_8-fr_FR-0327-x64.img \u003e /dev/sdc\n\nImportant notice: as the disk image and the usb disk do not have the same size it is necessary to correct the size of the gpt partition table of the usb disk. parted, fdisk and gparted can do that.\n\nUsing parted, notice the 3 dashes of the command option `---pretend-input-tty`:\n\n    echo Fix | sudo parted /dev/sdc ---pretend-input-tty print\n\nThe partition size for data persistence of the disk image was configured to only 128 MiB to reduce the size of the disk image created by the original build process. Resize the partition to the desired size for data persistence. gparted can do that easily.\n\nHelp [Writing Disk Image](https://wiki.archlinux.org/title/USB_flash_installation_medium#Using_basic_command_line_utilities)\n\niPXE Network Bootloader\n-----------------------\nNetwork boot the latest live Xfce desktop from the Archuseriso server.\n \nPick one of the iPXE image at http://dl.gnutux.fr/archuseriso/ipxe\n\n* aui-ipxe.iso cdrom image for legacy bios\n* aui-ipxe.img usb key image for legacy bios\n* aui-ipxe-efi.iso cdrom image for x64 uefi platform\n* aui-ipxe-efi.img usb key image for x64 uefi platform\n* aui-ipxe.efi x64 UEFI binary\n\nWrite the relevant image onto the media. Boot the media to load the iPXE boot menu and start the live Xfce desktop. \n\nFor a laptop and Wifi connectivity, use the USB tethering feature of a smartphone for internet connectivity. iPXE native Wifi support is not implemented. \n\nZFS support\n-----------\nTo add ZFS support to an iso image two methods are available. The `--zfs-support` command option which builds the zfs packages during the build process of the iso image. Or the `--pkg-dir \u003cpath\u003e` command option that points to a directory containing the additional package files to install to the image in .pkg.tar.zst archive format.\n\nExample for the first method:\n\n    sudo aui-mkiso --zfs-support xfce\n\n#### Building ZFS packages\n\nTo build the `zfs-utils`, `zfs-linux` and `zfs-linux-headers` packages against the current linux kernel use the `aui-buildzfs` bash script program.\n\n      sudo aui-buildzfs\n\n#### ZFS Root File System\n\nRequires an iso image with zfs support. \n\n      sudo aui-mkinstall --rootfs=zfs --username=foobar aui-xfce-linux_6_0_9-1123-x64.iso /dev/sdc\n\nUsing Docker for running archuseriso\n------------------------------------\nDownload the `Dockerfile` file from the archuseriso sources. From a working directory containing the Dockerfile run the docker build command for building the archuseriso docker image.\n\n    sudo docker build -t archuseriso .\n\nThe archuseriso docker image is now created. To run archuseriso in a docker container use:\n\n    sudo docker run --privileged --rm -it archuseriso\n    [root@4dd3aab1018b /]# pacman -Q archuseriso\n\nLimitations: Building zfs packages from the docker container does not work. \n\nTesting\n-------\nUse `aui-run` for testing a bootable iso image or a bootable usb key in a qemu virtual machine.\n\nExamples:\n\ntesting an iso image in bios legacy mode\n\n      aui-run -i aui-xfce-linux_5_10_7-0116-x64.iso\n\ntesting an iso image in uefi mode\n\n      aui-run -u -i aui-xfce-linux_5_10_7-0116-x64.iso\n\ntesting a thumb drive /dev/sdc in bios legacy mode\n\n      sudo aui-run -d /dev/sdc\n\ntesting a thumb drive /dev/sdc in uefi mode\n\n      sudo aui-run -u -d /dev/sdc\n\n\nArchuseriso bash script programs list\n-------------------------------------\n\n* `aui-mkiso` program for building a bootable iso image or a bootable disk image using a build profile.\n* `aui-mkusb` program for creating a bootable USB disk or thumb drive with data persistence.\n* `aui-mkinstall` program for creating a bootable USB disk or thumb drive acting as a standard installed Arch Linux system on a external hard drive.\n* `aui-mkhybrid` program for creating a bootable USB drive or thumb drive combining the live feature and the installed system on the same media.\n* `aui-buildzfs` program for building the ZFS packages from the upsteam Openzfs sources.\n* `aui-run` program for testing an bootable iso image or a bootable usb disk in a qemu virtual machine.\n\nArchuseriso documentation\n-------------------------\nThe archuseriso documentation is limited to this readme. You can refer to the Archiso documentation which describes the details of the iso image architecture as most also applies to archuseriso which is a derivative.\n\nFiles of interest:\n\n* profiles/\u0026lt;profile name\u0026gt;/packages.x86_64: list of packages to install\n* profiles/\u0026lt;profile name\u0026gt;/profiledef.sh: profile configuration\n\nKnown issues\n------------\nrEFInd Boot Manager may fail on some firmware.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaurent85v%2Farchuseriso","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flaurent85v%2Farchuseriso","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaurent85v%2Farchuseriso/lists"}