Difference between revisions of "Archboot"

From ArchWiki
Jump to: navigation, search
(Archboot BETA ISO Release)
(Archboot BETA ISO Release)
Line 191: Line 191:
 
: iso_loop_dev=PARTUUID=XXXX
 
: iso_loop_dev=PARTUUID=XXXX
 
: iso_loop_path=/blah/archboot.iso
 
: iso_loop_path=/blah/archboot.iso
 +
{{bc|1=menuentry "Archboot" --class iso {
 +
loopback loop (hdX,X)/<archboot.iso>
 +
linux (loop)/boot/vmlinuz_x86_64 iso_loop_dev=/dev/sdXX iso_loop_path=/<archboot.iso>
 +
initrd (loop)/boot/initramfs_x86_64.img
 +
}
 +
}}
 
* It supports booting using syslinux's memdisk (only in BIOS mode).
 
* It supports booting using syslinux's memdisk (only in BIOS mode).
 
+
{{bc|1=menuentry "Archboot Memdisk" {
 +
  linux16 /memdisk iso
 +
  initrd16 hd(X,X)/<archboot.iso>
 +
}
 +
}}
 
===How to do a remote installation with ssh?===
 
===How to do a remote installation with ssh?===
 
* During boot all network interfaces will try to obtain an IP address through dhcp.
 
* During boot all network interfaces will try to obtain an IP address through dhcp.

Revision as of 20:27, 21 August 2013

What is Archboot?

  • Archboot is a set of scripts to generate bootable media for CD/USB/PXE.
  • It is designed for installation or rescue operation.
  • It only runs in RAM, without any special filesystems like squashfs, thus it is limited to the RAM which is installed in your system.

Install archboot from the official repositories.

Archboot ISO Releases

Burning Release

Hybrid image file is a standard CD-burnable image and also a raw disk image.

  • Can be burned to CD(RW) media using most CD-burning utilities.
  • Can be raw-written to a drive using 'dd' or similar utilities. This method is intended for use with USB thumb drives.
'dd if=<imagefile> of=/dev/<yourdevice> bs=1M'

Supported boot modes of Archboot media

  • It supports BIOS booting with syslinux.
  • It supports UEFI booting with gummiboot and EFISTUB,
for booting LTS kernels with efilinux-efi .
(only UEFI USB is supported, UEFI CD booting is not supported!)
  • It supports grub's iso loopback support.
variables used (below for example):
iso_loop_dev=UUID=XXXX
iso_loop_path=/blah/archboot.iso
  • It supports booting using syslinux's memdisk (only in BIOS mode).

PXE booting / Rescue system

Download 2013.03 „2k13-R1“ needed files from the directory.

  • vmlinuz_i686 + initramfs_i686.img (i686)
  • vmlinuz_x86_64 + initramfs_x86_64.img(x86_64)
  • vmlinuz_i686_lts + initramfs_i686.img (i686 LTS kernel)
  • vmlinuz_x86_64_lts + initramfs_x86_64.img (x86_64 LTS kernel)
  • For PXE booting add the kernel and initrd to your tftp setup and you will get a running installation/rescue system.
  • For Rescue booting add an entry to your bootloader pointing to the kernel and initrd.

News

2013.03 „2k13-R1“

  • major update/cleanup on all components

General

  • kernel 3.8.4 / LTS kernel 3.0.70
  • pacman 4.0.3 usage
  • RAM recommendations: 768 MB

Kernel changes

  • bump to latest 3.8.x series and bump lts to latest 3.0.x series

Environment changes

  • updated pacman mirrorlist
  • replaced netcfg with netctl
  • removed ide-legacy hook
  • replaced arch_virtio, arch_fw with block hook
  • replaced usbinput with keyboard hook
  • replaced dbus-core with dbus
  • bump to latest mkinitcpio code
  • bump syslinux from 4.x to 5.0
  • removed bind and dnsutils
  • blacklist floppy module during boot

setup changes

  • replaced netcfg network setup with netctl
  • always install netctl instead of netcfg
  • replaced gummiboot-efi with gummiboot
  • removed initscripts compat mode
  • always install systemd-sysvcompat
  • updated gummiboot install routine
  • updated refind install routine
  • removed persistent soundcard and network hack,
systemd handles everything now.
  • no need to add hostname to /etc/hosts anymore

quickinst changes

  • removed initscripts compat mode
  • removed rc.conf hint
  • removed double check on ntfs

History

History of old releases can be found here.

