https://wiki.archlinux.org/api.php?action=feedcontributions&user=MentalMutant&feedformat=atomArchWiki - User contributions [en]2024-03-29T15:21:44ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Talk:Clipboard&diff=412905Talk:Clipboard2015-12-20T15:50:27Z<p>MentalMutant: </p>
<hr />
<div> "In X10, "cut buffers" were introduced."<br />
<br />
- (WTF) What the X10 is? (hyperlink should be added) [[User:MentalMutant|MentalMutant]] ([[User talk:MentalMutant|talk]]) 15:50, 20 December 2015 (UTC)</div>MentalMutanthttps://wiki.archlinux.org/index.php?title=Talk:Clipboard&diff=412904Talk:Clipboard2015-12-20T15:50:05Z<p>MentalMutant: Created page with ""In X10, "cut buffers" were introduced." - (WTF) What the X10 is? (hyperlink should be added) ~~~~"</p>
<hr />
<div>"In X10, "cut buffers" were introduced."<br />
- (WTF) What the X10 is? (hyperlink should be added) [[User:MentalMutant|MentalMutant]] ([[User talk:MentalMutant|talk]]) 15:50, 20 December 2015 (UTC)</div>MentalMutanthttps://wiki.archlinux.org/index.php?title=Multiboot_USB_drive&diff=378080Multiboot USB drive2015-06-10T11:21:15Z<p>MentalMutant: /* Alt Linux */</p>
<hr />
<div>[[Category:Boot process]]<br />
[[de:Multiboot USB Stick]]<br />
{{Related articles start}}<br />
{{Related|GRUB}}<br />
{{Related|Syslinux}}<br />
{{Related|Archiso}}<br />
{{Related articles end}}<br />
{{Move|Multiboot disk images|See discussion|section=Scope and title}}<br />
A multiboot USB flash drive allows booting multiple ISO files from a single device. The ISO files can be copied to the drive and booted directly without unpacking them first. There are multiple methods available, but they may not work for all ISO images.<br />
<br />
== Using GRUB and loopback devices ==<br />
<br />
{{Poor writing|multiple [[Help:Style|style]] issues}}<br />
<br />
advantages:<br />
* only a single partition required<br />
* all ISO files are found in one directory<br />
* adding and removing ISO files is simple<br />
<br />
disadvantages:<br />
* not all ISO images are compatible<br />
* the original boot menu for the ISO file is not shown<br />
* it can be difficult to find a working boot entry<br />
<br />
=== Preparation ===<br />
<br />
{{Expansion|How much extra space is needed for the bootloader?}}<br />
<br />
Create at least one partition and a filesystem supported by [[GRUB]] on the USB drive. See [[Partitioning]] and [[File systems#Create a filesystem]]. Choose the size based on the total size of the ISO files that you want to store on the drive, and plan for extra space for the bootloader.<br />
<br />
=== Installing GRUB ===<br />
<br />
Mount the filesystem located on the USB drive:<br />
<br />
# mount /dev/sdXY /mnt<br />
<br />
Create the directory /boot:<br />
<br />
# mkdir /mnt/boot<br />
<br />
Install grub on the USB drive:<br />
<br />
# grub-install --target=i386-pc --recheck --boot-directory=/mnt/boot /dev/sdX<br />
<br />
In case you want to boot ISOs in UEFI mode, you have to install grub for the UEFI target:<br />
<br />
# grub-install --target x86_64-efi --efi-directory /mnt --boot-directory=/mnt/boot --removable<br />
<br />
For UEFI, the partition has to be the first one in an MBR partition table and formatted with FAT32.<br />
<br />
=== Configuring GRUB ===<br />
<br />
For the purpose of multiboot USB drive it is easier to edit {{ic|grub.cfg}} by hand instead of generating it. Alternatively, make the following changes in {{ic|/etc/grub.d/40_custom}} or {{ic|/mnt/boot/grub/custom.cfg}} and generate {{ic|/mnt/boot/grub/grub.cfg}} using [[GRUB#Generating main configuration file|grub-mkconfig]].<br />
<br />
As it is recommend to use a [[Persistent block device naming|persistent name]] instead of {{ic|/dev/sd''xY''}} to identify the partition on the USB drive where the image files are located, define a variable for convenience to hold the value:<br />
<br />
{{hc|/mnt/boot/grub/grub.cfg|2=<br />
# path to the partition holding ISO images (using UUID)<br />
set imgdevpath="/dev/disk/by-uuid/''UUID_value''"<br />
}}<br />
<br />
Alternatively, use the device label instead of UUID:<br />
<br />
{{hc|/mnt/boot/grub/grub.cfg|2=<br />
# path to the partition holding ISO images (using labels)<br />
set imgdevpath="/dev/disk/by-label/''label_value''"<br />
}}<br />
<br />
The necessary UUID or label can be found using {{ic|lsblk -f}}. Do not use the same label as the Arch ISO for the USB device, otherwise the boot process will fail.<br />
<br />
To complete the configuration, a boot entry for each ISO image has to be added below this header, see the next section for examples.<br />
<br />
=== Boot entries ===<br />
<br />
{{Poor writing|The only boxes used should be code blocks, otherwise the section will be unreadable. Anything else should be plain text.}}<br />
<br />
It is assumed that the ISO images are stored in the {{ic|boot/iso/}} directory on the same filesystem where GRUB is installed (e.g. the ISO must be placed in /boot/boot/iso if the boot partition is mounted at /boot). Otherwise it would be necessary to prefix the path to ISO file with device identification when using the {{ic|loopback}} command, for example {{ic|loopback loop '''(hd1,2)'''$isofile}}. As this identification of devices is not [[Persistent block device naming|persistent]], it is not used in the examples in this section.<br />
<br />
{{Tip| For a list of kernel parameters, see https://www.kernel.org/doc/Documentation/kernel-parameters.txt (still incomplete)}}<br />
<br />
==== Alt Linux ====<br />
<br />
* Initramfs framework: ???<br />
* Live framework: ???<br />
* Init system: ???<br />
<br />
{{bc|1=<br />
menuentry "[loopback]altlinux-7.0.5-simply-x86_64-install-dvd5.iso" {<br />
set gfxpayload=keep<br />
insmod gzio<br />
insmod part_msdos<br />
insmod ext2<br />
insmod xfs<br />
set bootpart=uuid:df46d821-e7f9-4e35-bbd2-728bdce8d89a<br />
set isodir=/boot/iso<br />
set isofile=altlinux-7.0.5-simply-x86_64-install-dvd5.iso<br />
loopback loop (${root})${isodir}/${isofile}<br />
linux (loop)/syslinux/alt0/vmlinuz automatic=method:disk,${bootpart},directory:${isodir}/${isofile} ramdisk_size=183210 changedisk lang=ru_RU splash noeject xdriver=auto quiet=1 showopts<br />
initrd (loop)/syslinux/alt0/full.cz<br />
}<br />
}}<br />
<br />
==== Arch Linux ====<br />
<br />
{{Tip|If you want to boot into a 32-bit system, replace {{ic|x86_64}} with {{ic|i686}}.}}<br />
<br />
===== monthly release =====<br />
<br />
* Initramfs framework: [[mkinitcpio]] (cmdline: [https://projects.archlinux.org/mkinitcpio.git/tree/man/mkinitcpio.8.txt#n212])<br />
* Live framework: [[archiso]] (cmdline: [https://projects.archlinux.org/archiso.git/tree/docs/README.bootparams])<br />
* Init system: [[systemd]] (cmdline: [http://www.freedesktop.org/software/systemd/man/kernel-command-line.html])<br />
<br />
{{bc|1=<br />
menuentry '[loopback]archlinux-2014.12.01-dual.iso' {<br />
set isofile='/boot/iso/archlinux-2014.12.01-dual.iso'<br />
loopback loop $isofile<br />
linux (loop)/arch/boot/'''x86_64'''/vmlinuz archisolabel=ARCH_'''201412''' img_dev=$imgdevpath img_loop=$isofile earlymodules=loop<br />
initrd (loop)/arch/boot/'''x86_64'''/archiso.img<br />
}<br />
}}<br />
<br />
{{Tip| The label string after {{ic|1=archisolabel=}} needs to be edited when a newer monthly release is used.[https://projects.archlinux.org/archiso.git/tree/configs/releng/build.sh#n6]}}<br />
<br />
===== archboot =====<br />
<br />
* Initramfs framework: [[mkinitcpio]] (cmdline: [https://projects.archlinux.org/mkinitcpio.git/tree/man/mkinitcpio.8.txt#n212])<br />
* Live framework: [[archboot]] (cmdline: none? ''RFD'')<br />
* Init system: [[systemd]] (cmdline: [http://www.freedesktop.org/software/systemd/man/kernel-command-line.html])<br />
<br />
{{bc|1=<br />
menuentry '[loopback]archlinux-2014.11-1-archboot' {<br />
set isofile='/boot/iso/archlinux-2014.11-1-archboot.iso'<br />
loopback loop $isofile<br />
linux (loop)/boot/vmlinuz_'''x86_64''' iso_loop_dev=$imgdevpath iso_loop_path=$isofile<br />
initrd (loop)/boot/initramfs_'''x86_64'''.img<br />
}<br />
}}<br />
<br />
==== CentOS ====<br />
<br />
===== Stock installation medium =====<br />
<br />
* Initramfs framework: [https://fedoraproject.org/wiki/Dracut Dracut] (cmdline: [https://git.kernel.org/cgit/boot/dracut/dracut.git/tree/dracut.cmdline.7.asc])<br />
* Installation program: [https://fedoraproject.org/wiki/Anaconda Anaconda] (cmdline: [https://github.com/rhinstaller/anaconda/blob/master/docs/boot-options.txt])<br />
* Init system: [[systemd]] (cmdline: [http://www.freedesktop.org/software/systemd/man/kernel-command-line.html])<br />
<br />
{{bc|1=<br />
menuentry "[loopback]CentOS-7.0-1406-x86_64-'''DVD'''" {<br />
set isofile='/boot/iso/CentOS-7.0-1406-x86_64-'''DVD'''.iso'<br />
loopback loop $isofile<br />
linux (loop)/isolinux/vmlinuz noeject inst.stage2=hd:'''/dev/sdb2''':/$isofile<br />
initrd (loop)/isolinux/initrd.img<br />
}<br />
}}<br />
<br />
{{tip|The boot parameter of second stage install image location {{ic|1=/dev/sdb2}} which is used by Anaconda, is similar to [[fstab]]'s first field (fs_spec), could be replace with one of:<br />
* {{ic|1=/dev/sd'''''xY'''''}}<br />
* {{ic|1=LABEL=MYUSBSTICK}}<br />
* {{ic|1=UUID=00000000-0000-0000-0000-0000deadbeef}}<br />
<br />
For example, {{ic|1=linux (loop)/isolinux/vmlinuz noeject inst.stage2=hd:'''LABEL=MYUSBSTICK''':/$isofile}}<br />
}}<br />
<br />
===== Desktop live medium =====<br />
<br />
* Initramfs framework: [https://fedoraproject.org/wiki/Dracut Dracut] (cmdline: [https://git.kernel.org/cgit/boot/dracut/dracut.git/tree/dracut.cmdline.7.asc])<br />
* Live framework: fedora [https://fedoraproject.org/wiki/FedoraLiveCD livecd-tools] (cmdline: none)<br />
* Init system: [[systemd]] (cmdline: [http://www.freedesktop.org/software/systemd/man/kernel-command-line.html])<br />
<br />
{{bc|1=<br />
menuentry '[loopback]CentOS-7.0-1406-x86_64-GnomeLive' {<br />
set isofile='/boot/iso/CentOS-7.0-1406-x86_64-GnomeLive.iso'<br />
loopback loop $isofile<br />
linux (loop)/isolinux/vmlinuz0 root=live:CDLABEL=CentOS-7-live-GNOME-x86_64 iso-scan/filename=$isofile rd.live.image<br />
initrd (loop)/isolinux/initrd0.img<br />
}<br />
}}<br />
<br />
==== Clonezilla Live ====<br />
{{tip|1=Since 2014.01.05[https://projects.archlinux.org/archiso.git/commit/?id=5cd02c704046cdb6974f6b10f0cac366eeebec0e], the Arch Linux monthly release contains clonezilla.}}<br />
<br />
* Initramfs framework: [https://anonscm.debian.org/cgit/kernel/initramfs-tools.git/ initramfs-tools] (cmdline: ''RFD'')<br />
* Live framework: [http://live.debian.net/ Debian Live] (cmdline: [http://manpages.debian.org/cgi-bin/man.cgi?query=live-boot&apropos=0&sektion=7&manpath=Debian+unstable+sid&format=html&locale=en])<br />
* Init system: [https://savannah.nongnu.org/projects/sysvinit sysvinit] (cmdline: ''RFD'')<br />
<br />
{{bc|1=<br />
menuentry "[loopback]clonezilla-live-2.2.3-25-amd64" {<br />
set isofile="/boot/iso/clonezilla-live-2.2.3-25-amd64.iso"<br />
loopback loop $isofile<br />
linux (loop)/live/vmlinuz findiso=$isofile boot=live union=aufs config noprompt ip=frommedia toram=filesystem.squashfs<br />
initrd (loop)/live/initrd.img<br />
}<br />
}}<br />
<br />
==== Debian ====<br />
<br />
===== Stock install medium =====<br />
<br />
* Initramfs framework: [https://anonscm.debian.org/cgit/kernel/initramfs-tools.git/ initramfs-tools] (cmdline: ''RFD'')<br />
* Installation program: [https://wiki.debian.org/DebianInstaller#Development debian-installer] (cmdline: ''RFD'')<br />
* Init system: [https://savannah.nongnu.org/projects/sysvinit sysvinit] (cmdline: ''RFD'')<br />
<br />
{{tip|To install debian from any stock install medium on a non-optical medium (e.g. usb stick, HDD), it's necessary to use a different initramfs instead of the default one on the installation medium which is located at {{ic|(loop)/install.amd/initrd.gz}}. If you boot with the default one, the installer will unable to find or mount the proper iso image for installation.<br />
<br />
Please download the initramfs for hard disk installation from [https://mirrors.kernel.org/debian/dists/stable/main/installer-amd64/current/images/hd-media/initrd.gz an official mirror site], put it in the same directory with the image file and give it a suitable name ({{ic|debian-7.8.0-amd64-DVD-1.hdd.initrd.gz}} in this example).}}<br />
<br />
{{bc|1=<br />
menuentry '[loopback]debian-7.8.0-amd64-DVD-1' {<br />
set isofile='/boot/iso/debian-7.8.0-amd64-DVD-1.iso'<br />
set initrdfile='/boot/iso/debian-7.8.0-amd64-DVD-1.hdd.initrd.gz'<br />
loopback loop $isofile<br />
linux (loop)/install.amd/vmlinuz vga=791 iso-scan/ask_second_pass=true iso-scan/filename=$isofile<br />
initrd $initrdfile<br />
}<br />
}}<br />
<br />
===== Live install medium =====<br />
<br />
* Initramfs framework: [https://anonscm.debian.org/cgit/kernel/initramfs-tools.git/ initramfs-tools] (cmdline: ''RFD'')<br />
* Live framework: [http://live.debian.net/ Debian Live] (cmdline: [http://manpages.debian.org/cgi-bin/man.cgi?query=live-boot&apropos=0&sektion=7&manpath=Debian+unstable+sid&format=html&locale=en])<br />
* Init system: [https://savannah.nongnu.org/projects/sysvinit sysvinit] (cmdline: ''RFD'')<br />
<br />
{{bc|1=<br />
menuentry '[loopback]debian-live-7.8.0-amd64-xfce-desktop' {<br />
set isofile='/boot/iso/debian-live-7.8.0-amd64-xfce-desktop.iso'<br />
loopback loop $isofile<br />
linux (loop)/live/vmlinuz boot=live config fromiso='''/dev/sdb2'''/$isofile<br />
initrd (loop)/live/initrd.img<br />
}<br />
}}<br />
<br />
{{note|It's also OK to use {{ic|1=findiso=$isofile}} instead of the longer {{ic|1=fromiso=/dev/disk/by-.../.../$isofile}}. Anyway, using {{ic|1=fromiso=}} instead of {{ic|1=findiso=}} may speed up the initialization progress because it avoids unnecessary mounting.}}<br />
<br />
==== Elementary OS ====<br />
<br />
* Initramfs framework: ''RFD''<br />
* Live framework or installation program: ''RFD''<br />
* Init system: upstart (cmdline: ''RFD'')<br />
<br />
{{bc|1=<br />
menuentry '[loopback]elementaryos-freya-amd64.20150411' {<br />
set isofile='/boot/iso/elementaryos-freya-amd64.20150411.iso'<br />
loopback loop $isofile<br />
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile locale='''en_US.UTF-8'''<br />
initrd (loop)/casper/initrd.lz<br />
}<br />
}}<br />
<br />
==== Fedora ====<br />
<br />
===== Stock installation medium =====<br />
<br />
* Initramfs framework: [https://fedoraproject.org/wiki/Dracut Dracut] (cmdline: [https://git.kernel.org/cgit/boot/dracut/dracut.git/tree/dracut.cmdline.7.asc])<br />
* Installation program: [https://fedoraproject.org/wiki/Anaconda Anaconda] (cmdline: [https://github.com/rhinstaller/anaconda/blob/master/docs/boot-options.txt])<br />
* Init system: [[systemd]] (cmdline: [http://www.freedesktop.org/software/systemd/man/kernel-command-line.html])<br />
<br />
{{bc|1=<br />
menuentry '[loopback]Fedora-20-x86_64-DVD' {<br />
set isofile='/boot/iso/Fedora-20-x86_64-DVD.iso'<br />
loopback loop $isofile<br />
linux (loop)/isolinux/vmlinuz noeject inst.stage2=hd:'''/dev/sdb2''':/$isofile<br />
initrd (loop)/isolinux/initrd.img<br />
}<br />
}}<br />
<br />
===== Workstation live medium =====<br />
<br />
* Initramfs framework: [https://fedoraproject.org/wiki/Dracut Dracut] (cmdline: [https://git.kernel.org/cgit/boot/dracut/dracut.git/tree/dracut.cmdline.7.asc])<br />
* Live framework: fedora [https://fedoraproject.org/wiki/FedoraLiveCD livecd-tools] (cmdline: none)<br />
* Init system: [[systemd]] (cmdline: [http://www.freedesktop.org/software/systemd/man/kernel-command-line.html])<br />
<br />
{{bc|1=<br />
menuentry '[loopback]Fedora-Live-Workstation-x86_64-21-5' {<br />
set isofile='/boot/iso/Fedora-Live-Desktop-x86_64-21-5.iso'<br />
loopback loop $isofile<br />
linux (loop)/isolinux/vmlinuz0 root=live:CDLABEL=Fedora-Live-WS-x86_64-21-5 iso-scan/filename=$isofile rd.live.image<br />
initrd (loop)/isolinux/initrd0.img<br />
}<br />
}}<br />
<br />
==== Gentoo ====<br />
===== Desktop LiveDVD =====<br />
<br />
* Initramfs framework: [https://wiki.gentoo.org/wiki/Genkernel genkernel] (cmdline: [https://gitweb.gentoo.org/proj/genkernel.git/tree/doc/genkernel.8.txt#n393])<br />
* Live framework: [https://gitweb.gentoo.org/proj/livecd-tools.git/ livecd-tools] (cmdline: ''RFD'')<br />
* Init system: [https://wiki.gentoo.org/wiki/Project:OpenRC OpenRC] (cmdline: ''RFD'')<br />
<br />
{{bc|1=<br />
menuentry "[loopback]livedvd-amd64-multilib-20140826" {<br />
set isofile="/boot/iso/livedvd-amd64-multilib-20140826.iso"<br />
loopback loop $isofile<br />
linux (loop)/isolinux/gentoo root=/dev/ram0 init=/linuxrc aufs looptype=squashfs loop=/image.squashfs cdroot isoboot=$isofile vga='''791''' splash=silent,theme:default console=tty0<br />
initrd (loop)/isolinux/gentoo.igz <br />
}<br />
}}<br />
<br />
{{Tip|This should also works for minimal medium.}}<br />
<br />
==== GParted Live ====<br />
<br />
* Initramfs framework: [https://anonscm.debian.org/cgit/kernel/initramfs-tools.git/ initramfs-tools] (cmdline: ''RFD'')<br />
* Live framework: [http://live.debian.net/ Debian Live] (cmdline: [http://manpages.debian.org/cgi-bin/man.cgi?query=live-boot&apropos=0&sektion=7&manpath=Debian+unstable+sid&format=html&locale=en])<br />
* Init system: [https://savannah.nongnu.org/projects/sysvinit sysvinit] (cmdline: ''RFD'')<br />
<br />
{{bc|1=<br />
menuentry "[loopback]gparted-live-0.18.0-1-'''amd64'''" {<br />
set isofile="/boot/iso/gparted-live-0.18.0-1-'''amd64'''.iso"<br />
loopback loop $isofile<br />
linux (loop)/live/vmlinuz boot=live config union=aufs noswap noprompt ip=frommedia toram=filesystem.squashfs findiso=$isofile<br />
initrd (loop)/live/initrd.img<br />
}<br />
}}<br />
<br />
==== Kali Linux ====<br />
<br />
* Initramfs framework: [https://anonscm.debian.org/cgit/kernel/initramfs-tools.git/ initramfs-tools] (cmdline: ''RFD'')<br />
* Live framework: [http://live.debian.net/ Debian Live] (cmdline: [http://manpages.debian.org/cgi-bin/man.cgi?query=live-boot&apropos=0&sektion=7&manpath=Debian+unstable+sid&format=html&locale=en])<br />
* Init system: [https://savannah.nongnu.org/projects/sysvinit sysvinit] (cmdline: ''RFD'')<br />
<br />
{{bc|1=<br />
menuentry "[loopback]kali-linux-1.0.7-'''amd64'''" {<br />
set isofile='/boot/iso/kali-linux-1.0.7-'''amd64'''.iso'<br />
loopback loop $isofile<br />
linux (loop)/live/vmlinuz boot=live findiso=$isofile noconfig=sudo username=root hostname=kali<br />
initrd (loop)/live/initrd.img<br />
}<br />
}}<br />
<br />
==== Linux Mint ====<br />
<br />
* Initramfs framework: ''RFD''<br />
* Live framework or installation program: ''RFD''<br />
* Init system: ''RFD''<br />
<br />
{{bc|1=<br />
menuentry "[loopback]linuxmint-201403-cinnamon-dvd-'''32'''bit" {<br />
set isofile="/boot/iso/linuxmint-201403-cinnamon-dvd-'''32'''bit.iso"<br />
loopback loop $isofile<br />
linux (loop)/live/vmlinuz isofrom='''/dev/sdb2'''/iso/$isofile boot=live live-config live-media-path=/live quiet splash noeject noprompt<br />
initrd (loop)/live/initrd.img<br />
}<br />
}}<br />
<br />
==== openSUSE ====<br />
<br />
===== Stock installation medium =====<br />
<br />
* Initramfs framework: ''RFD''<br />
* Live framework or installation program: Kiwi? ''RFD''<br />
* Init system: ''RFD''<br />
<br />
{{bc|1=<br />
menuentry '[loopback]openSUSE-13.1-DVD-x86_64' {<br />
set isofile='/boot/iso/openSUSE-13.1-DVD-x86_64.iso'<br />
loopback loop $isofile<br />
linux (loop)/boot/x86_64/loader/linux install=hd:$isofile<br />
initrd (loop)/boot/x86_64/loader/initrd<br />
}<br />
}}<br />
<br />
===== Desktop Live medium =====<br />
<br />
* Initramfs framework: ''RFD''<br />
* Live framework or installation program: Kiwi? ''RFD''<br />
* Init system: ''RFD''<br />
<br />
{{bc|1=<br />
menuentry '[loopback]openSUSE-13.1-KDE-Live-x86_64' {<br />
set isofile='/boot/iso/openSUSE-13.1-KDE-Live-x86_64.iso'<br />
loopback loop $isofile<br />
linux (loop)/boot/x86_64/loader/linux isofrom_device=$imgdevpath isofrom_system=$isofile LANG='''en_US.UTF-8'''<br />
initrd (loop)/boot/x86_64/loader/initrd<br />
}<br />
}}<br />
<br />
==== Sabayon ====<br />
<br />
* Initramfs framework: genkernel? ''RFD''<br />
* Live framework or installation program: ''RFD''<br />
* Init system: openrc? ''RFD''<br />
<br />
{{bc|1=<br />
menuentry '[loopback]Sabayon_Linux_14.05_amd64_KDE' {<br />
set isofile='/boot/iso/Sabayon_Linux_14.05_amd64_KDE.iso'<br />
loopback loop $isofile<br />
linux (loop)/boot/sabayon root=/dev/ram0 aufs cdroot locale='''en_US''' loop=/livecd.squashfs looptype=squashfs isoboot=$isofile<br />
initrd (loop)/boot/sabayon.igz<br />
}<br />
}}<br />
<br />
==== Slackware Linux ====<br />
<br />
* Initramfs framework: ''RFD''<br />
* Live framework or installation program: ''RFD''<br />
* Init system: ''RFD''<br />
<br />
{{bc|1=<br />
menuentry '[loopback]slackware64-14.1-install-dvd' {<br />
set isofile='/boot/iso/slackware64-14.1-install-dvd.iso'<br />
loopback loop $isofile<br />
linux (loop)/kernels/huge.s/bzImage printk.time=0<br />
initrd (loop)/isolinux/initrd.img<br />
}<br />
}}<br />
<br />
==== SystemRescueCD ====<br />
<br />
* Initramfs framework: ''RFD''<br />
* Live framework or installation program: ''RFD''<br />
* Init system: ''RFD''<br />
<br />
{{note|Replace {{ic|64}} with {{ic|32}} if you want to boot into a 32-bit system.}}<br />
{{bc|1=<br />
menuentry '[loopback]systemrescuecd-x86-4.5.2' {<br />
set isofile='/boot/iso/systemrescuecd-x86-4.5.2.iso'<br />
loopback loop $isofile<br />
linux (loop)/isolinux/rescue'''64''' isoloop=$isofile<br />
initrd (loop)/isolinux/initram.igz<br />
}<br />
}}<br />
<br />
==== Ubuntu ====<br />
<br />
* Initramfs framework: ''RFD''<br />
* Live framework or installation program: ''RFD''<br />
* Init system: upstart (cmdline: ''RFD'')<br />
<br />
{{bc|1=<br />
menuentry '[loopback]ubuntu-14.04.1-desktop-amd64' {<br />
set isofile='/boot/iso/ubuntu-14.04.1-desktop-amd64.iso'<br />
loopback loop $isofile<br />
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile locale='''en_US.UTF-8'''<br />
initrd (loop)/casper/initrd.lz<br />
}<br />
}}<br />
<br />
==== Slitaz ====<br />
<br />
* Initramfs framework: ''RFD''<br />
* Live framework: ''RFD''<br />
* Init system: ''RFD''<br />
<br />
First, download slitaz iso, then extract somewhere (in this case, /live/slitaz-4.0 on /dev/sda3)<br />
<br />
{{bc|1=<br />
menuentry 'slitaz-4.0 core' {<br />
set dir='/live/slitaz-4.0'<br />
set root=(hd0,msdos3)<br />
set lang='pt_BR'<br />
set kmap='br-abnt2'<br />
linux ($root)/$dir/bzImage lang=$lang kmap=$kmap rw root=/dev/null vga=normal autologin<br />
initrd ($root)/$dir/rootfs4.gz ($root)/$dir/rootfs3.gz ($root)/$dir/rootfs2.gz ($root)/$dir/rootfs1.gz<br />
}<br />
}}<br />
<br />
==== Slax ====<br />
<br />
* Initramfs framework: ''RFD''<br />
* Live framework: ''RFD''<br />
* Init system: ''RFD''<br />
<br />
First, download Slax zip (for USB), then extract somewhere (in this case, /live/slax on /dev/sda3)<br />
<br />
{{bc|1=<br />
menuentry 'slax' {<br />
set dir=/live/slax<br />
set root=(hd0,msdos3)<br />
linux $dir/boot/vmlinuz from=$dir vga=normal load_ramdisk=1 prompt_ramdisk=0 printk.time=0 slax.flags=perch,xmode<br />
initrd $dir/boot/initrfs.img<br />
}<br />
}}<br />
<br />
== Using Syslinux and memdisk ==<br />
<br />
Using the [http://www.syslinux.org/wiki/index.php/MEMDISK memdisk] module, the ISO image is loaded into memory, and its bootloader is loaded. Make sure that the system that will boot this USB drive has sufficient amount of memory for the image file and running operating system.<br />
<br />
=== Preparation ===<br />
<br />
Make sure that the USB drive is properly [[Partitioning|partitioned]] and that there is a partition with [[file system]] supported by Syslinux, for example fat32 or ext4. Then install Syslinux to this partition, see [[Syslinux#Installation]].<br />
<br />
=== Install the memdisk module ===<br />
<br />
The memdisk module was not installed during Syslinux installation, it has to be installed manually. Mount the partition where Syslinux is installed to {{ic|/mnt/}} and copy the memdisk module to the same directory where Syslinux is installed:<br />
<br />
# cp /usr/lib/syslinux/bios/memdisk /mnt/boot/syslinux/<br />
<br />
=== Configuration ===<br />
<br />
After copying the ISO files on the USB drive, edit the [[Syslinux#Configuration|Syslinux configuration file]] and create menu entries for the ISO images. The basic entry looks like this:<br />
<br />
{{hc|boot/syslinux/syslinux.cfg|<br />
LABEL ''some_label''<br />
LINUX memdisk<br />
INITRD ''/path/to/image.iso''<br />
APPEND iso<br />
}}<br />
<br />
See [http://www.syslinux.org/wiki/index.php/MEMDISK memdisk on Syslinux wiki] for more configuration options.<br />
<br />
=== Caveat for 32-bit systems ===<br />
<br />
When booting a 32-bit system from an image larger than 128MiB, it is necessary to increase the maximum memory usage of vmalloc. This is done by adding {{ic|1=vmalloc=''value''M}} to the kernel parameters, where {{ic|''value''}} is larger than the size of the ISO image in MiB.[http://www.syslinux.org/wiki/index.php/MEMDISK#-_memdiskfind_in_combination_with_phram_and_mtdblock]<br />
<br />
For example when booting the 32-bit system from the [https://www.archlinux.org/download/ Arch installation ISO], press the {{ic|Tab}} key over the {{ic|Boot Arch Linux (i686)}} entry and add {{ic|1=vmalloc=768M}} at the end. Skipping this step will result in the following error during boot:<br />
<br />
modprobe: ERROR: could not insert 'phram': Input/output error<br />
<br />
== See also ==<br />
<br />
* GRUB:<br />
** https://help.ubuntu.com/community/Grub2/ISOBoot/Examples<br />
** https://help.ubuntu.com/community/Grub2/ISOBoot<br />
* Syslinux:<br />
** [http://www.syslinux.org/wiki/index.php/Boot_an_Iso_image Boot an ISO image]</div>MentalMutanthttps://wiki.archlinux.org/index.php?title=Multiboot_USB_drive&diff=378079Multiboot USB drive2015-06-10T11:18:33Z<p>MentalMutant: /* Alt Linux section added */</p>
<hr />
<div>[[Category:Boot process]]<br />
[[de:Multiboot USB Stick]]<br />
{{Related articles start}}<br />
{{Related|GRUB}}<br />
{{Related|Syslinux}}<br />
{{Related|Archiso}}<br />
{{Related articles end}}<br />
{{Move|Multiboot disk images|See discussion|section=Scope and title}}<br />
A multiboot USB flash drive allows booting multiple ISO files from a single device. The ISO files can be copied to the drive and booted directly without unpacking them first. There are multiple methods available, but they may not work for all ISO images.<br />
<br />
== Using GRUB and loopback devices ==<br />
<br />
{{Poor writing|multiple [[Help:Style|style]] issues}}<br />
<br />
advantages:<br />
* only a single partition required<br />
* all ISO files are found in one directory<br />
* adding and removing ISO files is simple<br />
<br />
disadvantages:<br />
* not all ISO images are compatible<br />
* the original boot menu for the ISO file is not shown<br />
* it can be difficult to find a working boot entry<br />
<br />
=== Preparation ===<br />
<br />
{{Expansion|How much extra space is needed for the bootloader?}}<br />
<br />
Create at least one partition and a filesystem supported by [[GRUB]] on the USB drive. See [[Partitioning]] and [[File systems#Create a filesystem]]. Choose the size based on the total size of the ISO files that you want to store on the drive, and plan for extra space for the bootloader.<br />
<br />
=== Installing GRUB ===<br />
<br />
Mount the filesystem located on the USB drive:<br />
<br />
# mount /dev/sdXY /mnt<br />
<br />
Create the directory /boot:<br />
<br />
# mkdir /mnt/boot<br />
<br />
Install grub on the USB drive:<br />
<br />
# grub-install --target=i386-pc --recheck --boot-directory=/mnt/boot /dev/sdX<br />
<br />
In case you want to boot ISOs in UEFI mode, you have to install grub for the UEFI target:<br />
<br />
# grub-install --target x86_64-efi --efi-directory /mnt --boot-directory=/mnt/boot --removable<br />
<br />
For UEFI, the partition has to be the first one in an MBR partition table and formatted with FAT32.<br />
<br />
=== Configuring GRUB ===<br />
<br />
For the purpose of multiboot USB drive it is easier to edit {{ic|grub.cfg}} by hand instead of generating it. Alternatively, make the following changes in {{ic|/etc/grub.d/40_custom}} or {{ic|/mnt/boot/grub/custom.cfg}} and generate {{ic|/mnt/boot/grub/grub.cfg}} using [[GRUB#Generating main configuration file|grub-mkconfig]].<br />
<br />
As it is recommend to use a [[Persistent block device naming|persistent name]] instead of {{ic|/dev/sd''xY''}} to identify the partition on the USB drive where the image files are located, define a variable for convenience to hold the value:<br />
<br />
{{hc|/mnt/boot/grub/grub.cfg|2=<br />
# path to the partition holding ISO images (using UUID)<br />
set imgdevpath="/dev/disk/by-uuid/''UUID_value''"<br />
}}<br />
<br />
Alternatively, use the device label instead of UUID:<br />
<br />
{{hc|/mnt/boot/grub/grub.cfg|2=<br />
# path to the partition holding ISO images (using labels)<br />
set imgdevpath="/dev/disk/by-label/''label_value''"<br />
}}<br />
<br />
The necessary UUID or label can be found using {{ic|lsblk -f}}. Do not use the same label as the Arch ISO for the USB device, otherwise the boot process will fail.<br />
<br />
To complete the configuration, a boot entry for each ISO image has to be added below this header, see the next section for examples.<br />
<br />
=== Boot entries ===<br />
<br />
{{Poor writing|The only boxes used should be code blocks, otherwise the section will be unreadable. Anything else should be plain text.}}<br />
<br />
It is assumed that the ISO images are stored in the {{ic|boot/iso/}} directory on the same filesystem where GRUB is installed (e.g. the ISO must be placed in /boot/boot/iso if the boot partition is mounted at /boot). Otherwise it would be necessary to prefix the path to ISO file with device identification when using the {{ic|loopback}} command, for example {{ic|loopback loop '''(hd1,2)'''$isofile}}. As this identification of devices is not [[Persistent block device naming|persistent]], it is not used in the examples in this section.<br />
<br />
{{Tip| For a list of kernel parameters, see https://www.kernel.org/doc/Documentation/kernel-parameters.txt (still incomplete)}}<br />
<br />
==== Alt Linux ====<br />
<br />
* Initramfs framework: ???<br />
* Live framework: ???<br />
* Init system: ???<br />
<br />
<br />
{{bc|1=<br />
menuentry "[loopback]altlinux-7.0.5-simply-x86_64-install-dvd5.iso" {<br />
set gfxpayload=keep<br />
insmod gzio<br />
insmod part_msdos<br />
insmod ext2<br />
insmod xfs<br />
set bootpart=uuid:df46d821-e7f9-4e35-bbd2-728bdce8d89a<br />
set isodir=/iso/Alt705simple<br />
set isofile=altlinux-7.0.5-simply-x86_64-install-dvd5.iso<br />
loopback loop (${root})${isodir}/${isofile}<br />
linux (loop)/syslinux/alt0/vmlinuz automatic=method:disk,${bootpart},directory:${isodir}/${isofile} ramdisk_size=183210 changedisk lang=ru_RU splash noeject xdriver=auto quiet=1 showopts<br />
initrd (loop)/syslinux/alt0/full.cz<br />
}<br />
}}<br />
<br />
==== Arch Linux ====<br />
<br />
{{Tip|If you want to boot into a 32-bit system, replace {{ic|x86_64}} with {{ic|i686}}.}}<br />
<br />
===== monthly release =====<br />
<br />
* Initramfs framework: [[mkinitcpio]] (cmdline: [https://projects.archlinux.org/mkinitcpio.git/tree/man/mkinitcpio.8.txt#n212])<br />
* Live framework: [[archiso]] (cmdline: [https://projects.archlinux.org/archiso.git/tree/docs/README.bootparams])<br />
* Init system: [[systemd]] (cmdline: [http://www.freedesktop.org/software/systemd/man/kernel-command-line.html])<br />
<br />
{{bc|1=<br />
menuentry '[loopback]archlinux-2014.12.01-dual.iso' {<br />
set isofile='/boot/iso/archlinux-2014.12.01-dual.iso'<br />
loopback loop $isofile<br />
linux (loop)/arch/boot/'''x86_64'''/vmlinuz archisolabel=ARCH_'''201412''' img_dev=$imgdevpath img_loop=$isofile earlymodules=loop<br />
initrd (loop)/arch/boot/'''x86_64'''/archiso.img<br />
}<br />
}}<br />
<br />
{{Tip| The label string after {{ic|1=archisolabel=}} needs to be edited when a newer monthly release is used.[https://projects.archlinux.org/archiso.git/tree/configs/releng/build.sh#n6]}}<br />
<br />
===== archboot =====<br />
<br />
* Initramfs framework: [[mkinitcpio]] (cmdline: [https://projects.archlinux.org/mkinitcpio.git/tree/man/mkinitcpio.8.txt#n212])<br />
* Live framework: [[archboot]] (cmdline: none? ''RFD'')<br />
* Init system: [[systemd]] (cmdline: [http://www.freedesktop.org/software/systemd/man/kernel-command-line.html])<br />
<br />
{{bc|1=<br />
menuentry '[loopback]archlinux-2014.11-1-archboot' {<br />
set isofile='/boot/iso/archlinux-2014.11-1-archboot.iso'<br />
loopback loop $isofile<br />
linux (loop)/boot/vmlinuz_'''x86_64''' iso_loop_dev=$imgdevpath iso_loop_path=$isofile<br />
initrd (loop)/boot/initramfs_'''x86_64'''.img<br />
}<br />
}}<br />
<br />
==== CentOS ====<br />
<br />
===== Stock installation medium =====<br />
<br />
* Initramfs framework: [https://fedoraproject.org/wiki/Dracut Dracut] (cmdline: [https://git.kernel.org/cgit/boot/dracut/dracut.git/tree/dracut.cmdline.7.asc])<br />
* Installation program: [https://fedoraproject.org/wiki/Anaconda Anaconda] (cmdline: [https://github.com/rhinstaller/anaconda/blob/master/docs/boot-options.txt])<br />
* Init system: [[systemd]] (cmdline: [http://www.freedesktop.org/software/systemd/man/kernel-command-line.html])<br />
<br />
{{bc|1=<br />
menuentry "[loopback]CentOS-7.0-1406-x86_64-'''DVD'''" {<br />
set isofile='/boot/iso/CentOS-7.0-1406-x86_64-'''DVD'''.iso'<br />
loopback loop $isofile<br />
linux (loop)/isolinux/vmlinuz noeject inst.stage2=hd:'''/dev/sdb2''':/$isofile<br />
initrd (loop)/isolinux/initrd.img<br />
}<br />
}}<br />
<br />
{{tip|The boot parameter of second stage install image location {{ic|1=/dev/sdb2}} which is used by Anaconda, is similar to [[fstab]]'s first field (fs_spec), could be replace with one of:<br />
* {{ic|1=/dev/sd'''''xY'''''}}<br />
* {{ic|1=LABEL=MYUSBSTICK}}<br />
* {{ic|1=UUID=00000000-0000-0000-0000-0000deadbeef}}<br />
<br />
For example, {{ic|1=linux (loop)/isolinux/vmlinuz noeject inst.stage2=hd:'''LABEL=MYUSBSTICK''':/$isofile}}<br />
}}<br />
<br />
===== Desktop live medium =====<br />
<br />
* Initramfs framework: [https://fedoraproject.org/wiki/Dracut Dracut] (cmdline: [https://git.kernel.org/cgit/boot/dracut/dracut.git/tree/dracut.cmdline.7.asc])<br />
* Live framework: fedora [https://fedoraproject.org/wiki/FedoraLiveCD livecd-tools] (cmdline: none)<br />
* Init system: [[systemd]] (cmdline: [http://www.freedesktop.org/software/systemd/man/kernel-command-line.html])<br />
<br />
{{bc|1=<br />
menuentry '[loopback]CentOS-7.0-1406-x86_64-GnomeLive' {<br />
set isofile='/boot/iso/CentOS-7.0-1406-x86_64-GnomeLive.iso'<br />
loopback loop $isofile<br />
linux (loop)/isolinux/vmlinuz0 root=live:CDLABEL=CentOS-7-live-GNOME-x86_64 iso-scan/filename=$isofile rd.live.image<br />
initrd (loop)/isolinux/initrd0.img<br />
}<br />
}}<br />
<br />
==== Clonezilla Live ====<br />
{{tip|1=Since 2014.01.05[https://projects.archlinux.org/archiso.git/commit/?id=5cd02c704046cdb6974f6b10f0cac366eeebec0e], the Arch Linux monthly release contains clonezilla.}}<br />
<br />
* Initramfs framework: [https://anonscm.debian.org/cgit/kernel/initramfs-tools.git/ initramfs-tools] (cmdline: ''RFD'')<br />
* Live framework: [http://live.debian.net/ Debian Live] (cmdline: [http://manpages.debian.org/cgi-bin/man.cgi?query=live-boot&apropos=0&sektion=7&manpath=Debian+unstable+sid&format=html&locale=en])<br />
* Init system: [https://savannah.nongnu.org/projects/sysvinit sysvinit] (cmdline: ''RFD'')<br />
<br />
{{bc|1=<br />
menuentry "[loopback]clonezilla-live-2.2.3-25-amd64" {<br />
set isofile="/boot/iso/clonezilla-live-2.2.3-25-amd64.iso"<br />
loopback loop $isofile<br />
linux (loop)/live/vmlinuz findiso=$isofile boot=live union=aufs config noprompt ip=frommedia toram=filesystem.squashfs<br />
initrd (loop)/live/initrd.img<br />
}<br />
}}<br />
<br />
==== Debian ====<br />
<br />
===== Stock install medium =====<br />
<br />
* Initramfs framework: [https://anonscm.debian.org/cgit/kernel/initramfs-tools.git/ initramfs-tools] (cmdline: ''RFD'')<br />
* Installation program: [https://wiki.debian.org/DebianInstaller#Development debian-installer] (cmdline: ''RFD'')<br />
* Init system: [https://savannah.nongnu.org/projects/sysvinit sysvinit] (cmdline: ''RFD'')<br />
<br />
{{tip|To install debian from any stock install medium on a non-optical medium (e.g. usb stick, HDD), it's necessary to use a different initramfs instead of the default one on the installation medium which is located at {{ic|(loop)/install.amd/initrd.gz}}. If you boot with the default one, the installer will unable to find or mount the proper iso image for installation.<br />
<br />
Please download the initramfs for hard disk installation from [https://mirrors.kernel.org/debian/dists/stable/main/installer-amd64/current/images/hd-media/initrd.gz an official mirror site], put it in the same directory with the image file and give it a suitable name ({{ic|debian-7.8.0-amd64-DVD-1.hdd.initrd.gz}} in this example).}}<br />
<br />
{{bc|1=<br />
menuentry '[loopback]debian-7.8.0-amd64-DVD-1' {<br />
set isofile='/boot/iso/debian-7.8.0-amd64-DVD-1.iso'<br />
set initrdfile='/boot/iso/debian-7.8.0-amd64-DVD-1.hdd.initrd.gz'<br />
loopback loop $isofile<br />
linux (loop)/install.amd/vmlinuz vga=791 iso-scan/ask_second_pass=true iso-scan/filename=$isofile<br />
initrd $initrdfile<br />
}<br />
}}<br />
<br />
===== Live install medium =====<br />
<br />
* Initramfs framework: [https://anonscm.debian.org/cgit/kernel/initramfs-tools.git/ initramfs-tools] (cmdline: ''RFD'')<br />
* Live framework: [http://live.debian.net/ Debian Live] (cmdline: [http://manpages.debian.org/cgi-bin/man.cgi?query=live-boot&apropos=0&sektion=7&manpath=Debian+unstable+sid&format=html&locale=en])<br />
* Init system: [https://savannah.nongnu.org/projects/sysvinit sysvinit] (cmdline: ''RFD'')<br />
<br />
{{bc|1=<br />
menuentry '[loopback]debian-live-7.8.0-amd64-xfce-desktop' {<br />
set isofile='/boot/iso/debian-live-7.8.0-amd64-xfce-desktop.iso'<br />
loopback loop $isofile<br />
linux (loop)/live/vmlinuz boot=live config fromiso='''/dev/sdb2'''/$isofile<br />
initrd (loop)/live/initrd.img<br />
}<br />
}}<br />
<br />
{{note|It's also OK to use {{ic|1=findiso=$isofile}} instead of the longer {{ic|1=fromiso=/dev/disk/by-.../.../$isofile}}. Anyway, using {{ic|1=fromiso=}} instead of {{ic|1=findiso=}} may speed up the initialization progress because it avoids unnecessary mounting.}}<br />
<br />
==== Elementary OS ====<br />
<br />
* Initramfs framework: ''RFD''<br />
* Live framework or installation program: ''RFD''<br />
* Init system: upstart (cmdline: ''RFD'')<br />
<br />
{{bc|1=<br />
menuentry '[loopback]elementaryos-freya-amd64.20150411' {<br />
set isofile='/boot/iso/elementaryos-freya-amd64.20150411.iso'<br />
loopback loop $isofile<br />
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile locale='''en_US.UTF-8'''<br />
initrd (loop)/casper/initrd.lz<br />
}<br />
}}<br />
<br />
==== Fedora ====<br />
<br />
===== Stock installation medium =====<br />
<br />
* Initramfs framework: [https://fedoraproject.org/wiki/Dracut Dracut] (cmdline: [https://git.kernel.org/cgit/boot/dracut/dracut.git/tree/dracut.cmdline.7.asc])<br />
* Installation program: [https://fedoraproject.org/wiki/Anaconda Anaconda] (cmdline: [https://github.com/rhinstaller/anaconda/blob/master/docs/boot-options.txt])<br />
* Init system: [[systemd]] (cmdline: [http://www.freedesktop.org/software/systemd/man/kernel-command-line.html])<br />
<br />
{{bc|1=<br />
menuentry '[loopback]Fedora-20-x86_64-DVD' {<br />
set isofile='/boot/iso/Fedora-20-x86_64-DVD.iso'<br />
loopback loop $isofile<br />
linux (loop)/isolinux/vmlinuz noeject inst.stage2=hd:'''/dev/sdb2''':/$isofile<br />
initrd (loop)/isolinux/initrd.img<br />
}<br />
}}<br />
<br />
===== Workstation live medium =====<br />
<br />
* Initramfs framework: [https://fedoraproject.org/wiki/Dracut Dracut] (cmdline: [https://git.kernel.org/cgit/boot/dracut/dracut.git/tree/dracut.cmdline.7.asc])<br />
* Live framework: fedora [https://fedoraproject.org/wiki/FedoraLiveCD livecd-tools] (cmdline: none)<br />
* Init system: [[systemd]] (cmdline: [http://www.freedesktop.org/software/systemd/man/kernel-command-line.html])<br />
<br />
{{bc|1=<br />
menuentry '[loopback]Fedora-Live-Workstation-x86_64-21-5' {<br />
set isofile='/boot/iso/Fedora-Live-Desktop-x86_64-21-5.iso'<br />
loopback loop $isofile<br />
linux (loop)/isolinux/vmlinuz0 root=live:CDLABEL=Fedora-Live-WS-x86_64-21-5 iso-scan/filename=$isofile rd.live.image<br />
initrd (loop)/isolinux/initrd0.img<br />
}<br />
}}<br />
<br />
==== Gentoo ====<br />
===== Desktop LiveDVD =====<br />
<br />
* Initramfs framework: [https://wiki.gentoo.org/wiki/Genkernel genkernel] (cmdline: [https://gitweb.gentoo.org/proj/genkernel.git/tree/doc/genkernel.8.txt#n393])<br />
* Live framework: [https://gitweb.gentoo.org/proj/livecd-tools.git/ livecd-tools] (cmdline: ''RFD'')<br />
* Init system: [https://wiki.gentoo.org/wiki/Project:OpenRC OpenRC] (cmdline: ''RFD'')<br />
<br />
{{bc|1=<br />
menuentry "[loopback]livedvd-amd64-multilib-20140826" {<br />
set isofile="/boot/iso/livedvd-amd64-multilib-20140826.iso"<br />
loopback loop $isofile<br />
linux (loop)/isolinux/gentoo root=/dev/ram0 init=/linuxrc aufs looptype=squashfs loop=/image.squashfs cdroot isoboot=$isofile vga='''791''' splash=silent,theme:default console=tty0<br />
initrd (loop)/isolinux/gentoo.igz <br />
}<br />
}}<br />
<br />
{{Tip|This should also works for minimal medium.}}<br />
<br />
==== GParted Live ====<br />
<br />
* Initramfs framework: [https://anonscm.debian.org/cgit/kernel/initramfs-tools.git/ initramfs-tools] (cmdline: ''RFD'')<br />
* Live framework: [http://live.debian.net/ Debian Live] (cmdline: [http://manpages.debian.org/cgi-bin/man.cgi?query=live-boot&apropos=0&sektion=7&manpath=Debian+unstable+sid&format=html&locale=en])<br />
* Init system: [https://savannah.nongnu.org/projects/sysvinit sysvinit] (cmdline: ''RFD'')<br />
<br />
{{bc|1=<br />
menuentry "[loopback]gparted-live-0.18.0-1-'''amd64'''" {<br />
set isofile="/boot/iso/gparted-live-0.18.0-1-'''amd64'''.iso"<br />
loopback loop $isofile<br />
linux (loop)/live/vmlinuz boot=live config union=aufs noswap noprompt ip=frommedia toram=filesystem.squashfs findiso=$isofile<br />
initrd (loop)/live/initrd.img<br />
}<br />
}}<br />
<br />
==== Kali Linux ====<br />
<br />
* Initramfs framework: [https://anonscm.debian.org/cgit/kernel/initramfs-tools.git/ initramfs-tools] (cmdline: ''RFD'')<br />
* Live framework: [http://live.debian.net/ Debian Live] (cmdline: [http://manpages.debian.org/cgi-bin/man.cgi?query=live-boot&apropos=0&sektion=7&manpath=Debian+unstable+sid&format=html&locale=en])<br />
* Init system: [https://savannah.nongnu.org/projects/sysvinit sysvinit] (cmdline: ''RFD'')<br />
<br />
{{bc|1=<br />
menuentry "[loopback]kali-linux-1.0.7-'''amd64'''" {<br />
set isofile='/boot/iso/kali-linux-1.0.7-'''amd64'''.iso'<br />
loopback loop $isofile<br />
linux (loop)/live/vmlinuz boot=live findiso=$isofile noconfig=sudo username=root hostname=kali<br />
initrd (loop)/live/initrd.img<br />
}<br />
}}<br />
<br />
==== Linux Mint ====<br />
<br />
* Initramfs framework: ''RFD''<br />
* Live framework or installation program: ''RFD''<br />
* Init system: ''RFD''<br />
<br />
{{bc|1=<br />
menuentry "[loopback]linuxmint-201403-cinnamon-dvd-'''32'''bit" {<br />
set isofile="/boot/iso/linuxmint-201403-cinnamon-dvd-'''32'''bit.iso"<br />
loopback loop $isofile<br />
linux (loop)/live/vmlinuz isofrom='''/dev/sdb2'''/iso/$isofile boot=live live-config live-media-path=/live quiet splash noeject noprompt<br />
initrd (loop)/live/initrd.img<br />
}<br />
}}<br />
<br />
==== openSUSE ====<br />
<br />
===== Stock installation medium =====<br />
<br />
* Initramfs framework: ''RFD''<br />
* Live framework or installation program: Kiwi? ''RFD''<br />
* Init system: ''RFD''<br />
<br />
{{bc|1=<br />
menuentry '[loopback]openSUSE-13.1-DVD-x86_64' {<br />
set isofile='/boot/iso/openSUSE-13.1-DVD-x86_64.iso'<br />
loopback loop $isofile<br />
linux (loop)/boot/x86_64/loader/linux install=hd:$isofile<br />
initrd (loop)/boot/x86_64/loader/initrd<br />
}<br />
}}<br />
<br />
===== Desktop Live medium =====<br />
<br />
* Initramfs framework: ''RFD''<br />
* Live framework or installation program: Kiwi? ''RFD''<br />
* Init system: ''RFD''<br />
<br />
{{bc|1=<br />
menuentry '[loopback]openSUSE-13.1-KDE-Live-x86_64' {<br />
set isofile='/boot/iso/openSUSE-13.1-KDE-Live-x86_64.iso'<br />
loopback loop $isofile<br />
linux (loop)/boot/x86_64/loader/linux isofrom_device=$imgdevpath isofrom_system=$isofile LANG='''en_US.UTF-8'''<br />
initrd (loop)/boot/x86_64/loader/initrd<br />
}<br />
}}<br />
<br />
==== Sabayon ====<br />
<br />
* Initramfs framework: genkernel? ''RFD''<br />
* Live framework or installation program: ''RFD''<br />
* Init system: openrc? ''RFD''<br />
<br />
{{bc|1=<br />
menuentry '[loopback]Sabayon_Linux_14.05_amd64_KDE' {<br />
set isofile='/boot/iso/Sabayon_Linux_14.05_amd64_KDE.iso'<br />
loopback loop $isofile<br />
linux (loop)/boot/sabayon root=/dev/ram0 aufs cdroot locale='''en_US''' loop=/livecd.squashfs looptype=squashfs isoboot=$isofile<br />
initrd (loop)/boot/sabayon.igz<br />
}<br />
}}<br />
<br />
==== Slackware Linux ====<br />
<br />
* Initramfs framework: ''RFD''<br />
* Live framework or installation program: ''RFD''<br />
* Init system: ''RFD''<br />
<br />
{{bc|1=<br />
menuentry '[loopback]slackware64-14.1-install-dvd' {<br />
set isofile='/boot/iso/slackware64-14.1-install-dvd.iso'<br />
loopback loop $isofile<br />
linux (loop)/kernels/huge.s/bzImage printk.time=0<br />
initrd (loop)/isolinux/initrd.img<br />
}<br />
}}<br />
<br />
==== SystemRescueCD ====<br />
<br />
* Initramfs framework: ''RFD''<br />
* Live framework or installation program: ''RFD''<br />
* Init system: ''RFD''<br />
<br />
{{note|Replace {{ic|64}} with {{ic|32}} if you want to boot into a 32-bit system.}}<br />
{{bc|1=<br />
menuentry '[loopback]systemrescuecd-x86-4.5.2' {<br />
set isofile='/boot/iso/systemrescuecd-x86-4.5.2.iso'<br />
loopback loop $isofile<br />
linux (loop)/isolinux/rescue'''64''' isoloop=$isofile<br />
initrd (loop)/isolinux/initram.igz<br />
}<br />
}}<br />
<br />
==== Ubuntu ====<br />
<br />
* Initramfs framework: ''RFD''<br />
* Live framework or installation program: ''RFD''<br />
* Init system: upstart (cmdline: ''RFD'')<br />
<br />
{{bc|1=<br />
menuentry '[loopback]ubuntu-14.04.1-desktop-amd64' {<br />
set isofile='/boot/iso/ubuntu-14.04.1-desktop-amd64.iso'<br />
loopback loop $isofile<br />
linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile locale='''en_US.UTF-8'''<br />
initrd (loop)/casper/initrd.lz<br />
}<br />
}}<br />
<br />
==== Slitaz ====<br />
<br />
* Initramfs framework: ''RFD''<br />
* Live framework: ''RFD''<br />
* Init system: ''RFD''<br />
<br />
First, download slitaz iso, then extract somewhere (in this case, /live/slitaz-4.0 on /dev/sda3)<br />
<br />
{{bc|1=<br />
menuentry 'slitaz-4.0 core' {<br />
set dir='/live/slitaz-4.0'<br />
set root=(hd0,msdos3)<br />
set lang='pt_BR'<br />
set kmap='br-abnt2'<br />
linux ($root)/$dir/bzImage lang=$lang kmap=$kmap rw root=/dev/null vga=normal autologin<br />
initrd ($root)/$dir/rootfs4.gz ($root)/$dir/rootfs3.gz ($root)/$dir/rootfs2.gz ($root)/$dir/rootfs1.gz<br />
}<br />
}}<br />
<br />
==== Slax ====<br />
<br />
* Initramfs framework: ''RFD''<br />
* Live framework: ''RFD''<br />
* Init system: ''RFD''<br />
<br />
First, download Slax zip (for USB), then extract somewhere (in this case, /live/slax on /dev/sda3)<br />
<br />
{{bc|1=<br />
menuentry 'slax' {<br />
set dir=/live/slax<br />
set root=(hd0,msdos3)<br />
linux $dir/boot/vmlinuz from=$dir vga=normal load_ramdisk=1 prompt_ramdisk=0 printk.time=0 slax.flags=perch,xmode<br />
initrd $dir/boot/initrfs.img<br />
}<br />
}}<br />
<br />
== Using Syslinux and memdisk ==<br />
<br />
Using the [http://www.syslinux.org/wiki/index.php/MEMDISK memdisk] module, the ISO image is loaded into memory, and its bootloader is loaded. Make sure that the system that will boot this USB drive has sufficient amount of memory for the image file and running operating system.<br />
<br />
=== Preparation ===<br />
<br />
Make sure that the USB drive is properly [[Partitioning|partitioned]] and that there is a partition with [[file system]] supported by Syslinux, for example fat32 or ext4. Then install Syslinux to this partition, see [[Syslinux#Installation]].<br />
<br />
=== Install the memdisk module ===<br />
<br />
The memdisk module was not installed during Syslinux installation, it has to be installed manually. Mount the partition where Syslinux is installed to {{ic|/mnt/}} and copy the memdisk module to the same directory where Syslinux is installed:<br />
<br />
# cp /usr/lib/syslinux/bios/memdisk /mnt/boot/syslinux/<br />
<br />
=== Configuration ===<br />
<br />
After copying the ISO files on the USB drive, edit the [[Syslinux#Configuration|Syslinux configuration file]] and create menu entries for the ISO images. The basic entry looks like this:<br />
<br />
{{hc|boot/syslinux/syslinux.cfg|<br />
LABEL ''some_label''<br />
LINUX memdisk<br />
INITRD ''/path/to/image.iso''<br />
APPEND iso<br />
}}<br />
<br />
See [http://www.syslinux.org/wiki/index.php/MEMDISK memdisk on Syslinux wiki] for more configuration options.<br />
<br />
=== Caveat for 32-bit systems ===<br />
<br />
When booting a 32-bit system from an image larger than 128MiB, it is necessary to increase the maximum memory usage of vmalloc. This is done by adding {{ic|1=vmalloc=''value''M}} to the kernel parameters, where {{ic|''value''}} is larger than the size of the ISO image in MiB.[http://www.syslinux.org/wiki/index.php/MEMDISK#-_memdiskfind_in_combination_with_phram_and_mtdblock]<br />
<br />
For example when booting the 32-bit system from the [https://www.archlinux.org/download/ Arch installation ISO], press the {{ic|Tab}} key over the {{ic|Boot Arch Linux (i686)}} entry and add {{ic|1=vmalloc=768M}} at the end. Skipping this step will result in the following error during boot:<br />
<br />
modprobe: ERROR: could not insert 'phram': Input/output error<br />
<br />
== See also ==<br />
<br />
* GRUB:<br />
** https://help.ubuntu.com/community/Grub2/ISOBoot/Examples<br />
** https://help.ubuntu.com/community/Grub2/ISOBoot<br />
* Syslinux:<br />
** [http://www.syslinux.org/wiki/index.php/Boot_an_Iso_image Boot an ISO image]</div>MentalMutant