====== [hemmerling] Booting from Devices ====== Related page: *[[debian.html|Debian Linux 1/4]]. *[[ddl.html|Device Description Languages and Device Parameterization]]. *[[unix.html|Unix 1/12]]. *[[unix02.html|Unix 2/12 - Linux & BSD Distributions]]. *[[unix03.html|Unix 3/12 - Unix Boot Loaders, Unix Build Systems, Unix Installers and Linux & BSD Implementors]]. ===== 1 Boot by an Installation Medium ( CD / DVD, Memory Sticks ) ===== ==== 1.1 Creation of a CD / DVD as Installation Medium ==== *[[datastorage.html|Data Storage on CD, DVD, Blue-Ray, Harddisk, Floppy Disk, Zip Disk, Memory Cards, Memory Sticks, Tape...]] - "Software for CD / DVD / BlueRay Recording". ==== 1.2 Creation & Management of Memory Sticks and Memory Cards as Installation Medium ==== === (Windows)ISO-2-USB Installers for Windows == *The free [[http://www.bootdisk.com/|Bootdisk.Com - BootDisks - PC Support - Essential Utilities]]. *[[http://www.bootdisk.com/pendrive.htm|Bootdisk.Com: "How To Boot From A USB Flash Drive"]]. *[[http://www.bootdisk.com/popfiles.htm|Bootdisk.Com: "Support For Hosting Popular Files"]]. *HP USB Disk Storage Tool. *The commercial [[http://www.dualbootpro.org/|DualBootPRO]] for Windows - "allows you to control, manage, and edit your boot system files". *The latest free edition of the predecessor [[http://www.computerbase.de/downloads/system/vistabootpro/|ComputerBase "Vistaboot Pro 3.3"]] for Windows with .NET 2.0. *Hewlett Packard. *[[http://support.hpe.com/connect/s/softwaredetails?collectionId=MTX-UNITY_C9491|Hewlett-Packard "HP USB Key ROMPAQ Setup Utility"]] - "This release provides Windows-based utility to locally partition, format and copy necessary files to a USB flash media device (e.g. HP Drive Key) through the Windows environment". *The free [[http://www.chip.de/downloads/HP-USB-Disk-Storage-Format-Tool_23418669.html|CHIP Online "HP USB Disk Storage Format Tool"]]. *The free [[http://www.chip.de/downloads/USB-DOS_36233249.html|CHIP Online "USB-DOS"]] -> MSDOS of WinME. *The OpenSource [[http://win32diskimager.sourceforge.net/|SourceForge "Win32DiskImager"]], [[http://www.sourceforge.net/projects/win32diskimager/|SourceForge "Win32DiskImager. This tool is used for writing images to USB sticks or SD/CF cards"]]. *The free Windows software [[http://rufus.ie/|Rufus]] ( no "www." ) #. *[[http://rufus.ie/downloads/|Rufus Downloads]] of old versions ( no "www." ). *"A utility that helps format and create bootable USB flash drives, such as USB keys/pendrives, memory sticks, etc." *To enable the "DOWNLOAD" function - so that you have the "SELECT / DOWNLOAD" option, please change the settings. As with Rufus 3.13, you may download different ( and older ) versions of Win10 and Win8.1. *"Check for updates => Monthly" *"Include beta versions => Yes", *To setup Rufus to prepare USB sticks for legacy non-UEFI systems: *Partition scheme => MBR. *Target system => BIOS(or UEFI-CSM) === (Linux)ISO-2-USB Installers for Windows === *The free software [[http://www.linuxliveusb.com/|LinuxLive USB Creator]] for Windows. *[[http://www.pendrivelinux.com/|Pendrivelinux.com - Easily run Linux from a portable USB Device]]. *The free [[http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/|Pendrivelinux "Universal USB Installer (UUI)"]] for Windows - "A Live Linux USB Creator that allows you to choose from a selection of Linux Distributions to put on your USB Flash Drive". *WUBI is installed on the USB stick for booting Linux. *[[http://www.pendrivelinux.com/yumi-multiboot-usb-creator/|Pendrivelinux "YUMI: Multiboot Windows and Linux from USB"]] for Windows. *[[http://www.dedoimedo.com/computers/pendrivelinux.html|Dedoimedo - A place to learn a about a lot! "Pendrivelinux - Be cool anywhere you go"]], 2008-04-05. === (Linux)ISO-2-USB Installers for Linux & Windows === *The OpenSource [[http://unetbootin.sourceforge.net/|SourceForge "UNetbootin"]], [[http://www.sourceforge.net/projects/unetbootin/|SourceForge "UNetbootin, Universal Netboot Installer. Bootable Live USB Creator"]] for Windows and Linux. ==== 1.3 Remote Boot ( Network Boot ) ==== === Remote Boot of Think Clients, with Linux or Thin Client Firmware === *[[http://web.archive.org/web/*/http://www.freebsd.org/doc/en_US.ISO8859-1/articles/diskless-x/|FreeBSD, Jerry Kendall "Diskless X Server: a how to guide"]]. *Etherboot / gPXE / iPXE. *[[http://www.ipxe.org/|iPXE]]. *Wiki [[http://www.etherboot.org/|Etherboot/gPXE Wiki]] - "gPXE is an open source (GPL) network bootloader". *[[http://en.wikipedia.org/wiki/GPXE|EN.Wikipedia "gPXE"]], [[http://de.wikipedia.org/wiki/Etherboot|DE.Wikipedia "Etherboot"]]. *[[http://en.wikipedia.org/wiki/IPXE|EN.Wikipedia "iPXE"]]. *Kickstart. *[[http://en.wikipedia.org/wiki/Kickstart_(Linux)|EN.Wikipedia "Kickstart (Linux)"]] - "The Red Hat Kickstart installation method is used primarily (but not exclusively) by the Red Hat Enterprise Linux operating system to automatically perform unattended operating system installation and configuration. Red Hat publishes Cobbler as a tool to automate the Kickstart configuration process". *[[http://en.wikipedia.org/wiki/Cobbler_(software)|EN.Wikipedia "Cobbler (software)"]]. *"A Linux provisioning server that facilitates and automates the network-based system installation of multiple computer operating systems from a central point using services such as DHCP, TFTP, and DNS. It can be configured for PXE, reinstallations, and virtualized guests using Xen, KVM or VMware". *"Cobbler originally targeted and packaged for RPM-based installs via Kickstart and Anaconda, and was previously hosted as part of the Fedora Project.[4] From Jan 19, 2011 Cobbler has been packaged for Ubuntu. Since 2012 Canonical Ltd has used Cobbler for test automation of OpenStack on Ubuntu". *[[http://www.linuxdoc.org/HOWTO/Network-boot-HOWTO/|linuxDoc.org HowTo "Network-boot-HOWTO"]]. *[[http://netboot.sourceforge.net/|SourceForge "Netboot"]], [[http://www.sourceforge.net/projects/netboot|SourceForge "Netboot"]] - "It allows to remote boot a computer over an IP network without access to a hard disk or a diskette. It is therefore ideally suited for diskless or thin clients using an x86 processor". *[[http://web.archive.org/web/*/http://www.luv.asn.au/overheads/netboot/|Archive.org "Victoria Compilation: Net Boot and Diskless Workstations. Using Netboot, Linux and X window system"]] ( - 2003-12-05 ). *[[http://web.archive.org/web/*/http://www.linuxfocus.org/English/September1998/article63.html|Archive.org "Ken Yap: An Introduction to Network Booting and Etherboot"]] ( - 2002-02-08 ). === Remote Boot of Think Clients, with Windows === *[[http://web.archive.org/web/20070912203408/http://www.appdeploy.com/articles/bootfloppy1.asp|Archive.org "AppDeploy.com - Step-by-Step: Creating a Network Boot Disk Using Windows NT's Network Client Administrator"]] ( - 2007-09-12 ). *[[http://web.archive.org/web/*/http://www.appdeploy.com/comparisons/networkbootdiskutil/|Archive.org "AppDeploy.com - Network Boot Disks"]]. *[[http://home.earthlink.net/~jdbryan/directboot.html|J. David Bryan "Direct Boot Into WinNT/Win95/DOS"]]. *[[http://home.earthlink.net/~jdbryan/ntfs-dual-boot.html|J. David Bryan "Dual-booting Windows NT and DOS/Win95. When C: Is NTFS"]]. *[[http://www.winimage.com/bootpart.htm|BootPart 2.60: Boot Partitions for WinNT]]. ===== 2 Boot Loaders ===== ==== First-stage Boot Loaders ( X86 PC BIOS,... ) ==== === Barebox === *[[http://www.barebox.org/|Barebox]]. *[[http://www.openhub.net/p/barebox|OpenHub "The Barebox Bootloader"]] - "Formerly known as U-Boot 2". === Coreboot === *[[http://de.wikipedia.org/wiki/Coreboot|EN.Wikipedia "Coreboot"]], [[http://de.wikipedia.org/wiki/Coreboot|DE.Wikipedia "coreboot"]] by Google - "Instead of loading a kernel directly, coreboot can pass control to a dedicated boot loader, such as a coreboot-capable version of GNU GRUB 2". === Libreboot === *[[http://www.libreboot.org/|Libreboot]]. *[[http://www.libreboot.org/docs/bsd/|Libreboot "Install a BSD operating system on Libreboot"]] - "It is assumed here that you are using the SeaBIOS payload, not the GRUB payload; the U-Boot payload may also work, but that is not covered here". *[[http://de.wikipedia.org/wiki/Libreboot|EN.Wikipedia "Libreboot"]], [[http://de.wikipedia.org/wiki/Libreboot|DE.Wikipedia "Libreboot"]]. === OpenFirmware === *See [[forth04.html|FORTH 4/6]]. *Linux Device Tree / Flattened Device Tree ( FDT ) -> See [[ddl.html|Device Description Languages and Device Parameterization]]. === RedBoot === *[[http://www.sourceware.org/redboot/|Sourceware "RedBoot"]] - "RedBoot is a complete bootstrap environment for embedded systems. Based on the eCos Hardware Abstraction Layer". *[[http://ecos.sourceware.org/|Sourceware "eCos"]] - "A free open source real-time operating system intended for embedded applications". === SeaBIOS === *[[http://www.seabios.org/|SeaBIOS]] - "SeaBIOS is an open source implementation of a 16bit X86 BIOS. SeaBIOS can run in an emulator or it can run natively on X86 hardware with the use of coreboot". *[[http://en.wikipedia.org/wiki/SeaBIOS|EN.Wikipedia "SeaBIOS"]]. === U-Boot === *Due to copyright issues, never forget the "-" in "U-Boot" :-). *[[http://u-boot.sourceforge.net/|SourceForge "Das U-Boot - Universal Bootloader"]], [[http://www.sourceforge.net/projects/u-boot/|SourceForge "Das U-Boot - Universal Bootloader"]]. *[[http://www.denx.de/|DENX Software Engineering]]. *[[http://git.denx.de/|Git repository of DENX Software Engineering]]. *Wiki [[http://www.denx.de/wiki/|The DENX U-Boot and Linux Guide (DULG)]]. *[[http://www.denx.de/wiki/U-Boot|The DENX U-Boot and Linux Guide (DULG) "Das U-Boot -- the Universal Boot Loader"]]. *[[http://en.wikipedia.org/wiki/Das_U-Boot|EN.Wikipedia "Das U-Boot"]], [[http://de.wikipedia.org/wiki/Das_U-Boot|DE.Wikipedia "Das U-Boot"]]. *The U-Boot shell is based on [[http://en.wikipedia.org/wiki/Almquist_shell|EN.Wikipedia "Almquist shell"]]. *The file systems EXT2 and FAT are supported by U-Boot, natively. === UEFI === *[[http://de.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface|EN.Wikipedia "Unified Extensible Firmware Interface"]], [[http://de.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface|EN.Wikipedia "Unified Extensible Firmware Interface"]] ( UEFI ). *Add Boot Option to UEFI BIOS => See [[debian.html|Debian Linux 1/4]]. ==== Second-stage Boot Loaders ( Linux & BSD Boot Loaders,.. ) ==== === Burg === *[[http://www.launchpad.net/burg|Launchpad "burg"]] - "burg is a brand-new boot loader based on GRUB. It uses a new object format which allows it to be built in a wider range of OS, including Linux/Windows/OSX/FreeBSD, etc.". === BSD Loader === *[[http://man.freebsd.org/cgi/man.cgi?loader|FreeBSD "FreeBSD Manual Pages" - "LOADER(8)"]] - "The loader first appeared in FreeBSD 3.1. The loader scripting language changed to Lua by default in FreeBSD 12.0". *[[http://www.omnios.org/info/loader|OmniOS Community Edition "illumos Loader (aka. BSD Loader)"]] - "Starting with r151022, the new illumos boot loader, ported from FreeBSD, is the default boot loader. Existing installations that use pkg update will continue to use GRUB for at least one reboot, though". === ELILO === *[[http://elilo.sourceforge.net/|Sourceforge "ELILO: EFI Linux Boot Loader"]], [[http://www.sourceforge.net/projects/elilo/|Sourceforge "ELILO: EFI Linux Boot Loader"]] - "ELILO was the legacy EFI linux boot loader for IA-64(IPF), IA-32(x86). Status: Abandoned". "This project is orphaned, Debian dropped it in 2014, and RH & SUSE stopped using this tree (and feeding back change) long before that". === GRUB ( = GRUB Legacy ), GRUB2 === *[[http://en.wikipedia.org/wiki/GRUB|EN.Wikipedia "GNU GRUB"]]. *[[http://de.wikipedia.org/wiki/Grand_Unified_Bootloader|DE.Wikipedia "Grand Unified Bootloader"]]. *"In seiner gegenwärtigen Gestalt 'GRUB 2' ist er nach ersten Arbeiten um 2002 beginnend mit 2009 der voreingestellte Bootloader gängiger und seit 2014 der meisten Linuxdistributionen". *"Darüber hinaus wird GRUB 2 als sog. Nutzlast (englisch „payload“, auch für Nutzdaten) der freien Firmware coreboot verwendet". === Kernel Stub Loader ( EFI Boot Stub ) === *[[http://wiki.ubuntu.com/EFIBootLoaders|Ubuntu Wiki "EFIBootLoaders"]] - "Comparison table". *[[http://www.kernel.org/doc/Documentation/efi-stub.txt|Linux Kernel Documentation "The EFI Boot Stub"]] *[[http://docs.kernel.org/admin-guide/efi-stub.html|Linux Kernel Docs "The EFI Boot Stub"]]. *[[http://wiki.archlinux.org/title/EFI_boot_stub|Arch Linux Wiki "EFI boot stub"]] - "An EFI boot stub (aka EFI stub) is a kernel that is an EFI executable, i.e. that can directly be booted from the UEFI". *[[http://wiki.debian.org/EFIStub|Debian Wiki "EFIStub"]] - "Since Wheezy, Debian kernels on platforms with UEFI (e.g. x86, ARM, RISC-V) contain their own BootLoader called EFI stub. Therefore it is possible to load the kernel directly, without any additional bootloader (like grub-efi). With the help of systemd-stub, it's also possible to create a Unified Kernel Image, combining the kernel, cmdline, initrd, and an optional splash screen into one single EFI binary, convenient for SecureBoot signing". *[[http://wiki.gentoo.org/wiki/EFI_stub|Gentoo Wiki "EFI stub"]]. === Limine === *[[http://en.wikipedia.org/wiki/Limine_(bootloader)|EN.Wikipedia "Limine (bootloader)"]]. === Linux Loader ( LILO ) === *[[http://en.wikipedia.org/wiki/Linux_Loader|EN.Wikipedia "LILO (bootloader)"]] - "As of 2009, most distributions have switched to GRUB as the default boot loader". *[[http://en.wikipedia.org/wiki/LILO_(bootloader)|EN.Wikipedia "Linux Loader"]] - "Um 2002 herum verlor LILO seine Stellung als Standard-Bootloader immer mehr an die Neuentwicklung GRUB". === Loadlin === *[[http://en.wikipedia.org/wiki/Loadlin|EN.Wikipedia "loadlin"]], [[http://de.wikipedia.org/wiki/Loadlin|DE.Wikipedia "Loadlin"]]. === rEFIt & rEFInd === *[[http://en.wikipedia.org/wiki/REFInd|EN.Wikipedia "rEFInd"]]. *The precedessor [[http://en.wikipedia.org/wiki/REFIt|EN.Wikipedia "rEFIt"]]. *[[http://www.baeldung.com/linux/popular-bootloaders|Baeldung "How to Install and Use Popular Linux Bootloaders"]]. === SYSLINUX === *[[http://en.wikipedia.org/wiki/SYSLINUX|EN.Wikipedia "SYSLINUX"]], [[http://de.wikipedia.org/wiki/SYSLINUX|DE.Wikipedia "SYSLINUX"]]. === systemd-boot ( formerly: gummiboot ) === *[[http://www.systemd.io/|systemd]]. *[[http://www.systemd.io/BOOT/|systemd "systemd-boot UEFI Boot Manager"]]. *[[http://www.github.com/systemd/systemd/tree/main/src/boot|GitHub "systemd / src / boot"]]. *[[http://en.wikipedia.org/wiki/Systemd-boot|EN.Wikipedia "systemd-boot"]] === Windows === *[[http://en.wikipedia.org/wiki/NTLDR|EN.Wikipedia "NTLDR"]], [[http://de.wikipedia.org/wiki/NT-Loader|DE.Wikipedia "NT-Loader"]]. *[[http://en.wikipedia.org/wiki/Windows_Boot_Manager|EN.Wikipedia "Windows Boot Manager"]], [[http://de.wikipedia.org/wiki/Bootmgr|DE.Wikipedia "Bootmgr"]]. ==== CD with Tools for supporting or analysing the Boot process ==== *[[http://www.ultimatebootcd.com/|Ultimate Boot CD]]. ===== Resources ===== ==== Boot Loaders ==== *[[http://www.akolles.de/boot_and_backups/bootloader|The Arch Way "Bootloader"]]. *"Grub-Bootloader", "Grub ersetzen durch EFIStub", "rEFInd-Bootloader", "Systemd-Boot". *[[http://www.bootdisk.info/|bootdisk.info]], [[http://www.bootcd.info/|bootcd.info]] - "The web resource for bootable Media". *[[http://buildroot.uclibc.org/|Buildroot]] - "Making Embedded Linux Easy. Buildroot is a simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation". *"Device Tree". *On the ARM target, the most important change from Linux 3.0 ( 2011 ) to Linux 3.10 ( 2013 ) was the implementation of a "Device Tree" for standardisation of SOC / ARM hardware drivers. *[[http://www.devicetree.org/|FDTWiki]]. *"Flattened Device Tree ( FDT )" *"Device Tree". *[[http://en.wikipedia.org/wiki/Device_tree|EN.Wikipedia "Device tree"]]. *Open Firmware & OpenBIOS. *Wiki [[http://www.openfirmware.info/|OpenBIOS ( openfirmware.info )]]. *[[http://www.openfirmware.info/FCODE_suite|OpenBIOS "FCODE suite"]]. *[[http://www.openfirmware.info/Forth/FCode|OpenBIOS "Forth/FCode"]]. *[[http://en.wikipedia.org/wiki/Open_Firmware|EN.Wikipedia "Open Firmware"]], [[http://de.wikipedia.org/wiki/Open_Firmware|DE.Wikipedia "Open Firmware"]]. *[[http://www.firmworks.com/|FirmWorks]] - "The Open Firmware Source". *[[http://docs.oracle.com/cd/E19695-01/802-1941/802-1941.pdf|Oracle Docs "Writing FCode 2.x Programs"]] ( PDF ). *[[http://docs.oracle.com/cd/E19620-01/805-4434/805-4434.pdf|Oracle Docs "OpenBoot 2.x Command Reference Manual"]] ( PDF ). *[[http://news.ycombinator.com/item?id=12240478|HackerNews "Open Firmware"]] - "Mitch Bradley originally developed a Forth system at Sun for use diagnosing and developing hardware, by burning it into ROM and running it via a serial port. It was based on Langston and Perry's Forth-83". *reddit. *[[http://www.reddit.com/r/linuxquestions/comments/1c8kxbr/what_is_the_best_linux_bootloader/|reddit "r/linuxquestions", Thread "what is the best linux bootloader"]] - "systemd-boot",... *[[http://www.reddit.com/r/archlinux/comments/1bazivt/efistub_or_grub/|reddit "r/archlinux", Thread "Efistub or GRUB"]]. *[[http://www.tecmint.com/best-linux-boot-loaders/|Techmint #1 Linux Blog "6 Best Linux Boot Loaders"]]. *[[http://wiki.ubuntu.com/EFIBootLoaders|Ubuntu Wiki "EFIBootLoaders"]] - "Comparison table". *[[http://en.wikipedia.org/wiki/Bootloader|EN.Wikipedia "Bootloader"]], [[http://en.wikipedia.org/wiki/Comparison_of_boot_loaders|EN.Wikipedia "Comparison of boot loaders"]]. *[[http://de.wikipedia.org/wiki/Bootloader|DE.Wikipedia "Bootloader"]] - "Liste von Bootloadern". *[[http://en.wikipedia.org/wiki/Booting|EN.Wikipedia "Booting"]], [[http://de.wikipedia.org/wiki/Booten|EN.Wikipedia "Booten"]]. ==== (Linux)ISO-2-USB ==== *During installation of Linux to boot from USB, please set "Persistence = 0 to x Mbytes" for successful operation on computers with SDD disks, e.g. ASUS Eee PC 901. *You must enable the "Autorun" function ( in the settings of security and antivirus software like [[http://www.avira.com/de/avira-free-antivirus|Avira Free Antivirus]] ) for proper operation of this software. Or you must disable the security and antivirus software totally for operation of ISO-2-USB transfers. *[[http://www.lidux.de/|Lidux - Das Linux-Infoportal]]. *[[http://www.lidux.de/ubuntu-usb-stick-installieren-creator/|Lidux - Das Linux-Infoportal "Ubuntu auf USB-Stick installieren (unter Windows mit Live Linux USB Creator)"]]. *[[http://www.lidux.de/ubuntu-1210-auf-usb-stick-installieren/|Lidux - Das Linux-Infoportal "Ubuntu 12.10 auf USB-Stick installieren (unter Ubuntu)"]]. ==== (Windows)ISO-2-USB ==== *You must enable the "Autorun" function ( in the settings of security and antivirus software like [[http://www.avira.com/de/avira-free-antivirus|Avira Free Antivirus]] ) for proper operation of this software. Or you must disable the security and antivirus software totally for operation of ISO-2-USB transfers. ==== Deletion of multiple Partitions on USB Sticks ==== *[[http://www.superuser.com/questions/536813/how-to-delete-a-partition-on-a-usb-drive|Stack Exchange "How to delete a partition on a USB drive?"]] *"I can recommend rufus. When you have a USB stick with multiple partitions attached, it will automatically select the USB-Stick, detect that it has multiple partitions and you can format the stick safely (select defaults - **non-bootable**, MBR)". *Or select "Boot Section" = "Non bootable" or if you really like "MS-DOS":-). {{tag>booting boot usb linux windows}}