The difference to the archiso install media

  • It provides an additional interactive setup and quickinst script.
  • It contains [core] repository on media.
  • It provides the long time support kernel as boot and installation option.
  • It runs a modified Arch Linux system in initramfs.
  • It is restricted to RAM usage, everything which is not necessary like
man or info pages etc. is not provided.
  • It doesn't mount anything during boot process.

Interactive setup features

  • Media and Network installation mode
  • Changing keymap and consolefont
  • Changing time and date
  • Setup network with netctl
  • Preparing storage disk, like auto-prepare, partitioning, GUID (gpt) support, 4k sector drive support etc.
  • Creation of software raid/raid partitions, lvm2 devices and luks encrypted devices
  • Supports standard linux,raid/raid_partitions,dmraid,lvm2 and encrypted devices
  • Filesystem support: ext2/3/4, btrfs, nilfs2, reiserfs,xfs,jfs,ntfs-3g,vfat
  • Name scheme support: PARTUUID, PARTLABEL, FSUUID, FSLABEL and KERNEL
  • Mount support of grub loopback and memdisk installation media
  • Package selection support
  • Signed package installation
  • hwdetect script is used for preconfiguration
  • Auto/Preconfiguration of framebuffer, uvesafb, kms mode, fstab, mkinitcpio.conf, systemd, crypttab and mdadm.conf
  • Configuration of basic system files
  • Setting root password
  • grub-bios, grub-efi-x86_64, grub-efi-i386, refind-efi-x86_64, gummiboot, efilinux-efi, lilo, extlinux/syslinux, bootloader support

Bootparameters

General boot parameters

  • earlymodules
load modules before hooks are executed
Usage:
earlymodules=<comma-separated-array>
earlymodules=ahci,ehci-hcd
  • disablehooks
disable a hook which is run during bootup
Usage:
disablehooks=<comma-separated-array>
disablehooks=arch_floppy,arch_cdrom
  • root
Using this option will boot you into your specified existing system.
Usage:
root=/dev/<your-root-of-installed-system>
root=/dev/sda3
  • rootflags
Using this option will pass special mount options for your root device
Usage:
rootflags=<comma-separated-array>
rootflags=subvol=root,compress,ssd
  • advanced
This will override advanced hooks running order for your system.
Default order is arch_mdadm,arch_lvm2,arch_encrypt
Advanced hooks are: arch_mdadm,arch_lvm2,arch_encrypt
Usage:
advanced=hook1,hook2,hook3
advanced=arch_encrypt,arch_mdadm
  • arch-addons
You want to load external addon packages or configs into the install environment.
Place external addon packages in /packages directory of your external device.
Place external configs in /config directory of your external device.

Video and framebuffer options

  • uvesafb
enables uvesafb mode during boot and activates setup routine to use it later on installed system.
you need to specify your supported resolution eg.:
uvesafb=<resolution>-<depth>
uvesafb=1024x768-16
  • fbmodule
Loads the fb module you specify durin boot process and activates setup routine to use it later on installed system.
Use it like this fbmodule=<yourmodule>, e.g. fbmodule=cirrusfb

FAQ, Known Issues and limitations

  • Release specific known issues and workarounds are posted in changelog files.
  • Check also the forum threads for posted fixes and workarounds.
  • Why screen stays blank or other weird screen issues happen?
Some hardware doesn't like the KMS activation, use radeon.modeset=0 or i915.modeset=0 on boot prompt.
  • dmraid might be broken on some boards, support is not perfect here.
The reason is there are so many different hardware components out there. At the moment 1.0.0rc16 is included, with latest fedora patchset.
  • grub2 cannot detect correct bios boot order:
It may happen that hd(x,x) entries are not correct, thus first reboot may not work.
Reason: grub cannot detect bios boot order.
Fix: Either change bios boot order or change menu.lst to correct entries after successful boot. This cannot be fixed it is a restriction in grub/grub2!
  • Why is parted used in setup routine, instead of cfdisk in msdos partitiontable mode?
parted is the only linux partition program that can handle all type of things the setup routine offers.
cfdisk cannot handle GPT/GUID nor it can allign partitions correct with 1MB spaces for 4k sector disks.
cfdisk is a nice tool but is too limited to be the standard partitioner anymore.
cfdisk is still included but has to be run in an other terminal.

UEFI hints

Archboot BETA ISO Release

Burning Release

Hybrid image file is a standard CD-burnable image and also a raw disk image.

  • Can be burned to CD(RW) media using most CD-burning utilities.
  • Can be raw-written to a drive using 'dd' or similar utilities. This method is intended for use with USB thumb drives.
