||<>|| <
> /* || {{attachment:/artwork/mkusb128.png}} || */ [[../|Return to the main iso2usb page]] ----- = Instructions to make a boot drive, that boots both in UEFI and BIOS mode = == Cloning - read-only drive == If you are happy with a read-only partition table and file system, you can clone the Ubuntu and Ubuntu community flavour iso files. This is very reliable but you cannot store data on the drive, and you cannot make it a persistent live drive (unless you start again for example with mkusb). [[../|Return]] if this is what you want. == Do it yourself - with the isoboot alias grub-n-iso method == This method is designed to work with * '''Ubuntu''': 64-bit Ubuntu desktop and Ubuntu community flavour desktop iso files: * It is rather easy to create a separate (USB) boot drive using ISO boot alias grub-n-iso from a template. This can be used * directly with or without persistence, 'basic method', but also * to create a multiboot drive for example as a demo drive with all Ubuntu family flavours, or * to create an installed system, that can boot both in UEFI and BIOS mode (alias CSM alias legacy mode). * The 'basic method' is described here (in this Ubuntu help page). * '''Other linux distros''' and versions: This method may or may not work in UEFI and/or BIOS mode depending on the boot structure. It helps if it is very similar to Ubuntu's boot structure. * You will probably have better luck with '''cloning''', the extracting method at this link: '''[[../diy]]''', or with '''[[https://help.ubuntu.com/community/mkusb|mkusb]]''' for '''non-Ubuntu distros'''. = Do it yourself - instructions = == Download a compressed image file == === Partition table and boot structure from an image file === A compressed image file can be extracted and flashed to the target drive in order to get partition table and the boot structure necessary for booting via grub in BIOS mode. This works also when you are running an installed system booted in UEFI mode, when there are problems to install 'grub-pc' and run 'grub-install' in order to install the bootloader (for BIOS mode). === Do also this step manually === Otherwise, in BIOS mode and running a live system, it is possible to create the boot structure for BIOS mode with a FAT32 partition and extract from the iso file into it and install the bootloader. {{{ sudo grub-install }}} So if you want to do also this step yourself, boot in BIOS mode and create it. You may need to add some flags to the FAT32 partition to make a computer want to boot into it also in UEFI mode. The structure created, when you use the compressed image file can be used to check what you need in order to get a system that works in both boot modes. (This is easiest, if you have two USB pendrives, one where you do it yourself, and one with the extracted partition table and boot structure.) === Download the image file and a checksum file === '''In Ubuntu:''' ||<#CCFF99> Download this compressed image file: [[https://phillw.net/isos/linux-tools/uefi-n-bios/dd_grub-boot-template-for-uefi-n-bios.img.xz|dd_grub-boot-template-for-uefi-n-bios.img.xz]] || ||<#CCFF99> Check that the md5sum is correct with the following file: [[https://phillw.net/isos/linux-tools/uefi-n-bios/md5sum.txt.asc|md5sum.txt.asc]] || In some cases, for example if you have a small USB drive and/or if you do not use mkusb, the following new file should work better: ||<#CCFF99> Download this compressed image file: [[https://phillw.net/isos/linux-tools/uefi-n-bios/dd_grub-boot-template-for-uefi-n-bios_new.img.xz|dd_grub-boot-template-for-uefi-n-bios_new.img.xz]] || ||<#CCFF99> Check that the md5sum is correct with the following file: [[https://phillw.net/isos/linux-tools/uefi-n-bios/grub-boot-templates-for-uefi-n-bios.md5.asc|grub-boot-templates-for-uefi-n-bios.md5.asc]] || '''In Windows:''' If you are working in Windows, the following file should work with '''7-zip''' and '''Rufus''': ||<#DDFFAA> Download this compressed image file: [[https://phillw.net/isos/linux-tools/uefi-n-bios/mkusb_grub-boot-template-for-uefi-n-bios_fat32_4GB_use-in-wins.img.xz|mkusb_grub-boot-template-for-uefi-n-bios_fat32_4GB_use-in-wins.img.xz]] || ||<#DDFFAA> Check that the md5sum is correct with the following file: [[https://phillw.net/isos/linux-tools/uefi-n-bios/grub-boot-templates-for-uefi-n-bios.md5.asc|grub-boot-templates-for-uefi-n-bios.md5.asc]] || '''If you have an old [for example HP] computer, that wants an MSDOS partition table to boot grub via USB''' ||<#DDFFAA> Download this compressed image file: [[https://phillw.net/isos/linux-tools/uefi-n-bios/dd_grub-boot-template-for-uefi-n-bios_msdos.img.xz|dd_grub-boot-template-for-uefi-n-bios_msdos.img.xz]] || ||<#DDFFAA> Check that the md5sum is correct with the following file: [[https://phillw.net/isos/linux-tools/uefi-n-bios/grub-boot-templates-for-uefi-n-bios.md5.asc|grub-boot-templates-for-uefi-n-bios.md5.asc]] || ---- You may want a higher level of security. This file is signed with '''gpg''' and you can verify it according to the following commands. {{{ gpg --keyserver keyserver.ubuntu.com --recv-keys EB0FC2C8 gpg --verify md5sum.txt.asc }}} The warning "was NOT verified" means that there is no chain of trusted keys between your computer's keyring and the key, that was used to sign the checksums (the key of sudodus). Check that the result matches with the following output, when you verify it, {{{ tester@xenial32 ~ $ gpg --keyserver keyserver.ubuntu.com --recv-keys EB0FC2C8 gpg: directory `/home/tester/.gnupg' created gpg: new configuration file `/home/tester/.gnupg/gpg.conf' created gpg: WARNING: options in `/home/tester/.gnupg/gpg.conf' are not yet active during this run gpg: keyring `/home/tester/.gnupg/secring.gpg' created gpg: keyring `/home/tester/.gnupg/pubring.gpg' created gpg: requesting key EB0FC2C8 from hkp server keyserver.ubuntu.com gpg: /home/tester/.gnupg/trustdb.gpg: trustdb created gpg: key EB0FC2C8: public key "Nio Sudden Wiklund (sudodus) " imported gpg: no ultimately trusted keys found gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1) tester@xenial32 ~ $ gpg --verify md5sum.txt.asc gpg: Signature made mån 18 sep 2017 21:48:47 CEST using RSA key ID EB0FC2C8 gpg: Good signature from "Nio Sudden Wiklund (sudodus) " gpg: WARNING: not a detached signature; file 'grub-do-it-yourself.img.xz.md5' was NOT verified! tester@xenial32 ~ $ }}} Then there is reason to trust that nobody else has written the checksums. The date of the signature will change at updates, and the text might be translated to your local language, but it should be clear that it is a 'Good signature from "Nio Sudden Wiklund (sudodus)"'. If you have '''the compressed image file and the md5sum file in the same directory''', you can use the '''md5sum program''' to check like this, ||<#EEEEAA> {{{md5sum -c md5sum.txt.asc}}} || The 'improperly formatted lines' are the lines belonging to the gpg signature. Or with a clean output (selecting only the checksum test for this particular file) {{{ $ grep dd_grub-boot-template-for-uefi-n-bios.img.xz md5sum.txt.asc | md5sum -c dd_grub-boot-template-for-uefi-n-bios.img.xz: OK }}} or if you prefer (selecting the only good output) {{{ $ md5sum -c md5sum.txt.asc 2> /dev/null|grep OK dd_grub-boot-template-for-uefi-n-bios.img.xz: OK }}} === Dark or bright background in grub === The default grub theme has a dark grey background with a faint watermark (mkusb logo). There is also a bright grub theme with 'sky blue' and the mkusb logo, that you get if you download this compressed image file: [[https://phillw.net/isos/linux-tools/uefi-n-bios/dd_grub-boot-template-for-uefi-n-bios_bright-bg.img.xz|dd_grub-boot-template-for-uefi-n-bios_bright-bg.img.xz]] Check that the md5sum is correct with the following file: [[https://phillw.net/isos/linux-tools/uefi-n-bios/md5sum.txt.asc|md5sum.txt.asc]] {{{ $ grep dd_grub-boot-template-for-uefi-n-bios_bright-bg.img.xz md5sum.txt.asc | md5sum -c dd_grub-boot-template-for-uefi-n-bios_bright-bg.img.xz: OK }}} == Download the iso file == ||<#CCFF99> Download the iso file || === 64-bit Ubuntu desktop or Ubuntu community flavour desktop iso file === [[http://releases.ubuntu.com]] or for the community flavours [[http://cdimage.ubuntu.com]] If the iso files of the version with the longest remaining support are not found via those links, you can find them via the following general link, [[http://old-releases.ubuntu.com]] or === 64-bit Debian live iso file === You find current Debian iso files via [[https://www.debian.org/CD/live/|www.debian.org/CD/live/]] === Check with md5sum that the iso file was downloaded correctly === ||<#CCFF99> Check the md5sum result with the uploaded values via this link: [[https://help.ubuntu.com/community/UbuntuHashes|UbuntuHashes]] || Examples: ||<#EEEEAA> {{{md5sum ubuntu-18.04.1-desktop-amd64.iso}}} || ||<#EEEEAA> {{{md5sum ubuntu-20.04-desktop-amd64.iso}}} || == Install mkusb if you want to clone safely and easily (optional) == [[https://help.ubuntu.com/community/mkusb]] == Clone 'dd_grub-boot-template-for-uefi-n-bios.img.xz' to the target drive == ||<#CCFF99> Normally you would clone '''dd_grub-boot-template-for-uefi-n-bios.img.xz''' to a USB pendrive or memory card, '''minimum size 4GB'''. The image extracts to a boot partition with 258 MB (247 MiB). The head end of the drive contains a grub bootloader for BIOS mode. There are files for the UEFI bootloader and BIOS bootloader in this boot partition. The intention is that you add partitions manually (easy with gparted). || === Use mkusb or Disks === ||<#CCFF99> Use '''mkusb''' or '''Disks''' to clone in a safe way, via the GUI or using mkusb-dus || {{{ dus dd_grub-boot-template-for-uefi-n-bios.img.xz }}} or === Use dd to clone in a risky way === ||<#FFAAAA> Avoid this method if you can, because it is risky. || Identify the target drive. You can use '''lsblk''' without options or better, copy and paste the following command line {{{ lsblk -d -o name,vendor,model,type,size,hotplug }}} Make sure there are no mounted partitions in the target drive ||<#EEEEAA> {{{sudo umount /dev/sdX?}}} || where X is the drive letter of the target drive, and then use the correct drive letter in the cloning command line ||<#FFAAAA> {{{xzcat -c dd_grub-boot-template-for-uefi-n-bios.img.xz | sudo dd of=/dev/sdX bs=4096}}} || where X is the drive letter of the target drive. Check that the drive letter is correct, and '''double-check the details of the whole command line.''' A minor typing error might overwrite your family pictures. Flush the buffers and inform the kernel of the new partition table ||<#EEEEAA> {{{sync}}} || ||<#EEEEAA> {{{sudo partprobe}}} || === Use Win32 Disk Imager to clone in Windows === ||<#CCFF99> See this link, [[https://wiki.ubuntu.com/Win32DiskImager/compressed-image_2_USB-or-SD|Win32DiskImager/compressed-image_2_USB-or-SD]] || == Create partitions with gparted == Start '''gparted''' which has a user-friendly graphical user interface (GUI). * Create the partition where you '''store the iso file'''. * Select a size that is enough for the iso file (add at least 20% to the size of the iso file). * It will work well, if you use the filesystem '''ext4'''. * It is optional to put a label; I suggest '''isodevice''' in order to help identifying it later. * If you want to create a '''persistent live''' drive, you create another partition. * You can use the remaining (unallocated) drive space, or part of it if you want one more partition. * It will work well, if you use the filesystem '''ext4''' * Select the label '''writable''' for Ubuntu 20.04 LTS and newer versions * Select the label '''casper-rw''' for older versions * Data partition: * Create another partition for exchange of data with Windows. * It will work well, if you use the filesystem '''NTFS'''. * It is optional to put a label; I suggest '''usbdata''' in order to help identifying it later * Or create another partition for exchange of data with Windows and/or MacOS. * It will work well, if you use the filesystem '''FAT32''' or '''exFAT'''. * It is optional to put a label; I suggest '''usbdata''' in order to help identifying it later A separate partition with the label 'casper-rw' for older versions of Ubuntu and with the label 'writable' for Ubuntu 20.04 LTS and newer versions will make the system persistent live. Please notice that you can '''not''' use the partition where you have the iso file for this purpose. There is an obvious advantage with journaling: the file system will be more robust. But if you think your system will be too sluggish, or you must reduce the wear, '''create an ext2 file system''' instead of the ext4 file system. It looks like this in gparted when you start: {{attachment:partitioning-1.png}} Configure the partition where you '''store the iso file''': {{attachment:partitioning-2.png}} Configure a partition for persistence with label 'writable' for Ubuntu 20.04 LTS and newer: {{attachment:partitioning-3.png}} Two partitions are configured but not yet created. Click on the green tick to create them: {{attachment:partitioning-4.png}} When done it can look like this: {{attachment:partitioning-5.png}} and you can exit from gparted. == Copy the iso file into partition #1 == === Create mountpoint /mnt/sd1 === ||<#CCFF99> Create mountpoint only once. || {{{ sudo mkdir -p /mnt/sd1 }}} === Mount the partition on the USB drive === Identify the target drive. You can use '''lsblk''' without options or better, copy and paste the following command line {{{ lsblk -d -o name,vendor,model,type,size,hotplug }}} or '''blkid, grep and cut''', copy and paste the following command line {{{ sudo blkid |grep 'ext'|grep 'isodevice'|sed 's/: .*//' }}} and then use the correct drive letter in the mounting command line ||<#FFAAAA> {{{sudo mount /dev/sdX1 /mnt/sd1}}} || where X is the drive letter of the target drive. '''Double-check that the drive letter is correct'''. === rsync the iso file === The file '''grub.cfg''' (in partition #3) assumes that the iso file * is located in partition #1 and * has the name '''ubuntu.iso''' ||<#EEEEAA> {{{sudo rsync --info=progress2 file.iso /mnt/sd1/ubuntu.iso}}} || '''rsync''' is a reliable program, but I have seen cases, when running in some versions of 32-bit Ubuntu systems, where rsync does not copy big files correctly to USB pendrives. (Maybe we should blame a low level write tool working with the USB interface.) The files were truncated (too small). When this happened the system in the drive did not work. rsync did not notice it; there was no warning or error message about this problem. === Advanced options === You can link from an arbitrary name to 'ubuntu.iso', or you can edit '''grub.cfg''' to point to another file name (and in another location). You can also create new menuentries and point to several iso files (make a multiboot drive). Please notice that different Linux distros have different configurations of the boot system, and it might be difficult to get correct menuentries. So if you want a multiboot system it is easier to use a dedicated tool for that purpose, e.g. 'multiboot-usb' or 'YUMI'. == Flush the buffers == ||<#EEEEAA> {{{sync}}} || == Now you have a live boot drive :-) == === Unmount the partition on the target drive and unplug it === ||<#EEEEAA> {{{sudo umount /mnt/sd1}}} || Check that no partition on the target drive is mounted with ||<#EEEEAA> {{{df}}} || ||<#CCFF99> In Windows you should eject the drive and wait until it is 'safe to remove the device'. || '''or''' == Continue if you wish == === Create a new partition for storage === If you left unallocated space (if the drive contains more than 4 GB), create another partition. It is easy to continue using '''gparted'''. After that you have a drive with an extra partition for persistence and/or storage. Current versions of Windows 10 can use any partition, if there is a Microsoft file system, FAT32, exFAT or NTFS. (Older versions of Windows could not use partition #1 in USB drives.) == Unmount the mounted partition on the target drive and unplug it == {{{ sudo umount /mnt/sd1 }}} Check that no partition on the target drive is mounted with {{{ df }}} = Check that your new boot drive works = Check that your new boot drive works as expected, and if not, try again, maybe you missed a step ... Dark grub background: {{attachment:dd_grub-boot-template-for-uefi-n-bios_dark-bg_1024x576.png}} Bright grub background: {{attachment:dd_grub-boot-template-for-uefi-n-bios_bright-bg_1024x576.png}} ----- [[../|Return to the main iso2usb page]]