'dd if=<imagefile> of=/dev/<yourdevice> bs=1M'

Supported boot modes of Archboot media

  • It supports BIOS booting with syslinux.
  • It supports UEFI booting with gummiboot and EFISTUB.
  • It supports Secure Boot with prebootloader.
  • It supports grub(2)'s iso loopback support.
variables used (below for example):
iso_loop_dev=PARTUUID=XXXX
iso_loop_path=/blah/archboot.iso
menuentry "Archboot" --class iso {
loopback loop (hdX,X)/<archboot.iso>
linux (loop)/boot/vmlinuz_x86_64 iso_loop_dev=/dev/sdXX iso_loop_path=/<archboot.iso>
initrd (loop)/boot/initramfs_x86_64.img
}
  • It supports booting using syslinux's memdisk (only in BIOS mode).
menuentry "Archboot Memdisk" {
   linux16 /memdisk iso
   initrd16 hd(X,X)/<archboot.iso>
}

How to do a remote installation with ssh?

  • During boot all network interfaces will try to obtain an IP address through dhcp.
  • root password is not set by default! If you need privacy during installation set a password.
'ssh root@<yourip>'

News

2013.08 „2k13-R2“

  • major update/cleanup on all components

General

  • kernel 3.10.9
  • pacman 4.1.2 usage
  • RAM recommendations: 512 MB
  • major update/cleanup on all components

Environment changes

  • added UEFI_CD boot support
  • added UEFI Secure boot support
  • added dhcp startup on network interfaces
  • added sshd startup on boot (enables remote installation)
  • added more systemd binaries
  • disable isw and ddf fakeraid activation through mdadm
  • updated syslinux to 6.01
  • updated pacman 4.1.2
  • updated pacman mirrorlist
  • synced with mkinitcpio-0.15
  • readded dnsutils
  • change pacman-key running to systemd service
  • change activation of mdadm,lvm2 devices, to lvm2 and mdadm_udev hooks
  • removed arch_addons
  • removed arch_advanced_root
  • removed LTS kernel
  • removed efilinux support
  • removed lilo
  • removed xinetd
  • removed arch_addons
  • removed LTS kernel
  • removed efilinux support
  • removed lilo
  • removed xinetd

setup changes

  • added UEFI secure boot support
  • added f2fs support
  • added UEFI syslinux support
  • added [testing] repository support on network installation
  • added sync of updated mirrorlist from servers on network installation
  • added RAID5/6 support for btrfs
  • added rw parameter on bootloader configs
  • added download latest mirrorlist first on network installation
  • added rw flag to bootloaders
  • added cgroup_disable=memory to bootloaders
  • added isw and ddf fakeraid detection support through mdadm
  • fixed password dialog on luks encryption
  • fixed grub loopback mounting
  • fixed create msdos partition table on partitionable raid
  • fixed only run dmraid_update if dmraid devices are used
  • fixed netctl errors are shown on journalctl
  • new tz and km routine using systemd utilities
  • disable [extra] repository on network installation by default
  • renamed ftp/http install method to network method
  • replaced df calls with findmnt
  • replaced device listing code using lsblk
  • replaced mdadm hook with mdadm_udev hook
  • removed arch_addons
  • removed netcfg hack
  • removed LTS support
  • removed efilinux support
  • removed lilo support

quickinst changes

  • added f2fs support
  • removed LTS support

The difference to the archiso install media

  • It provides an additional interactive setup and quickinst script.
  • It runs a modified Arch Linux system in initramfs.
  • It is restricted to RAM usage, everything which is not necessary like
man or info pages etc. is not provided.
  • It doesn't mount anything during boot process.
  • It supports remote installation through ssh.

Interactive setup features

  • Media and Network installation mode
  • Changing keymap and consolefont
  • Changing time and date
  • Setup network with netctl
  • Preparing storage disk, like auto-prepare, partitioning, GUID (gpt) support, 4k sector drive support etc.
  • Creation of software raid/raid partitions, lvm2 devices and luks encrypted devices
  • Supports standard linux,raid/raid_partitions,dmraid,lvm2 and encrypted devices
  • Filesystem support: ext2/3/4, btrfs, f2fs, nilfs2, reiserfs,xfs,jfs,ntfs-3g,vfat
  • Name scheme support: PARTUUID, PARTLABEL, FSUUID, FSLABEL and KERNEL
  • Mount support of grub(2) loopback and memdisk installation media
  • Package selection support
  • Signed package installation
  • hwdetect script is used for preconfiguration
  • Auto/Preconfiguration of framebuffer, uvesafb, kms mode, fstab,mkinitcpio.conf, systemd, crypttab and mdadm.conf
  • Configuration of basic system files
  • Setting root password
  • grub(2) (BIOS and UEFI), refind-efi, gummiboot, syslinux (BIOS and UEFI) bootloader support

Bootparameters

General boot parameters

  • earlymodules
load modules before hooks are executed
Usage:
earlymodules=<comma-separated-array>
earlymodules=ahci,ehci-hcd
  • disablehooks
disable a hook which is run during bootup
Usage:
disablehooks=<comma-separated-array>
disablehooks=arch_floppy,arch_cdrom
  • root
Using this option will boot you into your specified existing system.
Usage:
root=/dev/<your-root-of-installed-system>
root=/dev/sda3
  • rootflags
Using this option will pass special mount options for your root device
Usage:
rootflags=<comma-separated-array>
rootflags=subvol=root,compress,ssd

Video and framebuffer options

  • ati/radeon, intel and nvidia cards will switch to KMS mode during boot.
  • uvesafb
enables uvesafb mode during boot and activates setup routine to use it later on installed system.
you need to specify your supported resolution eg.:
uvesafb=<resolution>-<depth>
uvesafb=1024x768-16
  • fbmodule
Loads the fb module you specify durin boot process and activates setup routine to use it later on installed system.
Use it like this fbmodule=<yourmodule>, e.g. fbmodule=cirrusfb

FAQ, Known Issues and limitations

  • Release specific known issues and workarounds are posted in changelog files.
  • Check also the forum threads for posted fixes and workarounds.
  • Why screen stays blank or other weird screen issues happen?
Some hardware doesn't like the KMS activation, use radeon.modeset=0 or i915.modeset=0 on boot prompt.
  • dmraid/fakeraid might be broken on some boards, support is not perfect here.
The reason is there are so many different hardware components out there. At the moment 1.0.0rc16 is included, with latest fedora patchset, development has been stopped.
mdadm supports some isw and ddf fakeraid chipsets, assembling during boot is deactivated in /etc/mdadm.conf!
  • grub2 cannot detect correct bios boot order:
It may happen that hd(x,x) entries are not correct, thus first reboot may not work.
Reason: grub cannot detect bios boot order.
Fix: Either change bios boot order or change menu.lst to correct entries after successful boot. This cannot be fixed it is a restriction in grub2!
  • Why is parted used in setup routine, instead of cfdisk in msdos partitiontable mode?
parted is the only linux partition program that can handle all type of things the setup routine offers.
cfdisk cannot handle GPT/GUID nor it can allign partitions correct with 1MB spaces for 4k sector disks.
cfdisk is a nice tool but is too limited to be the standard partitioner anymore.
cfdisk is still included but has to be run in an other terminal.

Bugs

Arch Linux Bugtracker

Links

Restore Usbstick

Take care about which device actually is your USB stick. The next command will render all data on /dev/sdX inaccessible.

  • First, wipe the bootsector of the USB stick:
wipefs -a /dev/sdX
  • Then, create a new FAT32 partition on the stick and write a FAT32 filesystem on it (vfat or type b in fdisk terminology):
fdisk /dev/sdX <<EOF
n
p
1

t
b
w
EOF

mkdosfs -F32 /dev/sdX1

Howto: Create image files

(Quick regeneration of installation media with latest available core packages)

Requirements

  • x86_64 architecture
  • ~ 3GB free space on disk

Create archboot chroots

# install archboot
pacman -S archboot
mkdir <x86_64_chroot>
pacman --root "<x86_64_chroot>" -S base --noconfirm --noprogressbar
mkdir <i686_chroot>
linux32 pacman --root "<i686_chroot>" -S base --noconfirm --noprogressbar
  • Enter archboot x86_64 container:
systemd-nspawn --capability=CAP_MKNOD -M $1-$(uname -m) -D <x86_64_chroot>
  • Enter archboot i686 container:
linux32 systemd-nspawn --capability=CAP_MKNOD -M $1-$(uname -m) -D <i686_chroot>

Install archboot and update to latest packages

# install in both chroots archboot:
pacman -S archboot
# update in both chroots to latest available packages
pacman -Syu

Generate images

# run in both chroots (needs quite some time ...)
archboot-allinone.sh -t
# put the generated tarballs in one directory and run (needs quite some time ...)
archboot-allinone.sh -g
  • Finished you get a bunch of images.

Have fun! tpowa (Archboot Developer)